From 73c7378e4d6e6b86505ac0fb2ce63d2a3a5be329 Mon Sep 17 00:00:00 2001 From: fanzha02 Date: Thu, 19 Apr 2018 06:38:13 +0000 Subject: [PATCH] cmd/asm/internal/asm: update the test cases in arm64enc.s file Uncomment the test cases in arm64enc.s because they can be handled by current assembler. In addition, CL supplements more test cases. Change-Id: I583d45793b8227c6ec370868652dd8bcbfaa1ecf Reviewed-on: https://go-review.googlesource.com/109275 Reviewed-by: Cherry Zhang Run-TryBot: Cherry Zhang TryBot-Result: Gobot Gobot --- src/cmd/asm/internal/asm/testdata/arm64enc.s | 418 +++++++++++++++---- 1 file changed, 331 insertions(+), 87 deletions(-) diff --git a/src/cmd/asm/internal/asm/testdata/arm64enc.s b/src/cmd/asm/internal/asm/testdata/arm64enc.s index 5fa9af99fa..ee4673c1ae 100644 --- a/src/cmd/asm/internal/asm/testdata/arm64enc.s +++ b/src/cmd/asm/internal/asm/testdata/arm64enc.s @@ -2,8 +2,10 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// TODO means they cannot be handled now. -// Comment cases means they are handled incorrectly. +// The cases are auto-generated by disassembler. +// The uncommented cases means they can be handled by assembler +// and they are consistent with disassembler decoding. +// TODO means they cannot be handled by current assembler. #include "../../../../../runtime/textflag.h" @@ -14,16 +16,16 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 ADC R0, R2, R12 // 4c00009a ADCSW R9, R21, R6 // a602093a ADCS R23, R22, R22 // d60217ba - //TODO ADDW R5.UXTH, R8, R9 // 0921250b - //TODO ADD R8.SXTB<<7, R23, R14 // ee9e288b + ADDW R5.UXTH, R8, R9 // 0921250b + ADD R8.SXTB<<3, R23, R14 // ee8e288b ADDW $3076, R17, R3 // 23123011 ADDW $(3076<<12), R17, R3 // ADDW $12599296, R17, R3 // 23127011 ADD $2280, R25, R11 // 2ba32391 ADD $(2280<<12), R25, R11 // ADD $9338880, R25, R11 // 2ba36391 ADDW R13->5, R11, R7 // 67158d0b ADD R25<<54, R17, R16 // 30da198b - //TODO ADDSW R12.SXTX<<1, R29, R7 // a7e72c2b - //TODO ADDS R24.UXTX<<4, R25, R21 // 357338ab + ADDSW R12.SXTX<<1, R29, R7 // a7e72c2b + ADDS R24.UXTX<<4, R25, R21 // 357338ab ADDSW $(3525<<12), R3, R11 // ADDSW $14438400, R3, R11 // 6b147731 ADDS $(3525<<12), R3, R11 // ADDS $14438400, R3, R11 // 6b1477b1 ADDSW R7->22, R14, R13 // cd59872b @@ -92,8 +94,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 CLS R15, ZR // ff15c0da CLZW R1, R14 // 2e10c05a CLZ R21, R9 // a912c0da - //TODO CMNW R21.UXTB<<4, R15 // ff11352b - //TODO CMN R0.UXTW<<4, R16 // 1f5220ab + CMNW R21.UXTB<<4, R15 // ff11352b + CMN R0.UXTW<<4, R16 // 1f5220ab CMNW R13>>8, R9 // 3f214d2b CMN R6->17, R3 // 7f4486ab CMNW $(2<<12), R5 // CMNW $8192, R5 // bf084031 @@ -104,8 +106,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 CMNW $2, R5 // bf080031 CMN ZR, R3 // 7f001fab CMN R0, R3 // 7f0000ab - //TODO CMPW R6.UXTB, R23 // ff02266b - //TODO CMP R25.SXTH<<5, R26 // 5fb739eb + CMPW R6.UXTB, R23 // ff02266b + CMP R25.SXTH<<2, R26 // 5fab39eb CMP $3817, R29 // bfa73bf1 CMP R7>>23, R3 // 7f5c47eb CNEGW PL, R9, R14 // 2e45895a @@ -160,8 +162,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 LDAR (R27), R22 // 76ffdfc8 LDARB (R25), R2 // 22ffdf08 LDARH (R5), R7 // a7fcdf48 - //TODO LDAXPW (R10), (R20, R16) // 54c17f88 - //TODO LDAXP (R25), (R30, R11) // 3eaf7fc8 + LDAXPW (R10), (R20, R16) // 54c17f88 + LDAXP (R25), (R30, R11) // 3eaf7fc8 LDAXRW (R15), R2 // e2fd5f88 LDAXR (R15), R21 // f5fd5fc8 LDAXRB (R19), R16 // 70fe5f08 @@ -178,31 +180,41 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 MOVD.W -134(R0), R29 // 1dac57f8 MOVWU 4156(R1), R25 // 393c50b9 MOVD 14616(R10), R9 // 498d5cf9 + MOVWU (R4)(R12.SXTW<<2), R7 // 87d86cb8 + MOVD (R7)(R11.UXTW<<3), R25 // f9586bf8 MOVBU.P 42(R2), R12 // 4ca44238 MOVBU.W -27(R2), R14 // 4e5c5e38 MOVBU 2916(R24), R3 // 03936d39 - //TODO MOVBU R14<<1(R18), R23 // 577a6e38 + MOVBU (R18)(R14<<0), R23 // 577a6e38 + MOVBU (R2)(R8.SXTX), R19 // 53e86838 + MOVBU (R27)(R23), R14 // MOVBU (R27)(R23*1), R14 // 6e6b7738 MOVHU.P 107(R13), R13 // adb54678 MOVHU.W 192(R2), R2 // 420c4c78 MOVHU 6844(R4), R18 // 92787579 + MOVHU (R5)(R25.SXTW), R15 // afc87978 //TODO MOVBW.P 77(R18), R11 // 4bd6c438 MOVB.P 36(RSP), R27 // fb478238 //TODO MOVBW.W -57(R18), R13 // 4d7edc38 MOVB.W -178(R16), R24 // 18ee9438 //TODO MOVBW 430(R8), R22 // 16b9c639 MOVB 997(R9), R23 // 37958f39 - //TODO MOVBW R2<<1(R21), R15 // af7ae238 - //TODO MOVBW R26(R0), R21 // 1568fa38 - //TODO MOVB R5(R15), R16 // f069a538 + //TODO MOVBW (R2<<1)(R21), R15 // af7ae238 + //TODO MOVBW (R26)(R0), R21 // 1568fa38 + MOVB (R5)(R15), R16 // MOVB (R5)(R15*1), R16 // b068af38 + MOVB (R18)(R26.SXTW), R19 // 53caba38 + MOVB (R29)(R30), R14 // MOVB (R29)(R30*1), R14 // ae6bbe38 //TODO MOVHW.P 218(R22), R25 // d9a6cd78 MOVH.P 179(R23), R5 // e5368b78 //TODO MOVHW.W 136(R2), R27 // 5b8cc878 MOVH.W -63(R25), R22 // 361f9c78 //TODO MOVHW 5708(R25), R21 // 359bec79 MOVH 54(R2), R13 // 4d6c8079 + //TODO MOVHW (R22)(R24.SXTX), R4 // c4eaf878 + MOVH (R26)(R30.UXTW<<1), ZR // 5f5bbe78 MOVW.P -58(R16), R2 // 02669cb8 MOVW.W -216(R18), R8 // 488e92b8 MOVW 4764(R23), R10 // ea9e92b9 + MOVW (R8)(R3.UXTW), R17 // 1149a3b8 //TODO LDTR -0x1e(R3), R4 // 64285eb8 //TODO LDTR -0xe5(R3), R10 // 6ab851f8 //TODO LDTRB 0xf0(R13), R10 // aa094f38 @@ -221,8 +233,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 //TODO LDURSH -0x49(R11), R28 // 7c71db78 //TODO LDURSH -0x1f(R0), R29 // 1d109e78 //TODO LDURSW 0x48(R6), R20 // d48084b8 - //TODO LDXPW (R24), (R23, R11) // 172f7f88 - //TODO LDXP (R0), (R16, R13) // 10347fc8 + LDXPW (R24), (R23, R11) // 172f7f88 + LDXP (R0), (R16, R13) // 10347fc8 LDXRW (RSP), R30 // fe7f5f88 LDXR (R27), R12 // 6c7f5fc8 LDXRB (R0), R4 // 047c5f08 @@ -276,9 +288,10 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 ORR $-3458764513820540929, R12, R22 // 96f542b2 ORRW R13<<4, R8, R26 // 1a110d2a ORR R3<<22, R5, R6 // a65803aa - //TODO PRFM 0x6400(R7), PSTL2STRM // f300b2f9 - //TODO PRFM -215799(PC), PLIL2KEEP // 2aa196d8 - //TODO PRFUM 0x42(R14), #0X06 // c62184f8 + PRFM (R8), $25 // 190180f9 + PRFM (R2), PLDL1KEEP // 400080f9 + //TODO PRFM (R27)(R30.SXTW<<3), PLDL2STRM // 63dbbff8 + //TODO PRFUM 22(R16), PSTL1KEEP // 106281f8 RBITW R9, R22 // 3601c05a RBIT R11, R4 // 6401c0da RET // c0035fd6 @@ -313,14 +326,14 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 SMC $37977 // 238b12d4 STLRW R16, (R22) // d0fe9f88 STLR R3, (R24) // 03ff9fc8 - //TODO STLRB R11, (R22) // cbfe9f08 - //TODO STLRH R16, (R23) // f0fe9f48 + STLRB R11, (R22) // cbfe9f08 + STLRH R16, (R23) // f0fe9f48 STLXR R7, (R27), R8 // 67ff08c8 STLXRW R13, (R15), R14 // edfd0e88 STLXRB R24, (R23), R8 // f8fe0808 STLXRH R19, (R27), R11 // 73ff0b48 - //TODO STLXP (R6, R3), (R10), R2 // 468d22c8 - //TODO STLXPW (R6, R11), (R22), R21 // c6ae3588 + STLXP (R6, R3), (R10), R2 // 468d22c8 + STLXPW (R6, R11), (R22), R21 // c6ae3588 //TODO STNPW 44(R1), R3, R10 // 2a8c0528 //TODO STNP 0x108(R3), ZR, R7 // 67fc10a8 LDP.P -384(R3), (R22, R26) // 7668e8a8 @@ -341,30 +354,35 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 MOVH R19, 3686(R26) // 53cf1c79 MOVW R21, 34(R0) // 152002b8 MOVD R25, -137(R17) // 397217f8 + MOVW R4, (R12)(R22.UXTW<<2) // 845936b8 + MOVD R27, (R5)(R15.UXTW<<3) // bb582ff8 + MOVB R2, (R10)(R16) // MOVB R2, (R10)(R16*1) // 42693038 + MOVB R2, (R29)(R26) // MOVB R2, (R29)(R26*1) // a26b3a38 MOVH R11, -80(R23) // eb021b78 - //TODO MOVB R18, R0(R4) // 92682038 - //TODO MOVB R1, R6(R4) // 81682638 - //TODO MOVH R3, R13<<1(R11) // 63792d78 + MOVH R11, (R27)(R14.SXTW<<1) // 6bdb2e78 + MOVB R18, (R0)(R4) // MOVB R18, (R0)(R4*1) // 12682438 + MOVB R1, (R6)(R4) // MOVB R1, (R6)(R4*1) // c1682438 + MOVH R3, (R11)(R13<<1) // 63792d78 //TODO STTR 55(R4), R29 // 9d7803b8 //TODO STTR 124(R5), R25 // b9c807f8 //TODO STTRB -28(R23), R16 // f04a1e38 //TODO STTRH 9(R10), R18 // 52990078 - //TODO STXP (R1, R2), (R3), R10 // 61082ac8 - //TODO STXP (R1, R2), (RSP), R10 // e10b2ac8 - //TODO STXPW (R1, R2), (R3), R10 // 61082a88 - //TODO STXPW (R1, R2), (RSP), R10 // e10b2a88 + STXP (R1, R2), (R3), R10 // 61082ac8 + STXP (R1, R2), (RSP), R10 // e10b2ac8 + STXPW (R1, R2), (R3), R10 // 61082a88 + STXPW (R1, R2), (RSP), R10 // e10b2a88 STXRW R2, (R19), R18 // 627e1288 STXR R15, (R21), R13 // af7e0dc8 STXRB R7, (R9), R24 // 277d1808 STXRH R12, (R3), R8 // 6c7c0848 - //TODO SUBW R20.UXTW<<7, R23, R18 // f25e344b - //TODO SUB R5.SXTW<<2, R1, R26 // 3ac825cb + SUBW R20.UXTW<<2, R23, R18 // f24a344b + SUB R5.SXTW<<2, R1, R26 // 3ac825cb SUB $(1923<<12), R4, R27 // SUB $7876608, R4, R27 // 9b0c5ed1 SUBW $(1923<<12), R4, R27 // SUBW $7876608, R4, R27 // 9b0c5e51 SUBW R12<<29, R7, R8 // e8740c4b SUB R12<<61, R7, R8 // e8f40ccb - //TODO SUBSW R2.SXTH<<3, R13, R6 // a6ad226b - //TODO SUBS R21.UXTX<<5, R27, R4 // 647735eb + SUBSW R2.SXTH<<3, R13, R6 // a6ad226b + SUBS R21.UXTX<<2, R27, R4 // 646b35eb SUBSW $(44<<12), R6, R9 // SUBSW $180224, R6, R9 // c9b04071 SUBS $(1804<<12), R13, R9 // SUBS $7389184, R13, R9 // a9315cf1 SUBSW R22->28, R6, R7 // c770966b @@ -404,13 +422,40 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 WFE // 5f2003d5 WFI // 7f2003d5 YIELD // 3f2003d5 - //TODO FADD V21.D2, V10.D2, V21.D2 // 55d5754e + //TODO FABD F0, F5, F11 // abd4a07e + //TODO VFABD V30.S2, V8.S2, V24.S2 // 18d5be2e + //TODO VFABS V5.S4, V24.S4 // b8f8a04e + FABSS F2, F28 // 5cc0201e + FABSD F0, F14 // 0ec0601e + //TODO FACGE F25, F16, F0 // 00ee797e + //TODO VFACGE V11.S2, V15.S2, V9.S2 // e9ed2b2e + //TODO FACGT F20, F16, F27 // 1beef47e + //TODO VFACGT V15.S4, V25.S4, V22.S4 // 36efaf6e + //TODO VFADD V21.D2, V10.D2, V21.D2 // 55d5754e FADDS F12, F2, F10 // 4a282c1e FADDD F24, F14, F12 // cc29781e + //TODO VFADDP V4.D2, F13 // 8dd8707e + //TODO VFADDP V30.S4, V3.S4, V11.S4 // 6bd43e6e FCCMPS LE, F17, F12, $14 // 8ed5311e FCCMPD HI, F11, F15, $15 // ef856b1e FCCMPES HS, F28, F13, $13 // bd253c1e FCCMPED LT, F20, F4, $9 // 99b4741e + //TODO FCMEQ F7, F11, F26 // 7ae5675e + //TODO VFCMEQ V29.S4, V26.S4, V30.S4 // 5ee73d4e + //TODO FCMEQ $0, F17, F22 // 36daa05e + //TODO VFCMEQ $0, V17.D2, V22.D2 // 36dae04e + //TODO FCMGE F29, F31, F13 // ede77d7e + //TODO VFCMGE V8.S2, V31.S2, V2.S2 // e2e7282e + //TODO FCMGE $0, F18, F27 // e2e7282e + //TODO VFCMGE $0, V14.S2, V8.S2 // c8c9a02e + //TODO FCMGT F20, F2, F8 // 48e4b47e + //TODO VFCMGT V26.D2, V15.D2, V23.D2 // f7e5fa6e + //TODO FCMGT $0, F14, F3 // c3c9e05e + //TODO VFCMGT $0, V6.S2, V28.S2 // dcc8a00e + //TODO FCMLE $0, F26, F25 // 59dba07e + //TODO VFCMLE $0, V28.S2, V20.S2 // 94dba02e + //TODO FCMLT $0, F17, F3 // 23eae05e + //TODO VFCMLT $0, V8.S4, V7.S4 // 07e9a04e FCMPS F3, F17 // 2022231e FCMPS $(0.0), F8 // 0821201e FCMPD F11, F27 // 60236b1e @@ -421,89 +466,187 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 FCMPED $(0.0), F25 // 3823601e FCSELS EQ, F26, F27, F25 // 590f3b1e FCSELD PL, F8, F22, F7 // 075d761e - //TODO FCVTASW F21, R15 // af02241e - //TODO FCVTAS F20, ZR // 9f02249e - //TODO FCVTASW F6, R11 // cb00641e - //TODO FCVTAS F6, R1 // c100649e - //TODO FCVTAUW F19, R26 // 7a02251e - //TODO FCVTAU F6, R5 // c500259e - //TODO FCVTAUW F6, R23 // d700651e - //TODO FCVTAU F27, R5 // 6503659e - //TODO FCVTMSW F15, R6 // e601301e - //TODO FCVTMS F15, ZR // ff01309e - //TODO FCVTMSW F1, R14 // 2e00701e - //TODO FCVTMS F21, R9 // a902709e - //TODO FCVTMUW F20, R28 // 9c02311e - //TODO FCVTMU F23, R14 // ee02319e - //TODO FCVTMUW F18, R28 // 5c02711e - //TODO FCVTMU F24, R6 // 0603719e - //TODO FCVTNSW F12, R13 // 8d01201e - //TODO FCVTNS F9, R26 // 3a01209e - //TODO FCVTNSW F14, R8 // c801601e - //TODO FCVTNS F28, R10 // 8a03609e - //TODO FCVTNUW F22, R30 // de02211e - //TODO FCVTNU F20, R4 // 8402219e - //TODO FCVTNUW F18, R27 // 5b02611e - //TODO FCVTNU F21, R0 // a002619e - //TODO FCVTPSW F20, R6 // 8602281e - //TODO FCVTPS F12, R20 // 9401289e - //TODO FCVTPSW F22, R6 // c602681e - //TODO FCVTPS F21, R28 // bc02689e - //TODO FCVTPUW F24, R26 // 1a03291e - //TODO FCVTPU F16, R13 // 0d02299e - //TODO FCVTPUW F21, R29 // bd02691e - //TODO FCVTPU F11, R7 // 6701699e + //TODO FCVTAS F4, F28 // 9cc8215e + //TODO VFCVTAS V21.D2, V27.D2 // bbca614e + //TODO FCVTAS F27, R7 // 6703241e + //TODO FCVTAS F19, R26 // 7a02249e + //TODO FCVTAS F4, R0 // 8000641e + //TODO FCVTAS F3, R18 // 7200649e + //TODO FCVTAU F18, F28 // 5cca217e + //TODO VFCVTAU V30.S4, V27.S4 // dbcb216e + //TODO FCVTAU F0, R2 // 0200251e + //TODO FCVTAU F0, R24 // 1800259e + //TODO FCVTAU F31, R10 // ea03651e + //TODO FCVTAU F3, R8 // 6800659e + //TODO VFCVTL V11.S2, V21.D2 // 7579610e + //TODO VFCVTL2 V15.H8, V25.S4 // f979214e + //TODO FCVTMS F21, F28 // bcba215e + //TODO VFCVTMS V5.D2, V2.D2 // a2b8614e + //TODO FCVTMS F31, R18 // f203301e + //TODO FCVTMS F23, R16 // f002309e + //TODO FCVTMS F16, R22 // 1602701e + //TODO FCVTMS F14, R19 // d301709e + //TODO FCVTMU F14, F8 // c8b9217e + //TODO VFCVTMU V7.D2, V1.D2 // e1b8616e + //TODO FCVTMU F2, R0 // 4000311e + //TODO FCVTMU F23, R18 // f202319e + //TODO FCVTMU F16, R17 // 1102711e + //TODO FCVTMU F12, R18 // 9201719e + //TODO VFCVTN V23.D2, V26.S2 // fa6a610e + //TODO VFCVTN2 V2.D2, V31.S4 // 5f68614e + //TODO FCVTNS F3, F27 // 7ba8215e + //TODO VFCVTNS V11.S2, V12.S2 // 6ca9210e + //TODO FCVTNS F14, R9 // c901201e + //TODO FCVTNS F0, R27 // 1b00209e + //TODO FCVTNS F23, R0 // e002601e + //TODO FCVTNS F6, R30 // de00609e + //TODO FCVTNU F12, F9 // 89a9217e + //TODO VFCVTNU V3.D2, V20.D2 // 74a8616e + //TODO FCVTNU F20, R11 // 8b02211e + //TODO FCVTNU F23, R19 // f302219e + //TODO FCVTNU F4, R5 // 8500611e + //TODO FCVTNU F11, R19 // 7301619e + //TODO FCVTPS F20, F26 // 9aaae15e + //TODO VFCVTPS V29.S4, V13.S4 // adaba14e + //TODO FCVTPS F5, R29 // bd00281e + //TODO FCVTPS F3, R3 // 6300289e + //TODO FCVTPS F4, R25 // 9900681e + //TODO FCVTPS F29, R15 // af03689e + //TODO FCVTPU F13, F3 // a3a9e17e + //TODO VFCVTPU V6.S4, V24.S4 // d8a8a16e + //TODO FCVTPU F17, R17 // 3102291e + //TODO FCVTPU F7, R23 // f700299e + //TODO FCVTPU F10, R3 // 4301691e + //TODO FCVTPU F24, R27 // 1b03699e + //TODO FCVTXN F14, F0 // c069617e + //TODO VFCVTXN V1.D2, V17.S2 // 3168612e + //TODO VFCVTXN2 V0.D2, V21.S4 // 1568616e + //TODO FCVTZS $26, F29, F19 // b3ff665f + //TODO VFCVTZS $45, V14.D2, V18.D2 // d2fd534f + //TODO FCVTZS F8, F7 // 07b9a15e + //TODO VFCVTZS V2.S2, V4.S2 // 44b8a10e + //TODO FCVTZS $26, F7, R11 // eb98181e + //TODO FCVTZS $7, F4, ZR // 9fe4189e + //TODO FCVTZS $28, F13, R14 // ae91581e + //TODO FCVTZS $8, F27, R3 // 63e3589e FCVTZSSW F7, R15 // ef00381e FCVTZSS F16, ZR // 1f02389e FCVTZSDW F19, R3 // 6302781e FCVTZSD F7, R7 // e700789e + //TODO FCVTZU $17, F18, F28 // 5cfe2f7f + //TODO VFCVTZU $19, V20.D2, V11.D2 // 8bfe6d6f + //TODO FCVTZU F22, F8 // c8bae17e + //TODO VFCVTZU V0.S4, V1.S4 // 01b8a16e + //TODO FCVTZU $14, F24, R20 // 14cb191e + //TODO FCVTZU $6, F25, R17 // 31eb199e + //TODO FCVTZU $5, F17, R10 // 2aee591e + //TODO FCVTZU $6, F7, R18 // f2e8599e FCVTZUSW F2, R9 // 4900391e FCVTZUS F12, R29 // 9d01399e FCVTZUDW F27, R22 // 7603791e FCVTZUD F25, R22 // 3603799e - //TODO FCVTZS $63, R18, R28 // 5c06189e - //TODO FCVTZS $41, R11, R17 // 715d589e - //TODO FCVTZU $1, ZR, R5 // e5ff199e - //TODO FCVTZUW $5, ZR, R20 // f4ef591e - //TODO FCVTZU $31, R3, R7 // 6784599e + //TODO VFDIV V6.D2, V1.D2, V27.D2 // 3bfc666e FDIVS F16, F10, F20 // 5419301e FDIVD F11, F25, F30 // 3e1b6b1e - //TODO FMADD R2, R15, R8, R1 // 01090f1f - //TODO FMADD R21, R15, R25, R9 // 29574f1f + FMADDS F15, F2, F8, F1 // 01090f1f + FMADDD F15, F21, F25, F9 // 29574f1f + //TODO VFMAX V23.D2, V27.D2, V14.D2 // 6ef7774e FMAXS F5, F28, F27 // 9b4b251e FMAXD F12, F31, F31 // ff4b6c1e + //TODO VFMAXNM V3.D2, V12.D2, V27.D2 // 9bc5634e FMAXNMS F11, F24, F12 // 0c6b2b1e FMAXNMD F20, F6, F16 // d068741e + //TODO VFMAXNMP V3.S2, F2 // 62c8307e + //TODO VFMAXNMP V25.S2, V4.S2, V2.S2 // 82c4392e + //TODO VFMAXNMV V14.S4, F15 // cfc9306e + //TODO VFMAXP V3.S2, F27 // 7bf8307e + //TODO VFMAXP V29.S2, V30.S2, V9.S2 // c9f73d2e + //TODO VFMAXV V13.S4, F14 // aef9306e + //TODO VFMIN V19.D2, V30.D2, V7.D2 // c7f7f34e FMINS F26, F18, F30 // 5e5a3a1e FMIND F29, F4, F21 // 95587d1e + //TODO VFMINNM V21.S4, V5.S4, V1.S4 // a1c4b54e FMINNMS F23, F20, F1 // 817a371e FMINNMD F8, F3, F24 // 7878681e - // FMOVS $(-1.625), F13 // 0d503f1e - // FMOVD $12.5, F30 // 1e30651e - //TODO FMOV R7, V25.D[1] // f900af9e + //TODO VFMINNMP V16.D2, F12 // 0ccaf07e + //TODO VFMINNMP V10.S4, V25.S4, V27.S4 // 3bc7aa6e + //TODO VFMINNMV V8.S4, F3 // 03c9b06e + //TODO VFMINP V10.S2, F20 // 54f9b07e + //TODO VFMINP V1.D2, V10.D2, V3.D2 // 43f5e16e + //TODO VFMINV V11.S4, F9 // 69f9b06e + //TODO VFMLA V6.S[0], F2, F14 // 4e10865f + //TODO VFMLA V28.S[2], V2.S2, V30.S2 // 5e189c0f + VFMLA V29.S2, V20.S2, V14.S2 // 8ece3d0e + //TODO VFMLS V24.D[1], F3, F17 // 7158d85f + //TODO VFMLS V10.S[0], V11.S2, V10.S2 // 6a518a0f + VFMLS V29.S2, V27.S2, V17.S2 // 71cfbd0e + //TODO FMOVS $(-1.625), F13 // 0d503f1e + //TODO FMOVD $12.5, F30 // 1e30651e + //TODO VFMOV R7, V25.D[1] // f900af9e FMOVD F2, R15 // 4f00669e FMOVD R3, F11 // 6b00679e FMOVS F20, R29 // 9d02261e FMOVS R8, F15 // 0f01271e FMOVD F2, F9 // 4940601e FMOVS F4, F27 // 9b40201e - //TODO FMOV $3.125, V8.2D // 28f5006f - //TODO FMSUB R21, R13, R13, R19 // b3d50d1f - //TODO FMSUB R7, R11, R15, ZR // ff9d4b1f + //TODO VFMOV $3.125, V8.2D // 28f5006f + FMSUBS F13, F21, F13, F19 // b3d50d1f + FMSUBD F11, F7, F15, F31 // ff9d4b1f + //TODO VFMUL V9.S[2], F21, F19 // b39a895f + //TODO VFMUL V26.S[2], V26.S2, V2.S2 // 429b9a0f + //TODO VFMUL V21.D2, V17.D2, V25.D2 // 39de756e FMULS F0, F6, F24 // d808201e FMULD F5, F29, F9 // a90b651e - //TODO FNMADD R22, R17, R6, R20 // d458311f - //TODO FNMADD R0, R15, R26, R20 // 54036f1f - //TODO FNMSUB R16, R14, R27, R14 // 6ec32e1f - //TODO FNMSUB R25, R29, R8, R10 // 0ae57d1f + //TODO VFMULX V26.S[2], F20, F8 // 889a9a7f + //TODO VFMULX V12.D[1], V21.D2, V31.D2 // bf9acc6f + //TODO FMULX F16, F1, F31 // 3fdc705e + //TODO VFMULX V29.S2, V13.S2, V31.S2 // bfdd3d0e + //TODO VFNEG V18.S2, V12.S2 // 4cfaa02e + FNEGS F16, F5 // 0542211e + FNEGD F31, F31 // ff43611e + FNMADDS F17, F22, F6, F20 // d458311f + FNMADDD F15, F0, F26, F20 // 54036f1f + FNMSUBS F14, F16, F27, F14 // 6ec32e1f + FNMSUBD F29, F25, F8, F10 // 0ae57d1f FNMULS F24, F22, F18 // d28a381e FNMULD F14, F30, F7 // c78b6e1e + //TODO FRECPE F9, F2 // 22d9e15e + //TODO VFRECPE V0.S2, V28.S2 // 1cd8a10e + //TODO FRECPS F28, F10, F9 // 49fd3c5e + //TODO VFRECPS V27.D2, V12.D2, V24.D2 // 98fd7b4e + //TODO FRECPX F28, F3 // 83fbe15e + //TODO VFRINTA V14.S2, V25.S2 // d989212e + FRINTAS F0, F21 // 1540261e + FRINTAD F8, F22 // 1641661e + //TODO VFRINTI V21.D2, V31.D2 // bf9ae16e + FRINTIS F17, F17 // 31c2271e + FRINTID F9, F15 // 2fc1671e + //TODO VFRINTM V9.D2, V27.D2 // 3b99614e + FRINTMS F24, F16 // 1043251e + FRINTMD F5, F2 // a240651e + //TODO VFRINTN V30.S4, V2.S4 // c28b214e + FRINTNS F26, F14 // 4e43241e + FRINTND F28, F12 // 8c43641e + //TODO VFRINTP V27.D2, V31.D2 // 7f8be14e + FRINTPS F27, F4 // 64c3241e + FRINTPD F6, F22 // d6c0641e + //TODO VFRINTX V25.D2, V0.D2 // 209b616e + FRINTXS F26, F10 // 4a43271e + FRINTXD F16, F12 // 0c42671e + //TODO VFRINTZ V25.S4, V27.S4 // 3b9ba14e + FRINTZS F3, F28 // 7cc0251e + FRINTZD F24, F6 // 06c3651e + //TODO FRSQRTE F29, F5 // a5dbe17e + //TODO VFRSQRTE V18.S2, V1.S2 // 41daa12e + //TODO FRSQRTS F17, F7, F24 // f8fcf15e + //TODO VFRSQRTS V14.S2, V10.S2, V24.S2 // 58fdae0e + //TODO VFSQRT V2.D2, V21.D2 // 55f8e16e FSQRTS F0, F9 // 09c0211e FSQRTD F14, F27 // dbc1611e FSUBS F25, F23, F0 // e03a391e FSUBD F11, F13, F24 // b8396b1e //TODO SCVTFSS F30, F20 // d4db215e - //TODO SCVTF V7.2S, V17.2S // f1d8210e + //TODO VSCVTF V7.2S, V17.2S // f1d8210e SCVTFWS R3, F16 // 7000221e SCVTFWD R20, F4 // 8402621e SCVTFS R16, F12 // 0c02229e @@ -512,5 +655,106 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$-8 UCVTFWD R10, F23 // 5701631e UCVTFS R24, F29 // 1d03239e UCVTFD R20, F11 // 8b02639e + VADD V16, V19, V14 // 6e86f05e + VADD V5.H8, V18.H8, V9.H8 // 4986654e + VADDP V7.H8, V25.H8, V17.H8 // 31bf674e + VADDV V3.H8, V0 // 60b8714e + AESD V22.B16, V19.B16 // d35a284e + AESE V31.B16, V29.B16 // fd4b284e + AESIMC V12.B16, V27.B16 // 9b79284e + AESMC V14.B16, V28.B16 // dc69284e + VAND V4.B16, V4.B16, V9.B16 // 891c244e + VCMEQ V24.S4, V13.S4, V12.S4 // ac8db86e + VCNT V13.B8, V11.B8 // ab59200e + VMOV V31.B[15], V18 // f2071f5e + VDUP V31.B[13], V20.B16 // f4071b4e + VEOR V4.B8, V18.B8, V7.B8 // 471e242e + VEXT $4, V2.B8, V1.B8, V3.B8 // 2320022e + VEXT $8, V2.B16, V1.B16, V3.B16 // 2340026e + VMOV V11.B[11], V16.B[12] // 705d196e + VMOV R20, V21.B[2] // 951e054e + VLD1 (R2), [V21.B16] // 5570404c + VLD1 (R24), [V18.D1, V19.D1, V20.D1] // 126f400c + VLD1 (R29), [V14.D1, V15.D1, V16.D1, V17.D1] // ae2f400c + VLD1.P 16(R23), [V1.B16] // e172df4c + VLD1.P (R6)(R11), [V31.D1] // VLD1.P (R6)(R11*1), [V31.D1] // df7ccb0c + VLD1.P 16(R7), [V31.D1, V0.D1] // ffacdf0c + VLD1.P (R19)(R4), [V24.B8, V25.B8] // VLD1.P (R19)(R4*1), [V24.B8, V25.B8] // 78a2c40c + VLD1.P (R20)(R8), [V7.H8, V8.H8, V9.H8] // VLD1.P (R20)(R8*1), [V7.H8, V8.H8, V9.H8] // 8766c84c + VLD1.P 32(R30), [V5.B8, V6.B8, V7.B8, V8.B8] // c523df0c + VLD1 (R18), V14.B[15] // 4e1e404d + VLD1 (R29), V0.H[1] // a04b400d + VLD1 (R27), V2.S[0] // 6283400d + VLD1 (R21), V5.D[1] // a586404d + VLD1.P 1(R18), V10.B[14] // 4a1adf4d + VLD1.P (R3)(R14), V16.B[11] // VLD1.P (R3)(R14*1), V16.B[11] // 700cce4d + VLD1.P 2(R1), V28.H[2] // 3c50df0d + VLD1.P (R13)(R20), V9.H[2] // VLD1.P (R13)(R20*1), V9.H[2] // a951d40d + VLD1.P 4(R17), V1.S[3] // 2192df4d + VLD1.P (R14)(R2), V17.S[2] // VLD1.P (R14)(R2*1), V17.S[2] // d181c24d + VLD1.P 8(R5), V30.D[1] // be84df4d + VLD1.P (R27)(R13), V27.D[0] // VLD1.P (R27)(R13*1), V27.D[0] // 7b87cd0d + //TODO FMOVS.P -29(RSP), F8 // e8375ebc + //TODO FMOVS.W 71(R29), F28 // bc7f44bc + FMOVS 6160(R4), F23 // 971058bd + VMOV V18.B[10], V27 // 5b06155e + VMOV V12.B[2], V28.B[12] // 9c15196e + VMOV R30, V4.B[13] // c41f1b4e + VMOV V2.B16, V4.B16 // 441ca24e + VMOV V13.S[0], R20 // b43d040e + VMOV V13.D[0], R20 // b43d084e + VMOVI $146, V22.B16 // 56e6044f + VORR V25.B16, V22.B16, V15.B16 // cf1eb94e + VPMULL V2.D1, V1.D1, V3.Q1 // 23e0e20e + VPMULL2 V2.D2, V1.D2, V4.Q1 // 24e0e24e + VPMULL V2.B8, V1.B8, V3.H8 // 23e0220e + VPMULL2 V2.B16, V1.B16, V4.H8 // 24e0224e + VRBIT V10.B16, V21.B16 // 5559606e + VREV32 V2.H8, V1.H8 // 4108606e + SCVTFWS R6, F17 // d100221e + SCVTFWD R3, F15 // 6f00621e + SCVTFS R20, F25 // 9902229e + SCVTFD R13, F9 // a901629e + SHA1C V8.S4, V8, V2 // 0201085e + SHA1H V17, V25 // 390a285e + SHA1M V0.S4, V27, V27 // 7b23005e + SHA1P V3.S4, V20, V27 // 9b12035e + SHA1SU0 V17.S4, V13.S4, V16.S4 // b031115e + SHA1SU1 V24.S4, V23.S4 // 171b285e + SHA256H2 V6.S4, V16, V11 // 0b52065e + SHA256H V4.S4, V2, V11 // 4b40045e + SHA256SU0 V0.S4, V16.S4 // 1028285e + SHA256SU1 V31.S4, V3.S4, V15.S4 // 6f601f5e + VSHL $7, V22.D2, V25.D2 // d956474f + VST1 [V14.H4, V15.H4, V16.H4], (R27) // 6e67000c + VST1 [V2.S4, V3.S4, V4.S4, V5.S4], (R14) // c229004c + VST1.P [V25.S4], (R7)(R29) // VST1.P [V25.S4], (R7)(R29*1) // f9789d4c + VST1.P [V25.D2, V26.D2], 32(R7) // f9ac9f4c + VST1.P [V14.D1, V15.D1], (R7)(R23) // VST1.P [V14.D1, V15.D1], (R7)(R23*1) // eeac970c + VST1.P [V25.D2, V26.D2, V27.D2], 48(R27) // 796f9f4c + VST1.P [V13.H8, V14.H8, V15.H8], (R3)(R14) // VST1.P [V13.H8, V14.H8, V15.H8], (R3)(R14*1) // 6d648e4c + VST1.P [V16.S4, V17.S4, V18.S4, V19.S4], 64(R6) // d0289f4c + VST1.P [V19.H4, V20.H4, V21.H4, V22.H4], (R4)(R16) // VST1.P [V19.H4, V20.H4, V21.H4, V22.H4], (R4)(R16*1) // 9324900c + VST1 V12.B[3], (R1) // 2c0c000d + VST1 V12.B[3], (R1) // 2c0c000d + VST1 V25.S[2], (R20) // 9982004d + VST1 V9.D[1], (RSP) // e987004d + VST1.P V30.B[6], 1(R3) // 7e189f0d + VST1.P V8.B[0], (R3)(R21) // VST1.P V8.B[0], (R3)(R21*1) // 6800950d + VST1.P V15.H[5], 2(R10) // 4f499f4d + VST1.P V1.H[7], (R23)(R11) // VST1.P V1.H[7], (R23)(R11*1) // e15a8b4d + VST1.P V26.S[0], 4(R11) // 7a819f0d + VST1.P V9.S[1], (R16)(R21) // VST1.P V9.S[1], (R16)(R21*1) // 0992950d + VST1.P V16.D[0], 8(R9) // 30859f0d + VST1.P V23.D[1], (R21)(R16) // VST1.P V23.D[1], (R21)(R16*1) // b786904d + VSUB V1, V12, V23 // 9785e17e + VUADDLV V31.S4, V11 // eb3bb06e + UCVTFWS R11, F19 // 7301231e + UCVTFWD R26, F13 // 4d03631e + UCVTFS R23, F11 // eb02239e + UCVTFD R5, F29 // bd00639e + VMOV V0.B[1], R11 // 0b3c030e + VMOV V1.H[3], R12 // 2c3c0e0e + VUSHR $6, V22.H8, V23.H8 // d7061a6f RET -- 2.50.0