x86/x86asm: support BMI1/BMI2 instructions This CL adds decoding support for BMI (bit manipulation instructions), specifically the VEX-encoded instructions from BMI1 and BMI2: ANDN, BEXTR, BLSI, BLSMSK, BLSR (BMI1) BZHI, MULX, PDEP, PEXT, RORX, SARX, SHLX, SHRX (BMI2) Note: TZCNT is not VEX-encoded and is already supported via x86.csv. I updated avx_tables.go with `XEDPATH=$HOME/src/xed/obj/dgen go generate ./...` and added the output of `go run genavxtests.go` to decode.txt. Tested with the program from issue golang/go#48584: :5 0x47d060 c4e2e0f2c0 ANDNQ AX, BX, AX For golang/go#48584 Change-Id: I0e733499f2d501b5b2ff0476de021ca0c4b1e582 Reviewed-on: https://go-review.googlesource.com/c/arch/+/835785 Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/x86/x86asm/_gen/genavx.go b/x86/x86asm/_gen/genavx.go index b050408..7b7f863 100644 --- a/x86/x86asm/_gen/genavx.go +++ b/x86/x86asm/_gen/genavx.go
@@ -120,8 +120,10 @@ if !pset.Is("VEX") && !pset.Is("EVEX") { return } - if !strings.HasPrefix(inst.Iclass, "V") && !strings.HasPrefix(inst.Iclass, "K") { - // Handle only AVX instructions for now. + avx := strings.HasPrefix(inst.Iclass, "V") || strings.HasPrefix(inst.Iclass, "K") + bmi := pset.Is("VEX") && (inst.Extension == "BMI1" || inst.Extension == "BMI2") + if !avx && !bmi { + // Handle only AVX and BMI1/BMI2 instructions for now. return } if inst.RealOpcode == "N" {
diff --git a/x86/x86asm/avx_tables.go b/x86/x86asm/avx_tables.go index f68bd54..12ce5a4 100644 --- a/x86/x86asm/avx_tables.go +++ b/x86/x86asm/avx_tables.go
@@ -4,6 +4,12 @@ const ( _ Op = iota + maxNonAVXOp + ANDN + BEXTR + BLSI + BLSMSK + BLSR + BZHI KADDB KADDD KADDQ @@ -55,6 +61,13 @@ KXORD KXORQ KXORW + MULX + PDEP + PEXT + RORX + SARX + SHLX + SHRX V4FMADDPS V4FMADDSS V4FNMADDPS @@ -912,6 +925,12 @@ ) var avxOpNames = []string{ + ANDN: "ANDN", + BEXTR: "BEXTR", + BLSI: "BLSI", + BLSMSK: "BLSMSK", + BLSR: "BLSR", + BZHI: "BZHI", KADDB: "KADDB", KADDD: "KADDD", KADDQ: "KADDQ", @@ -963,6 +982,13 @@ KXORD: "KXORD", KXORQ: "KXORQ", KXORW: "KXORW", + MULX: "MULX", + PDEP: "PDEP", + PEXT: "PEXT", + RORX: "RORX", + SARX: "SARX", + SHLX: "SHLX", + SHRX: "SHRX", V4FMADDPS: "V4FMADDPS", V4FMADDSS: "V4FMADDSS", V4FNMADDPS: "V4FNMADDPS", @@ -6591,6 +6617,88 @@ {op: VAESDECLAST, args: [6]argType{argZmm_R, argZmm_N, argZmm_B}, vexP: 1, vexL: 2, opdigit: -1, evex: true}, {op: VAESDECLAST, args: [6]argType{argZmm_R, argZmm_N, argM}, vexP: 1, vexL: 2, opdigit: -1, ismem: 1, evex: true, dispScale: 64, memBytes: 64}, }, + 242: { + {op: ANDN, args: [6]argType{argGPR32_R, argGPR32_N, argM}, opdigit: -1, ismem: 1, memBytes: 4}, + {op: ANDN, args: [6]argType{argGPR32_R, argGPR32_N, argM}, opdigit: -1, ismem: 1, memBytes: 4}, + {op: ANDN, args: [6]argType{argGPR32_R, argGPR32_N, argGPR32_B}, opdigit: -1}, + {op: ANDN, args: [6]argType{argGPR32_R, argGPR32_N, argGPR32_B}, opdigit: -1}, + {op: ANDN, args: [6]argType{argGPR64_R, argGPR64_N, argM}, vexW: 1, opdigit: -1, ismem: 1, memBytes: 8}, + {op: ANDN, args: [6]argType{argGPR64_R, argGPR64_N, argGPR64_B}, vexW: 1, opdigit: -1}, + }, + 243: { + {op: BLSR, args: [6]argType{argGPR32_N, argM}, opdigit: 1, ismem: 1, memBytes: 4}, + {op: BLSR, args: [6]argType{argGPR32_N, argM}, opdigit: 1, ismem: 1, memBytes: 4}, + {op: BLSR, args: [6]argType{argGPR32_N, argGPR32_B}, opdigit: 1}, + {op: BLSR, args: [6]argType{argGPR32_N, argGPR32_B}, opdigit: 1}, + {op: BLSR, args: [6]argType{argGPR64_N, argM}, vexW: 1, opdigit: 1, ismem: 1, memBytes: 8}, + {op: BLSR, args: [6]argType{argGPR64_N, argGPR64_B}, vexW: 1, opdigit: 1}, + {op: BLSMSK, args: [6]argType{argGPR32_N, argM}, opdigit: 2, ismem: 1, memBytes: 4}, + {op: BLSMSK, args: [6]argType{argGPR32_N, argM}, opdigit: 2, ismem: 1, memBytes: 4}, + {op: BLSMSK, args: [6]argType{argGPR32_N, argGPR32_B}, opdigit: 2}, + {op: BLSMSK, args: [6]argType{argGPR32_N, argGPR32_B}, opdigit: 2}, + {op: BLSMSK, args: [6]argType{argGPR64_N, argM}, vexW: 1, opdigit: 2, ismem: 1, memBytes: 8}, + {op: BLSMSK, args: [6]argType{argGPR64_N, argGPR64_B}, vexW: 1, opdigit: 2}, + {op: BLSI, args: [6]argType{argGPR32_N, argM}, opdigit: 3, ismem: 1, memBytes: 4}, + {op: BLSI, args: [6]argType{argGPR32_N, argM}, opdigit: 3, ismem: 1, memBytes: 4}, + {op: BLSI, args: [6]argType{argGPR32_N, argGPR32_B}, opdigit: 3}, + {op: BLSI, args: [6]argType{argGPR32_N, argGPR32_B}, opdigit: 3}, + {op: BLSI, args: [6]argType{argGPR64_N, argM}, vexW: 1, opdigit: 3, ismem: 1, memBytes: 8}, + {op: BLSI, args: [6]argType{argGPR64_N, argGPR64_B}, vexW: 1, opdigit: 3}, + }, + 245: { + {op: PDEP, args: [6]argType{argGPR32_R, argGPR32_N, argM}, vexP: 2, opdigit: -1, ismem: 1, memBytes: 4}, + {op: PDEP, args: [6]argType{argGPR32_R, argGPR32_N, argM}, vexP: 2, opdigit: -1, ismem: 1, memBytes: 4}, + {op: PDEP, args: [6]argType{argGPR32_R, argGPR32_N, argGPR32_B}, vexP: 2, opdigit: -1}, + {op: PDEP, args: [6]argType{argGPR32_R, argGPR32_N, argGPR32_B}, vexP: 2, opdigit: -1}, + {op: PDEP, args: [6]argType{argGPR64_R, argGPR64_N, argM}, vexP: 2, vexW: 1, opdigit: -1, ismem: 1, memBytes: 8}, + {op: PDEP, args: [6]argType{argGPR64_R, argGPR64_N, argGPR64_B}, vexP: 2, vexW: 1, opdigit: -1}, + {op: PEXT, args: [6]argType{argGPR32_R, argGPR32_N, argM}, vexP: 3, opdigit: -1, ismem: 1, memBytes: 4}, + {op: PEXT, args: [6]argType{argGPR32_R, argGPR32_N, argM}, vexP: 3, opdigit: -1, ismem: 1, memBytes: 4}, + {op: PEXT, args: [6]argType{argGPR32_R, argGPR32_N, argGPR32_B}, vexP: 3, opdigit: -1}, + {op: PEXT, args: [6]argType{argGPR32_R, argGPR32_N, argGPR32_B}, vexP: 3, opdigit: -1}, + {op: PEXT, args: [6]argType{argGPR64_R, argGPR64_N, argM}, vexP: 3, vexW: 1, opdigit: -1, ismem: 1, memBytes: 8}, + {op: PEXT, args: [6]argType{argGPR64_R, argGPR64_N, argGPR64_B}, vexP: 3, vexW: 1, opdigit: -1}, + {op: BZHI, args: [6]argType{argGPR32_R, argM, argGPR32_N}, opdigit: -1, ismem: 1, memBytes: 4}, + {op: BZHI, args: [6]argType{argGPR32_R, argM, argGPR32_N}, opdigit: -1, ismem: 1, memBytes: 4}, + {op: BZHI, args: [6]argType{argGPR32_R, argGPR32_B, argGPR32_N}, opdigit: -1}, + {op: BZHI, args: [6]argType{argGPR32_R, argGPR32_B, argGPR32_N}, opdigit: -1}, + {op: BZHI, args: [6]argType{argGPR64_R, argM, argGPR64_N}, vexW: 1, opdigit: -1, ismem: 1, memBytes: 8}, + {op: BZHI, args: [6]argType{argGPR64_R, argGPR64_B, argGPR64_N}, vexW: 1, opdigit: -1}, + }, + 246: { + {op: MULX, args: [6]argType{argGPR32_R, argGPR32_N, argGPR32_B}, vexP: 2, opdigit: -1}, + {op: MULX, args: [6]argType{argGPR32_R, argGPR32_N, argGPR32_B}, vexP: 2, opdigit: -1}, + {op: MULX, args: [6]argType{argGPR32_R, argGPR32_N, argM}, vexP: 2, opdigit: -1, ismem: 1, memBytes: 4}, + {op: MULX, args: [6]argType{argGPR32_R, argGPR32_N, argM}, vexP: 2, opdigit: -1, ismem: 1, memBytes: 4}, + {op: MULX, args: [6]argType{argGPR64_R, argGPR64_N, argGPR64_B}, vexP: 2, vexW: 1, opdigit: -1}, + {op: MULX, args: [6]argType{argGPR64_R, argGPR64_N, argM}, vexP: 2, vexW: 1, opdigit: -1, ismem: 1, memBytes: 8}, + }, + 247: { + {op: BEXTR, args: [6]argType{argGPR32_R, argM, argGPR32_N}, opdigit: -1, ismem: 1, memBytes: 4}, + {op: BEXTR, args: [6]argType{argGPR32_R, argM, argGPR32_N}, opdigit: -1, ismem: 1, memBytes: 4}, + {op: BEXTR, args: [6]argType{argGPR32_R, argGPR32_B, argGPR32_N}, opdigit: -1}, + {op: BEXTR, args: [6]argType{argGPR32_R, argGPR32_B, argGPR32_N}, opdigit: -1}, + {op: BEXTR, args: [6]argType{argGPR64_R, argM, argGPR64_N}, vexW: 1, opdigit: -1, ismem: 1, memBytes: 8}, + {op: BEXTR, args: [6]argType{argGPR64_R, argGPR64_B, argGPR64_N}, vexW: 1, opdigit: -1}, + {op: SHLX, args: [6]argType{argGPR32_R, argM, argGPR32_N}, vexP: 1, opdigit: -1, ismem: 1, memBytes: 4}, + {op: SHLX, args: [6]argType{argGPR32_R, argM, argGPR32_N}, vexP: 1, opdigit: -1, ismem: 1, memBytes: 4}, + {op: SHLX, args: [6]argType{argGPR32_R, argGPR32_B, argGPR32_N}, vexP: 1, opdigit: -1}, + {op: SHLX, args: [6]argType{argGPR32_R, argGPR32_B, argGPR32_N}, vexP: 1, opdigit: -1}, + {op: SHLX, args: [6]argType{argGPR64_R, argM, argGPR64_N}, vexP: 1, vexW: 1, opdigit: -1, ismem: 1, memBytes: 8}, + {op: SHLX, args: [6]argType{argGPR64_R, argGPR64_B, argGPR64_N}, vexP: 1, vexW: 1, opdigit: -1}, + {op: SARX, args: [6]argType{argGPR32_R, argM, argGPR32_N}, vexP: 3, opdigit: -1, ismem: 1, memBytes: 4}, + {op: SARX, args: [6]argType{argGPR32_R, argM, argGPR32_N}, vexP: 3, opdigit: -1, ismem: 1, memBytes: 4}, + {op: SARX, args: [6]argType{argGPR32_R, argGPR32_B, argGPR32_N}, vexP: 3, opdigit: -1}, + {op: SARX, args: [6]argType{argGPR32_R, argGPR32_B, argGPR32_N}, vexP: 3, opdigit: -1}, + {op: SARX, args: [6]argType{argGPR64_R, argM, argGPR64_N}, vexP: 3, vexW: 1, opdigit: -1, ismem: 1, memBytes: 8}, + {op: SARX, args: [6]argType{argGPR64_R, argGPR64_B, argGPR64_N}, vexP: 3, vexW: 1, opdigit: -1}, + {op: SHRX, args: [6]argType{argGPR32_R, argM, argGPR32_N}, vexP: 2, opdigit: -1, ismem: 1, memBytes: 4}, + {op: SHRX, args: [6]argType{argGPR32_R, argM, argGPR32_N}, vexP: 2, opdigit: -1, ismem: 1, memBytes: 4}, + {op: SHRX, args: [6]argType{argGPR32_R, argGPR32_B, argGPR32_N}, vexP: 2, opdigit: -1}, + {op: SHRX, args: [6]argType{argGPR32_R, argGPR32_B, argGPR32_N}, vexP: 2, opdigit: -1}, + {op: SHRX, args: [6]argType{argGPR64_R, argM, argGPR64_N}, vexP: 2, vexW: 1, opdigit: -1, ismem: 1, memBytes: 8}, + {op: SHRX, args: [6]argType{argGPR64_R, argGPR64_B, argGPR64_N}, vexP: 2, vexW: 1, opdigit: -1}, + }, } var avxMap0F3A = [256][]*avxOptab{ @@ -7379,4 +7487,12 @@ {op: VAESKEYGENASSIST, args: [6]argType{argXmm_R, argXmm_B, argImm8u}, vexP: 1, opdigit: -1}, {op: VAESKEYGENASSIST, args: [6]argType{argXmm_R, argM, argImm8u}, vexP: 1, opdigit: -1, ismem: 1, memBytes: 16}, }, + 240: { + {op: RORX, args: [6]argType{argGPR32_R, argGPR32_B, argImm8u}, vexP: 2, opdigit: -1}, + {op: RORX, args: [6]argType{argGPR32_R, argGPR32_B, argImm8u}, vexP: 2, opdigit: -1}, + {op: RORX, args: [6]argType{argGPR32_R, argM, argImm8u}, vexP: 2, opdigit: -1, ismem: 1, memBytes: 4}, + {op: RORX, args: [6]argType{argGPR32_R, argM, argImm8u}, vexP: 2, opdigit: -1, ismem: 1, memBytes: 4}, + {op: RORX, args: [6]argType{argGPR64_R, argGPR64_B, argImm8u}, vexP: 2, vexW: 1, opdigit: -1}, + {op: RORX, args: [6]argType{argGPR64_R, argM, argImm8u}, vexP: 2, vexW: 1, opdigit: -1, ismem: 1, memBytes: 8}, + }, }
diff --git a/x86/x86asm/decode.go b/x86/x86asm/decode.go index 0f689ea..b55916b 100644 --- a/x86/x86asm/decode.go +++ b/x86/x86asm/decode.go
@@ -481,6 +481,14 @@ opshift = 24 if vex != 0 { + // The VEX.W bit selects 64 bit registers. + switch vex & 0xFF { + case PrefixVEX3Bytes, PrefixEVEX: + if inst.Prefix[vexIndex+2]&0x80 != 0 { + dataMode = 64 + } + } + inst.DataSize = dataMode return decodeAVX(src, pos, vex, vexIndex, inst, mode) }
diff --git a/x86/x86asm/gnu.go b/x86/x86asm/gnu.go index 9fa590c..133f0e8 100644 --- a/x86/x86asm/gnu.go +++ b/x86/x86asm/gnu.go
@@ -253,6 +253,13 @@ // but libopcodes still always puts a suffix on crc32. continue + case ANDN, BEXTR, BLSI, BLSMSK, BLSR, + BZHI, MULX, PDEP, PEXT, RORX, SARX, SHLX, SHRX: + // The register arguments do tell us operand size, but + // libopcodes still always puts a suffix on the BMI1 and + // BMI2 instructions. + continue + case PUSH, POP: // Even though segment registers are 16-bit, push and pop // can save/restore them from 32-bit slots, so they @@ -285,6 +292,9 @@ case CRC32: op += byteSizeSuffix(argBytes(&inst, inst.Args[1])) + case ANDN, BEXTR, BLSI, BLSMSK, BLSR, BZHI, MULX, PDEP, PEXT, RORX, SARX, SHLX, SHRX: + op += byteSizeSuffix(inst.DataSize / 8) + case LGDT, LIDT, SGDT, SIDT: op += byteSizeSuffix(inst.DataSize / 8)
diff --git a/x86/x86asm/plan9x.go b/x86/x86asm/plan9x.go index 59b7611..1949605 100644 --- a/x86/x86asm/plan9x.go +++ b/x86/x86asm/plan9x.go
@@ -269,12 +269,18 @@ ADC: true, ADD: true, AND: true, + ANDN: true, + BEXTR: true, + BLSI: true, + BLSMSK: true, + BLSR: true, BSF: true, BSR: true, BT: true, BTC: true, BTR: true, BTS: true, + BZHI: true, CMP: true, CMPXCHG: true, CVTSI2SD: true, @@ -295,11 +301,14 @@ MOV: true, MOVNTI: true, MUL: true, + MULX: true, NEG: true, NOP: true, NOT: true, OR: true, OUT: true, + PDEP: true, + PEXT: true, POP: true, POPA: true, POPCNT: true, @@ -309,11 +318,15 @@ RCR: true, ROL: true, ROR: true, + RORX: true, SAR: true, + SARX: true, SBB: true, SHL: true, + SHLX: true, SHLD: true, SHR: true, + SHRX: true, SHRD: true, SUB: true, TEST: true,
diff --git a/x86/x86asm/testdata/decode.txt b/x86/x86asm/testdata/decode.txt index b4e583b..61e4403 100644 --- a/x86/x86asm/testdata/decode.txt +++ b/x86/x86asm/testdata/decode.txt
@@ -6784,6 +6784,558 @@ f3ab|11223344556677885f5f5f5f5f5f 32 intel rep stosd dword ptr [edi] f3ab|11223344556677885f5f5f5f5f5f 32 plan9 REP; STOSD AX, ES:0(DI) f201c1|223344556677885f5f5f5f5f5f 64 plan9 REPNE; ADDL AX, CX +c4e230f213|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNL 0(BX), R9, DX +c4e230f213|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnl (%rbx),%r9d,%edx +c4e230f213|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn edx, r9d, dword ptr [rbx] +c4c230f213|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNL 0(R11), R9, DX +c4c230f213|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnl (%r11),%r9d,%edx +c4c230f213|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn edx, r9d, dword ptr [r11] +c4e230f2d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNL DX, R9, DX +c4e230f2d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnl %edx,%r9d,%edx +c4e230f2d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn edx, r9d, edx +c4c230f2d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNL R11, R9, DX +c4c230f2d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnl %r11d,%r9d,%edx +c4c230f2d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn edx, r9d, r11d +c46230f21b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNL 0(BX), R9, R11 +c46230f21b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnl (%rbx),%r9d,%r11d +c46230f21b|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn r11d, r9d, dword ptr [rbx] +c44230f21b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNL 0(R11), R9, R11 +c44230f21b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnl (%r11),%r9d,%r11d +c44230f21b|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn r11d, r9d, dword ptr [r11] +c46230f2da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNL DX, R9, R11 +c46230f2da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnl %edx,%r9d,%r11d +c46230f2da|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn r11d, r9d, edx +c44230f2db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNL R11, R9, R11 +c44230f2db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnl %r11d,%r9d,%r11d +c44230f2db|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn r11d, r9d, r11d +c4e288f213|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNQ 0(BX), R14, DX +c4e288f213|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnq (%rbx),%r14,%rdx +c4e288f213|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn rdx, r14, qword ptr [rbx] +c4c288f213|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNQ 0(R11), R14, DX +c4c288f213|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnq (%r11),%r14,%rdx +c4c288f213|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn rdx, r14, qword ptr [r11] +c4e288f2d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNQ DX, R14, DX +c4e288f2d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnq %rdx,%r14,%rdx +c4e288f2d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn rdx, r14, rdx +c4c288f2d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNQ R11, R14, DX +c4c288f2d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnq %r11,%r14,%rdx +c4c288f2d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn rdx, r14, r11 +c46288f21b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNQ 0(BX), R14, R11 +c46288f21b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnq (%rbx),%r14,%r11 +c46288f21b|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn r11, r14, qword ptr [rbx] +c44288f21b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNQ 0(R11), R14, R11 +c44288f21b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnq (%r11),%r14,%r11 +c44288f21b|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn r11, r14, qword ptr [r11] +c46288f2da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNQ DX, R14, R11 +c46288f2da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnq %rdx,%r14,%r11 +c46288f2da|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn r11, r14, rdx +c44288f2db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 ANDNQ R11, R14, R11 +c44288f2db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu andnq %r11,%r14,%r11 +c44288f2db|5f5f5f5f5f5f5f5f5f5f5f 64 intel andn r11, r14, r11 +c4e230f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRL R9, 0(BX), DX +c4e230f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrl %r9d,(%rbx),%edx +c4e230f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr edx, dword ptr [rbx], r9d +c4c230f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRL R9, 0(R11), DX +c4c230f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrl %r9d,(%r11),%edx +c4c230f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr edx, dword ptr [r11], r9d +c4e230f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRL R9, DX, DX +c4e230f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrl %r9d,%edx,%edx +c4e230f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr edx, edx, r9d +c4c230f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRL R9, R11, DX +c4c230f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrl %r9d,%r11d,%edx +c4c230f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr edx, r11d, r9d +c46230f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRL R9, 0(BX), R11 +c46230f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrl %r9d,(%rbx),%r11d +c46230f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr r11d, dword ptr [rbx], r9d +c44230f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRL R9, 0(R11), R11 +c44230f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrl %r9d,(%r11),%r11d +c44230f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr r11d, dword ptr [r11], r9d +c46230f7da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRL R9, DX, R11 +c46230f7da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrl %r9d,%edx,%r11d +c46230f7da|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr r11d, edx, r9d +c44230f7db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRL R9, R11, R11 +c44230f7db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrl %r9d,%r11d,%r11d +c44230f7db|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr r11d, r11d, r9d +c4e288f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRQ R14, 0(BX), DX +c4e288f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrq %r14,(%rbx),%rdx +c4e288f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr rdx, qword ptr [rbx], r14 +c4c288f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRQ R14, 0(R11), DX +c4c288f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrq %r14,(%r11),%rdx +c4c288f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr rdx, qword ptr [r11], r14 +c4e288f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRQ R14, DX, DX +c4e288f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrq %r14,%rdx,%rdx +c4e288f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr rdx, rdx, r14 +c4c288f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRQ R14, R11, DX +c4c288f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrq %r14,%r11,%rdx +c4c288f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr rdx, r11, r14 +c46288f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRQ R14, 0(BX), R11 +c46288f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrq %r14,(%rbx),%r11 +c46288f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr r11, qword ptr [rbx], r14 +c44288f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRQ R14, 0(R11), R11 +c44288f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrq %r14,(%r11),%r11 +c44288f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr r11, qword ptr [r11], r14 +c46288f7da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRQ R14, DX, R11 +c46288f7da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrq %r14,%rdx,%r11 +c46288f7da|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr r11, rdx, r14 +c44288f7db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BEXTRQ R14, R11, R11 +c44288f7db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bextrq %r14,%r11,%r11 +c44288f7db|5f5f5f5f5f5f5f5f5f5f5f 64 intel bextr r11, r11, r14 +c4e230f31b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSIL 0(BX), R9 +c4e230f31b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsil (%rbx),%r9d +c4e230f31b|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsi r9d, dword ptr [rbx] +c4c230f31b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSIL 0(R11), R9 +c4c230f31b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsil (%r11),%r9d +c4c230f31b|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsi r9d, dword ptr [r11] +c4e230f3da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSIL DX, R9 +c4e230f3da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsil %edx,%r9d +c4e230f3da|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsi r9d, edx +c4c230f3db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSIL R11, R9 +c4c230f3db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsil %r11d,%r9d +c4c230f3db|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsi r9d, r11d +c4e288f31b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSIQ 0(BX), R14 +c4e288f31b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsiq (%rbx),%r14 +c4e288f31b|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsi r14, qword ptr [rbx] +c4c288f31b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSIQ 0(R11), R14 +c4c288f31b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsiq (%r11),%r14 +c4c288f31b|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsi r14, qword ptr [r11] +c4e288f3da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSIQ DX, R14 +c4e288f3da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsiq %rdx,%r14 +c4e288f3da|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsi r14, rdx +c4c288f3db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSIQ R11, R14 +c4c288f3db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsiq %r11,%r14 +c4c288f3db|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsi r14, r11 +c4e230f313|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSMSKL 0(BX), R9 +c4e230f313|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsmskl (%rbx),%r9d +c4e230f313|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsmsk r9d, dword ptr [rbx] +c4c230f313|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSMSKL 0(R11), R9 +c4c230f313|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsmskl (%r11),%r9d +c4c230f313|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsmsk r9d, dword ptr [r11] +c4e230f3d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSMSKL DX, R9 +c4e230f3d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsmskl %edx,%r9d +c4e230f3d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsmsk r9d, edx +c4c230f3d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSMSKL R11, R9 +c4c230f3d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsmskl %r11d,%r9d +c4c230f3d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsmsk r9d, r11d +c4e288f313|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSMSKQ 0(BX), R14 +c4e288f313|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsmskq (%rbx),%r14 +c4e288f313|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsmsk r14, qword ptr [rbx] +c4c288f313|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSMSKQ 0(R11), R14 +c4c288f313|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsmskq (%r11),%r14 +c4c288f313|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsmsk r14, qword ptr [r11] +c4e288f3d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSMSKQ DX, R14 +c4e288f3d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsmskq %rdx,%r14 +c4e288f3d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsmsk r14, rdx +c4c288f3d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSMSKQ R11, R14 +c4c288f3d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsmskq %r11,%r14 +c4c288f3d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsmsk r14, r11 +c4e230f30b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSRL 0(BX), R9 +c4e230f30b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsrl (%rbx),%r9d +c4e230f30b|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsr r9d, dword ptr [rbx] +c4c230f30b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSRL 0(R11), R9 +c4c230f30b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsrl (%r11),%r9d +c4c230f30b|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsr r9d, dword ptr [r11] +c4e230f3ca|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSRL DX, R9 +c4e230f3ca|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsrl %edx,%r9d +c4e230f3ca|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsr r9d, edx +c4c230f3cb|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSRL R11, R9 +c4c230f3cb|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsrl %r11d,%r9d +c4c230f3cb|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsr r9d, r11d +c4e288f30b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSRQ 0(BX), R14 +c4e288f30b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsrq (%rbx),%r14 +c4e288f30b|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsr r14, qword ptr [rbx] +c4c288f30b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSRQ 0(R11), R14 +c4c288f30b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsrq (%r11),%r14 +c4c288f30b|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsr r14, qword ptr [r11] +c4e288f3ca|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSRQ DX, R14 +c4e288f3ca|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsrq %rdx,%r14 +c4e288f3ca|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsr r14, rdx +c4c288f3cb|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BLSRQ R11, R14 +c4c288f3cb|5f5f5f5f5f5f5f5f5f5f5f 64 gnu blsrq %r11,%r14 +c4c288f3cb|5f5f5f5f5f5f5f5f5f5f5f 64 intel blsr r14, r11 +c4e230f513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIL R9, 0(BX), DX +c4e230f513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhil %r9d,(%rbx),%edx +c4e230f513|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi edx, dword ptr [rbx], r9d +c4c230f513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIL R9, 0(R11), DX +c4c230f513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhil %r9d,(%r11),%edx +c4c230f513|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi edx, dword ptr [r11], r9d +c4e230f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIL R9, DX, DX +c4e230f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhil %r9d,%edx,%edx +c4e230f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi edx, edx, r9d +c4c230f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIL R9, R11, DX +c4c230f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhil %r9d,%r11d,%edx +c4c230f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi edx, r11d, r9d +c46230f51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIL R9, 0(BX), R11 +c46230f51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhil %r9d,(%rbx),%r11d +c46230f51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi r11d, dword ptr [rbx], r9d +c44230f51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIL R9, 0(R11), R11 +c44230f51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhil %r9d,(%r11),%r11d +c44230f51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi r11d, dword ptr [r11], r9d +c46230f5da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIL R9, DX, R11 +c46230f5da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhil %r9d,%edx,%r11d +c46230f5da|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi r11d, edx, r9d +c44230f5db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIL R9, R11, R11 +c44230f5db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhil %r9d,%r11d,%r11d +c44230f5db|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi r11d, r11d, r9d +c4e288f513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIQ R14, 0(BX), DX +c4e288f513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhiq %r14,(%rbx),%rdx +c4e288f513|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi rdx, qword ptr [rbx], r14 +c4c288f513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIQ R14, 0(R11), DX +c4c288f513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhiq %r14,(%r11),%rdx +c4c288f513|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi rdx, qword ptr [r11], r14 +c4e288f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIQ R14, DX, DX +c4e288f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhiq %r14,%rdx,%rdx +c4e288f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi rdx, rdx, r14 +c4c288f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIQ R14, R11, DX +c4c288f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhiq %r14,%r11,%rdx +c4c288f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi rdx, r11, r14 +c46288f51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIQ R14, 0(BX), R11 +c46288f51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhiq %r14,(%rbx),%r11 +c46288f51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi r11, qword ptr [rbx], r14 +c44288f51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIQ R14, 0(R11), R11 +c44288f51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhiq %r14,(%r11),%r11 +c44288f51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi r11, qword ptr [r11], r14 +c46288f5da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIQ R14, DX, R11 +c46288f5da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhiq %r14,%rdx,%r11 +c46288f5da|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi r11, rdx, r14 +c44288f5db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 BZHIQ R14, R11, R11 +c44288f5db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu bzhiq %r14,%r11,%r11 +c44288f5db|5f5f5f5f5f5f5f5f5f5f5f 64 intel bzhi r11, r11, r14 +c4e233f613|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXL 0(BX), R9, DX +c4e233f613|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxl (%rbx),%r9d,%edx +c4e233f613|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx edx, r9d, dword ptr [rbx] +c4c233f613|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXL 0(R11), R9, DX +c4c233f613|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxl (%r11),%r9d,%edx +c4c233f613|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx edx, r9d, dword ptr [r11] +c4e233f6d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXL DX, R9, DX +c4e233f6d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxl %edx,%r9d,%edx +c4e233f6d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx edx, r9d, edx +c4c233f6d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXL R11, R9, DX +c4c233f6d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxl %r11d,%r9d,%edx +c4c233f6d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx edx, r9d, r11d +c46233f61b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXL 0(BX), R9, R11 +c46233f61b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxl (%rbx),%r9d,%r11d +c46233f61b|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx r11d, r9d, dword ptr [rbx] +c44233f61b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXL 0(R11), R9, R11 +c44233f61b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxl (%r11),%r9d,%r11d +c44233f61b|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx r11d, r9d, dword ptr [r11] +c46233f6da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXL DX, R9, R11 +c46233f6da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxl %edx,%r9d,%r11d +c46233f6da|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx r11d, r9d, edx +c44233f6db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXL R11, R9, R11 +c44233f6db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxl %r11d,%r9d,%r11d +c44233f6db|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx r11d, r9d, r11d +c4e28bf613|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXQ 0(BX), R14, DX +c4e28bf613|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxq (%rbx),%r14,%rdx +c4e28bf613|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx rdx, r14, qword ptr [rbx] +c4c28bf613|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXQ 0(R11), R14, DX +c4c28bf613|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxq (%r11),%r14,%rdx +c4c28bf613|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx rdx, r14, qword ptr [r11] +c4e28bf6d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXQ DX, R14, DX +c4e28bf6d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxq %rdx,%r14,%rdx +c4e28bf6d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx rdx, r14, rdx +c4c28bf6d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXQ R11, R14, DX +c4c28bf6d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxq %r11,%r14,%rdx +c4c28bf6d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx rdx, r14, r11 +c4628bf61b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXQ 0(BX), R14, R11 +c4628bf61b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxq (%rbx),%r14,%r11 +c4628bf61b|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx r11, r14, qword ptr [rbx] +c4428bf61b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXQ 0(R11), R14, R11 +c4428bf61b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxq (%r11),%r14,%r11 +c4428bf61b|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx r11, r14, qword ptr [r11] +c4628bf6da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXQ DX, R14, R11 +c4628bf6da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxq %rdx,%r14,%r11 +c4628bf6da|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx r11, r14, rdx +c4428bf6db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 MULXQ R11, R14, R11 +c4428bf6db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu mulxq %r11,%r14,%r11 +c4428bf6db|5f5f5f5f5f5f5f5f5f5f5f 64 intel mulx r11, r14, r11 +c4e233f513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPL 0(BX), R9, DX +c4e233f513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepl (%rbx),%r9d,%edx +c4e233f513|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep edx, r9d, dword ptr [rbx] +c4c233f513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPL 0(R11), R9, DX +c4c233f513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepl (%r11),%r9d,%edx +c4c233f513|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep edx, r9d, dword ptr [r11] +c4e233f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPL DX, R9, DX +c4e233f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepl %edx,%r9d,%edx +c4e233f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep edx, r9d, edx +c4c233f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPL R11, R9, DX +c4c233f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepl %r11d,%r9d,%edx +c4c233f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep edx, r9d, r11d +c46233f51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPL 0(BX), R9, R11 +c46233f51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepl (%rbx),%r9d,%r11d +c46233f51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep r11d, r9d, dword ptr [rbx] +c44233f51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPL 0(R11), R9, R11 +c44233f51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepl (%r11),%r9d,%r11d +c44233f51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep r11d, r9d, dword ptr [r11] +c46233f5da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPL DX, R9, R11 +c46233f5da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepl %edx,%r9d,%r11d +c46233f5da|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep r11d, r9d, edx +c44233f5db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPL R11, R9, R11 +c44233f5db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepl %r11d,%r9d,%r11d +c44233f5db|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep r11d, r9d, r11d +c4e28bf513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPQ 0(BX), R14, DX +c4e28bf513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepq (%rbx),%r14,%rdx +c4e28bf513|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep rdx, r14, qword ptr [rbx] +c4c28bf513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPQ 0(R11), R14, DX +c4c28bf513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepq (%r11),%r14,%rdx +c4c28bf513|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep rdx, r14, qword ptr [r11] +c4e28bf5d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPQ DX, R14, DX +c4e28bf5d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepq %rdx,%r14,%rdx +c4e28bf5d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep rdx, r14, rdx +c4c28bf5d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPQ R11, R14, DX +c4c28bf5d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepq %r11,%r14,%rdx +c4c28bf5d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep rdx, r14, r11 +c4628bf51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPQ 0(BX), R14, R11 +c4628bf51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepq (%rbx),%r14,%r11 +c4628bf51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep r11, r14, qword ptr [rbx] +c4428bf51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPQ 0(R11), R14, R11 +c4428bf51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepq (%r11),%r14,%r11 +c4428bf51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep r11, r14, qword ptr [r11] +c4628bf5da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPQ DX, R14, R11 +c4628bf5da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepq %rdx,%r14,%r11 +c4628bf5da|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep r11, r14, rdx +c4428bf5db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PDEPQ R11, R14, R11 +c4428bf5db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pdepq %r11,%r14,%r11 +c4428bf5db|5f5f5f5f5f5f5f5f5f5f5f 64 intel pdep r11, r14, r11 +c4e232f513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTL 0(BX), R9, DX +c4e232f513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextl (%rbx),%r9d,%edx +c4e232f513|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext edx, r9d, dword ptr [rbx] +c4c232f513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTL 0(R11), R9, DX +c4c232f513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextl (%r11),%r9d,%edx +c4c232f513|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext edx, r9d, dword ptr [r11] +c4e232f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTL DX, R9, DX +c4e232f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextl %edx,%r9d,%edx +c4e232f5d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext edx, r9d, edx +c4c232f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTL R11, R9, DX +c4c232f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextl %r11d,%r9d,%edx +c4c232f5d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext edx, r9d, r11d +c46232f51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTL 0(BX), R9, R11 +c46232f51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextl (%rbx),%r9d,%r11d +c46232f51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext r11d, r9d, dword ptr [rbx] +c44232f51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTL 0(R11), R9, R11 +c44232f51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextl (%r11),%r9d,%r11d +c44232f51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext r11d, r9d, dword ptr [r11] +c46232f5da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTL DX, R9, R11 +c46232f5da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextl %edx,%r9d,%r11d +c46232f5da|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext r11d, r9d, edx +c44232f5db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTL R11, R9, R11 +c44232f5db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextl %r11d,%r9d,%r11d +c44232f5db|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext r11d, r9d, r11d +c4e28af513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTQ 0(BX), R14, DX +c4e28af513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextq (%rbx),%r14,%rdx +c4e28af513|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext rdx, r14, qword ptr [rbx] +c4c28af513|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTQ 0(R11), R14, DX +c4c28af513|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextq (%r11),%r14,%rdx +c4c28af513|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext rdx, r14, qword ptr [r11] +c4e28af5d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTQ DX, R14, DX +c4e28af5d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextq %rdx,%r14,%rdx +c4e28af5d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext rdx, r14, rdx +c4c28af5d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTQ R11, R14, DX +c4c28af5d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextq %r11,%r14,%rdx +c4c28af5d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext rdx, r14, r11 +c4628af51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTQ 0(BX), R14, R11 +c4628af51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextq (%rbx),%r14,%r11 +c4628af51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext r11, r14, qword ptr [rbx] +c4428af51b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTQ 0(R11), R14, R11 +c4428af51b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextq (%r11),%r14,%r11 +c4428af51b|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext r11, r14, qword ptr [r11] +c4628af5da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTQ DX, R14, R11 +c4628af5da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextq %rdx,%r14,%r11 +c4628af5da|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext r11, r14, rdx +c4428af5db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 PEXTQ R11, R14, R11 +c4428af5db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu pextq %r11,%r14,%r11 +c4428af5db|5f5f5f5f5f5f5f5f5f5f5f 64 intel pext r11, r14, r11 +c4e37bf01307|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXL $0x7, 0(BX), DX +c4e37bf01307|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxl $0x7,(%rbx),%edx +c4e37bf01307|5f5f5f5f5f5f5f5f5f5f 64 intel rorx edx, dword ptr [rbx], 0x7 +c4c37bf01307|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXL $0x7, 0(R11), DX +c4c37bf01307|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxl $0x7,(%r11),%edx +c4c37bf01307|5f5f5f5f5f5f5f5f5f5f 64 intel rorx edx, dword ptr [r11], 0x7 +c4e37bf0d207|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXL $0x7, DX, DX +c4e37bf0d207|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxl $0x7,%edx,%edx +c4e37bf0d207|5f5f5f5f5f5f5f5f5f5f 64 intel rorx edx, edx, 0x7 +c4c37bf0d307|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXL $0x7, R11, DX +c4c37bf0d307|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxl $0x7,%r11d,%edx +c4c37bf0d307|5f5f5f5f5f5f5f5f5f5f 64 intel rorx edx, r11d, 0x7 +c4637bf01b07|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXL $0x7, 0(BX), R11 +c4637bf01b07|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxl $0x7,(%rbx),%r11d +c4637bf01b07|5f5f5f5f5f5f5f5f5f5f 64 intel rorx r11d, dword ptr [rbx], 0x7 +c4437bf01b07|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXL $0x7, 0(R11), R11 +c4437bf01b07|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxl $0x7,(%r11),%r11d +c4437bf01b07|5f5f5f5f5f5f5f5f5f5f 64 intel rorx r11d, dword ptr [r11], 0x7 +c4637bf0da07|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXL $0x7, DX, R11 +c4637bf0da07|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxl $0x7,%edx,%r11d +c4637bf0da07|5f5f5f5f5f5f5f5f5f5f 64 intel rorx r11d, edx, 0x7 +c4437bf0db07|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXL $0x7, R11, R11 +c4437bf0db07|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxl $0x7,%r11d,%r11d +c4437bf0db07|5f5f5f5f5f5f5f5f5f5f 64 intel rorx r11d, r11d, 0x7 +c4e3fbf01307|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXQ $0x7, 0(BX), DX +c4e3fbf01307|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxq $0x7,(%rbx),%rdx +c4e3fbf01307|5f5f5f5f5f5f5f5f5f5f 64 intel rorx rdx, qword ptr [rbx], 0x7 +c4c3fbf01307|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXQ $0x7, 0(R11), DX +c4c3fbf01307|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxq $0x7,(%r11),%rdx +c4c3fbf01307|5f5f5f5f5f5f5f5f5f5f 64 intel rorx rdx, qword ptr [r11], 0x7 +c4e3fbf0d207|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXQ $0x7, DX, DX +c4e3fbf0d207|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxq $0x7,%rdx,%rdx +c4e3fbf0d207|5f5f5f5f5f5f5f5f5f5f 64 intel rorx rdx, rdx, 0x7 +c4c3fbf0d307|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXQ $0x7, R11, DX +c4c3fbf0d307|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxq $0x7,%r11,%rdx +c4c3fbf0d307|5f5f5f5f5f5f5f5f5f5f 64 intel rorx rdx, r11, 0x7 +c463fbf01b07|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXQ $0x7, 0(BX), R11 +c463fbf01b07|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxq $0x7,(%rbx),%r11 +c463fbf01b07|5f5f5f5f5f5f5f5f5f5f 64 intel rorx r11, qword ptr [rbx], 0x7 +c443fbf01b07|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXQ $0x7, 0(R11), R11 +c443fbf01b07|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxq $0x7,(%r11),%r11 +c443fbf01b07|5f5f5f5f5f5f5f5f5f5f 64 intel rorx r11, qword ptr [r11], 0x7 +c463fbf0da07|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXQ $0x7, DX, R11 +c463fbf0da07|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxq $0x7,%rdx,%r11 +c463fbf0da07|5f5f5f5f5f5f5f5f5f5f 64 intel rorx r11, rdx, 0x7 +c443fbf0db07|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXQ $0x7, R11, R11 +c443fbf0db07|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxq $0x7,%r11,%r11 +c443fbf0db07|5f5f5f5f5f5f5f5f5f5f 64 intel rorx r11, r11, 0x7 +c4e232f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXL R9, 0(BX), DX +c4e232f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxl %r9d,(%rbx),%edx +c4e232f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx edx, dword ptr [rbx], r9d +c4c232f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXL R9, 0(R11), DX +c4c232f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxl %r9d,(%r11),%edx +c4c232f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx edx, dword ptr [r11], r9d +c4e232f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXL R9, DX, DX +c4e232f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxl %r9d,%edx,%edx +c4e232f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx edx, edx, r9d +c4c232f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXL R9, R11, DX +c4c232f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxl %r9d,%r11d,%edx +c4c232f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx edx, r11d, r9d +c46232f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXL R9, 0(BX), R11 +c46232f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxl %r9d,(%rbx),%r11d +c46232f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx r11d, dword ptr [rbx], r9d +c44232f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXL R9, 0(R11), R11 +c44232f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxl %r9d,(%r11),%r11d +c44232f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx r11d, dword ptr [r11], r9d +c46232f7da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXL R9, DX, R11 +c46232f7da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxl %r9d,%edx,%r11d +c46232f7da|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx r11d, edx, r9d +c44232f7db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXL R9, R11, R11 +c44232f7db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxl %r9d,%r11d,%r11d +c44232f7db|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx r11d, r11d, r9d +c4e28af713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXQ R14, 0(BX), DX +c4e28af713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxq %r14,(%rbx),%rdx +c4e28af713|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx rdx, qword ptr [rbx], r14 +c4c28af713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXQ R14, 0(R11), DX +c4c28af713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxq %r14,(%r11),%rdx +c4c28af713|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx rdx, qword ptr [r11], r14 +c4e28af7d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXQ R14, DX, DX +c4e28af7d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxq %r14,%rdx,%rdx +c4e28af7d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx rdx, rdx, r14 +c4c28af7d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXQ R14, R11, DX +c4c28af7d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxq %r14,%r11,%rdx +c4c28af7d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx rdx, r11, r14 +c4628af71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXQ R14, 0(BX), R11 +c4628af71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxq %r14,(%rbx),%r11 +c4628af71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx r11, qword ptr [rbx], r14 +c4428af71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXQ R14, 0(R11), R11 +c4428af71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxq %r14,(%r11),%r11 +c4428af71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx r11, qword ptr [r11], r14 +c4628af7da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXQ R14, DX, R11 +c4628af7da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxq %r14,%rdx,%r11 +c4628af7da|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx r11, rdx, r14 +c4428af7db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SARXQ R14, R11, R11 +c4428af7db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu sarxq %r14,%r11,%r11 +c4428af7db|5f5f5f5f5f5f5f5f5f5f5f 64 intel sarx r11, r11, r14 +c4e231f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXL R9, 0(BX), DX +c4e231f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxl %r9d,(%rbx),%edx +c4e231f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx edx, dword ptr [rbx], r9d +c4c231f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXL R9, 0(R11), DX +c4c231f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxl %r9d,(%r11),%edx +c4c231f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx edx, dword ptr [r11], r9d +c4e231f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXL R9, DX, DX +c4e231f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxl %r9d,%edx,%edx +c4e231f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx edx, edx, r9d +c4c231f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXL R9, R11, DX +c4c231f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxl %r9d,%r11d,%edx +c4c231f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx edx, r11d, r9d +c46231f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXL R9, 0(BX), R11 +c46231f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxl %r9d,(%rbx),%r11d +c46231f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx r11d, dword ptr [rbx], r9d +c44231f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXL R9, 0(R11), R11 +c44231f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxl %r9d,(%r11),%r11d +c44231f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx r11d, dword ptr [r11], r9d +c46231f7da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXL R9, DX, R11 +c46231f7da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxl %r9d,%edx,%r11d +c46231f7da|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx r11d, edx, r9d +c44231f7db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXL R9, R11, R11 +c44231f7db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxl %r9d,%r11d,%r11d +c44231f7db|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx r11d, r11d, r9d +c4e289f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXQ R14, 0(BX), DX +c4e289f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxq %r14,(%rbx),%rdx +c4e289f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx rdx, qword ptr [rbx], r14 +c4c289f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXQ R14, 0(R11), DX +c4c289f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxq %r14,(%r11),%rdx +c4c289f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx rdx, qword ptr [r11], r14 +c4e289f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXQ R14, DX, DX +c4e289f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxq %r14,%rdx,%rdx +c4e289f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx rdx, rdx, r14 +c4c289f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXQ R14, R11, DX +c4c289f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxq %r14,%r11,%rdx +c4c289f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx rdx, r11, r14 +c46289f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXQ R14, 0(BX), R11 +c46289f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxq %r14,(%rbx),%r11 +c46289f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx r11, qword ptr [rbx], r14 +c44289f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXQ R14, 0(R11), R11 +c44289f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxq %r14,(%r11),%r11 +c44289f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx r11, qword ptr [r11], r14 +c46289f7da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXQ R14, DX, R11 +c46289f7da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxq %r14,%rdx,%r11 +c46289f7da|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx r11, rdx, r14 +c44289f7db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHLXQ R14, R11, R11 +c44289f7db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shlxq %r14,%r11,%r11 +c44289f7db|5f5f5f5f5f5f5f5f5f5f5f 64 intel shlx r11, r11, r14 +c4e233f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXL R9, 0(BX), DX +c4e233f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxl %r9d,(%rbx),%edx +c4e233f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx edx, dword ptr [rbx], r9d +c4c233f713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXL R9, 0(R11), DX +c4c233f713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxl %r9d,(%r11),%edx +c4c233f713|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx edx, dword ptr [r11], r9d +c4e233f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXL R9, DX, DX +c4e233f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxl %r9d,%edx,%edx +c4e233f7d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx edx, edx, r9d +c4c233f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXL R9, R11, DX +c4c233f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxl %r9d,%r11d,%edx +c4c233f7d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx edx, r11d, r9d +c46233f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXL R9, 0(BX), R11 +c46233f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxl %r9d,(%rbx),%r11d +c46233f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx r11d, dword ptr [rbx], r9d +c44233f71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXL R9, 0(R11), R11 +c44233f71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxl %r9d,(%r11),%r11d +c44233f71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx r11d, dword ptr [r11], r9d +c46233f7da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXL R9, DX, R11 +c46233f7da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxl %r9d,%edx,%r11d +c46233f7da|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx r11d, edx, r9d +c44233f7db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXL R9, R11, R11 +c44233f7db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxl %r9d,%r11d,%r11d +c44233f7db|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx r11d, r11d, r9d +c4e28bf713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXQ R14, 0(BX), DX +c4e28bf713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxq %r14,(%rbx),%rdx +c4e28bf713|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx rdx, qword ptr [rbx], r14 +c4c28bf713|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXQ R14, 0(R11), DX +c4c28bf713|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxq %r14,(%r11),%rdx +c4c28bf713|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx rdx, qword ptr [r11], r14 +c4e28bf7d2|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXQ R14, DX, DX +c4e28bf7d2|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxq %r14,%rdx,%rdx +c4e28bf7d2|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx rdx, rdx, r14 +c4c28bf7d3|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXQ R14, R11, DX +c4c28bf7d3|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxq %r14,%r11,%rdx +c4c28bf7d3|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx rdx, r11, r14 +c4628bf71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXQ R14, 0(BX), R11 +c4628bf71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxq %r14,(%rbx),%r11 +c4628bf71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx r11, qword ptr [rbx], r14 +c4428bf71b|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXQ R14, 0(R11), R11 +c4428bf71b|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxq %r14,(%r11),%r11 +c4428bf71b|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx r11, qword ptr [r11], r14 +c4628bf7da|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXQ R14, DX, R11 +c4628bf7da|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxq %r14,%rdx,%r11 +c4628bf7da|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx r11, rdx, r14 +c4428bf7db|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 SHRXQ R14, R11, R11 +c4428bf7db|5f5f5f5f5f5f5f5f5f5f5f 64 gnu shrxq %r14,%r11,%r11 +c4428bf7db|5f5f5f5f5f5f5f5f5f5f5f 64 intel shrx r11, r11, r14 c4c1315813|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VADDPD 0(R11), X9, X2 c4c1315813|5f5f5f5f5f5f5f5f5f5f5f 64 gnu vaddpd (%r11),%xmm9,%xmm2 c4c1315813|5f5f5f5f5f5f5f5f5f5f5f 64 intel vaddpd xmm2, xmm9, xmmword ptr [r11] @@ -8200,30 +8752,6 @@ c4430540db07|5f5f5f5f5f5f5f5f5f5f 64 plan9 VDPPS $0x7, Y11, Y15, Y11 c4430540db07|5f5f5f5f5f5f5f5f5f5f 64 gnu vdpps $0x7,%ymm11,%ymm15,%ymm11 c4430540db07|5f5f5f5f5f5f5f5f5f5f 64 intel vdpps ymm11, ymm15, ymm11, 0x7 -0f0023|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VERR 0(BX) -0f0023|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 gnu verr (%rbx) -0f0023|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 intel verr word ptr [rbx] -410f0023|5f5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VERR 0(R11) -410f0023|5f5f5f5f5f5f5f5f5f5f5f5f 64 gnu verr (%r11) -410f0023|5f5f5f5f5f5f5f5f5f5f5f5f 64 intel verr word ptr [r11] -0f00e2|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VERR DX -0f00e2|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 gnu verr %dx -0f00e2|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 intel verr dx -410f00e3|5f5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VERR R11 -410f00e3|5f5f5f5f5f5f5f5f5f5f5f5f 64 gnu verr %r11w -410f00e3|5f5f5f5f5f5f5f5f5f5f5f5f 64 intel verr r11w -0f002b|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VERW 0(BX) -0f002b|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 gnu verw (%rbx) -0f002b|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 intel verw word ptr [rbx] -410f002b|5f5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VERW 0(R11) -410f002b|5f5f5f5f5f5f5f5f5f5f5f5f 64 gnu verw (%r11) -410f002b|5f5f5f5f5f5f5f5f5f5f5f5f 64 intel verw word ptr [r11] -0f00ea|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VERW DX -0f00ea|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 gnu verw %dx -0f00ea|5f5f5f5f5f5f5f5f5f5f5f5f5f 64 intel verw dx -410f00eb|5f5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VERW R11 -410f00eb|5f5f5f5f5f5f5f5f5f5f5f5f 64 gnu verw %r11w -410f00eb|5f5f5f5f5f5f5f5f5f5f5f5f 64 intel verw r11w c4e37d191307|5f5f5f5f5f5f5f5f5f5f 64 plan9 VEXTRACTF128 $0x7, Y2, 0(BX) c4e37d191307|5f5f5f5f5f5f5f5f5f5f 64 gnu vextractf128 $0x7,%ymm2,(%rbx) c4e37d191307|5f5f5f5f5f5f5f5f5f5f 64 intel vextractf128 xmmword ptr [rbx], ymm2, 0x7 @@ -17659,6 +18187,12 @@ c5f970ffb1|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VPSHUFD $0xb1, X7, X7 c5f970ffb1|5f5f5f5f5f5f5f5f5f5f5f 64 gnu vpshufd $0xb1,%xmm7,%xmm7 c5f970ffb1|5f5f5f5f5f5f5f5f5f5f5f 64 intel vpshufd xmm7, xmm7, 0xb1 +c4e37bf010ff|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXL $0xff, 0(AX), DX +c4e37bf010ff|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxl $0xff,(%rax),%edx +c4e37bf010ff|5f5f5f5f5f5f5f5f5f5f 64 intel rorx edx, dword ptr [rax], 0xff +c4e3fbf010ff|5f5f5f5f5f5f5f5f5f5f 64 plan9 RORXQ $0xff, 0(AX), DX +c4e3fbf010ff|5f5f5f5f5f5f5f5f5f5f 64 gnu rorxq $0xff,(%rax),%rdx +c4e3fbf010ff|5f5f5f5f5f5f5f5f5f5f 64 intel rorx rdx, qword ptr [rax], 0xff c5f970d1ff|5f5f5f5f5f5f5f5f5f5f5f 64 plan9 VPSHUFD $0xff, X1, X2 c5f970d1ff|5f5f5f5f5f5f5f5f5f5f5f 64 gnu vpshufd $0xff,%xmm1,%xmm2 c5f970d1ff|5f5f5f5f5f5f5f5f5f5f5f 64 intel vpshufd xmm2, xmm1, 0xff
diff --git a/x86/x86asm/testdata/genavxtests.go b/x86/x86asm/testdata/genavxtests.go index 68a226c..f843624 100644 --- a/x86/x86asm/testdata/genavxtests.go +++ b/x86/x86asm/testdata/genavxtests.go
@@ -56,12 +56,15 @@ if plan9 == "" || strings.HasPrefix(plan9, "//") { continue } - if !strings.HasPrefix(plan9, "V") && !strings.HasPrefix(plan9, "K") && !strings.HasPrefix(plan9, "SHA") { - // Test only AVX and SHA instructions for now. (There exist tests for - // non-AVX ones). + h := strings.ToLower(m[2]) + vex := strings.HasPrefix(h, "c5") || /* 2-byte VEX */ + strings.HasPrefix(h, "c4") || /* 3-byte VEX */ + strings.HasPrefix(h, "62") /* EVEX */ + if !vex && !strings.HasPrefix(plan9, "SHA") { + // Test only AVX, BMI1/BMI2 and SHA instructions for now. + // (There exist tests for non-AVX ones). continue } - h := strings.ToLower(m[2]) if !seen[h] { seen[h] = true testCases = append(testCases, testCase{hex: h, plan9: plan9})