diff --git a/bfd/version.h b/bfd/version.h index d669cfd..8b00b82 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20110102 +#define BFD_VERSION_DATE 20110103 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/gas/ChangeLog b/gas/ChangeLog index 63868a0..02f4856 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,17 @@ +2011-01-04 Quentin Neill + + * doc/c-i386.texi (i386-TBM): New section. + + * config/tc-i386.c (cpu_arch): Add CPU_TBM_FLAGS. + +2011-01-04 Quentin Neill + + * config/tc-i386.c (cpu_arch): Add CPU_BMI_FLAGS. + (build_modrm_byte): Add BMI instruction encoding. + VEXLWP renamed VEXVRM. + + * doc/c-i386.texi (i386-BMI): New section. + 2011-01-01 H.J. Lu * gas.c (parse_args): Update copyright to 2011. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 7ca97a6..9cd2976 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -725,6 +725,10 @@ static const arch_entry cpu_arch[] = CPU_SSE4A_FLAGS, 0, 0 }, { STRING_COMMA_LEN (".abm"), PROCESSOR_UNKNOWN, CPU_ABM_FLAGS, 0, 0 }, + { STRING_COMMA_LEN (".bmi"), PROCESSOR_UNKNOWN, + CPU_BMI_FLAGS, 0, 0 }, + { STRING_COMMA_LEN (".tbm"), PROCESSOR_UNKNOWN, + CPU_TBM_FLAGS, 0, 0 }, }; #ifdef I386COFF @@ -5563,7 +5567,8 @@ build_modrm_byte (void) else mem = ~0; - if (i.tm.opcode_modifier.vexsources == XOP2SOURCES) + if (i.tm.opcode_modifier.vexsources == XOP2SOURCES + || i.tm.opcode_modifier.vexsources == XOP2REVSOURCES) { if (operand_type_check (i.types[0], imm)) i.vex.register_specifier = NULL; @@ -5571,7 +5576,8 @@ build_modrm_byte (void) { /* VEX.vvvv encodes one of the sources when the first operand is not an immediate. */ - if (i.tm.opcode_modifier.vexw == VEXW0) + if (i.tm.opcode_modifier.vexsources == XOP2SOURCES + && i.tm.opcode_modifier.vexw == VEXW0) i.vex.register_specifier = i.op[0].regs; else i.vex.register_specifier = i.op[1].regs; @@ -5588,7 +5594,8 @@ build_modrm_byte (void) { i.rm.mode = 3; - if (i.tm.opcode_modifier.vexw == VEXW0) + if (i.tm.opcode_modifier.vexsources == XOP2SOURCES + && i.tm.opcode_modifier.vexw == VEXW0) i.rm.regmem = i.op[1].regs->reg_num; else i.rm.regmem = i.op[0].regs->reg_num; @@ -5597,17 +5604,32 @@ build_modrm_byte (void) i.rex |= REX_B; } } - else if (i.tm.opcode_modifier.vexvvvv == VEXLWP) + else if (i.tm.opcode_modifier.vexvvvv == VEXVRM) { - i.vex.register_specifier = i.op[2].regs; + unsigned int regspec_op = MAX_OPERANDS; + unsigned int regmem_op = MAX_OPERANDS; + if (i.operands == 2 + && i.tm.extension_opcode != None) + { + regspec_op = 1; + regmem_op = 0; + } + else + { + regspec_op = 2; + regmem_op = 1; + } + + i.vex.register_specifier = i.op[regspec_op].regs; if (!i.mem_operands) { i.rm.mode = 3; - i.rm.regmem = i.op[1].regs->reg_num; - if ((i.op[1].regs->reg_flags & RegRex) != 0) + i.rm.regmem = i.op[regmem_op].regs->reg_num; + if ((i.op[regmem_op].regs->reg_flags & RegRex) != 0) i.rex |= REX_B; } } + /* Fill in i.rm.reg or i.rm.regmem field with register operand (if any) based on i.tm.extension_opcode. Again, we must be careful to make sure that segment/control/debug/test/MMX diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi index c3956a8..719107e 100644 --- a/gas/doc/c-i386.texi +++ b/gas/doc/c-i386.texi @@ -35,6 +35,8 @@ extending the Intel architecture to 64-bits. * i386-Float:: Floating Point * i386-SIMD:: Intel's MMX and AMD's 3DNow! SIMD Operations * i386-LWP:: AMD's Lightweight Profiling Instructions +* i386-TBM:: AMD's Trailing Bit Manipulation Instructions +* i386-BMI:: Bit Manipulation Instructions * i386-16bit:: Writing 16-bit Code * i386-Arch:: Specifying an x86 CPU architecture * i386-Bugs:: AT&T Syntax bugs @@ -845,6 +847,36 @@ For detailed information on the LWP instruction set, see the @cite{AMD Lightweight Profiling Specification} available at @uref{http://developer.amd.com/cpu/LWP,Lightweight Profiling Specification}. +@node i386-TBM +@section AMD's Trailing Bit Manipulation Instructions + +@cindex TBM, i386 +@cindex TBM, x86-64 + +@code{@value{AS}} supports AMD's Trailing Bit Manipulation (TBM) +instruction set, available on AMD's BDVER2 processors (Trinity and +Viperfish). + +TBM instructions provide instructions implementing individual bit +manipulation operations such as isolating, masking, setting, resetting, +complementing, and operations on trailing zeros and ones. + +@c Need to add a specification citation here. + +@node i386-BMI +@section Bit Manipulation Instructions + +@cindex BMI, i386 +@cindex BMI, x86-64 + +@code{@value{AS}} supports the Bit Manipulation (BMI) instruction set. + +BMI instructions provide several instructions implementing individual +bit manipulation operations such as isolation, masking, setting, or +resetting. + +@c Need to add a specification citation here. + @node i386-16bit @section Writing 16-bit Code diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 0aeed72..b2c0273 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,35 @@ +2011-01-04 Quentin Neill + + * gas/i386/i386.exp: Run tbm and x86-64-tbm. + * gas/i386/tbm.d: New. + * gas/i386/tbm.s: New. + * gas/i386/x86-64-tbm.d: New. + * gas/i386/x86-64-tbm.s: New. + * gas/i386/arch-10.d: Add tbm flag and TBM instruction pattern. + * gas/i386/arch-10.s: Add a TBM instruction. + * gas/i386/arch-10-1.l: Add TBM instruction pattern. + * gas/i386/arch-10-2.l: Likewise. + * gas/i386/arch-10-3.l: Likewise. + * gas/i386/arch-10-4.l: Likewise. + * gas/i386/x86-64-arch-2.s: Likewise. + * gas/i386/x86-64-arch-2.d: Likewise. + +2011-01-04 Quentin Neill + + * gas/i386/i386.exp: Run bmi and x86-64-bmi. + * gas/i386/bmi.d: New. + * gas/i386/bmi.s: New. + * gas/i386/x86-64-bmi.d: New. + * gas/i386/x86-64-bmi.s: New. + * gas/i386/arch-10.s: Add a BMI instruction. + * gas/i386/x86-64-arch-2.s: Likewise. + * gas/i386/arch-10.d: Add bmi flag and BMI instruction pattern. + * gas/i386/x86-64-arch-2.d: Likewise. + * gas/i386/arch-10-1.l: Add BMI instruction pattern. + * gas/i386/arch-10-2.l: Likewise. + * gas/i386/arch-10-3.l: Likewise. + * gas/i386/arch-10-4.l: Likewise. + 2011-01-01 H.J. Lu * gas/i386/ilp32/lns/lns-common-1.d: Also expect .zdebug in diff --git a/gas/testsuite/gas/i386/arch-10-1.l b/gas/testsuite/gas/i386/arch-10-1.l index 0b78958..706a7a8 100644 --- a/gas/testsuite/gas/i386/arch-10-1.l +++ b/gas/testsuite/gas/i386/arch-10-1.l @@ -29,6 +29,8 @@ .*:58: Error: .* .*:60: Error: .* .*:62: Error: .* +.*:64: Error: .* +.*:66: Error: .* GAS LISTING .* @@ -96,5 +98,9 @@ GAS LISTING .* [ ]*58[ ]+lzcnt %ecx,%ebx [ ]*59[ ]+\# PadLock [ ]*60[ ]+xstorerng -[ ]*61[ ]+\# nop -[ ]*62[ ]+nopl \(%eax\) +[ ]*61[ ]+\# TBM +[ ]*62[ ]+blcfill %ecx,%ebx +[ ]*63[ ]+\# BMI +[ ]*64[ ]+blsr %ecx,%ebx +[ ]*65[ ]+\# nop +[ ]*66[ ]+nopl \(%eax\) diff --git a/gas/testsuite/gas/i386/arch-10-2.l b/gas/testsuite/gas/i386/arch-10-2.l index d9e1b51..a6b6542 100644 --- a/gas/testsuite/gas/i386/arch-10-2.l +++ b/gas/testsuite/gas/i386/arch-10-2.l @@ -28,6 +28,8 @@ .*:58: Error: .* .*:60: Error: .* .*:62: Error: .* +.*:64: Error: .* +.*:66: Error: .* GAS LISTING .* @@ -95,5 +97,9 @@ GAS LISTING .* [ ]*58[ ]+lzcnt %ecx,%ebx [ ]*59[ ]+\# PadLock [ ]*60[ ]+xstorerng -[ ]*61[ ]+\# nop -[ ]*62[ ]+nopl \(%eax\) +[ ]*61[ ]+\# TBM +[ ]*62[ ]+blcfill %ecx,%ebx +[ ]*63[ ]+\# BMI +[ ]*64[ ]+blsr %ecx,%ebx +[ ]*65[ ]+\# nop +[ ]*66[ ]+nopl \(%eax\) diff --git a/gas/testsuite/gas/i386/arch-10-3.l b/gas/testsuite/gas/i386/arch-10-3.l index 75c07ec..afc94e2 100644 --- a/gas/testsuite/gas/i386/arch-10-3.l +++ b/gas/testsuite/gas/i386/arch-10-3.l @@ -21,6 +21,8 @@ .*:58: Error: .* .*:60: Error: .* .*:62: Error: .* +.*:64: Error: .* +.*:66: Error: .* GAS LISTING .* @@ -91,5 +93,9 @@ GAS LISTING .* [ ]*58[ ]+lzcnt %ecx,%ebx [ ]*59[ ]+\# PadLock [ ]*60[ ]+xstorerng -[ ]*61[ ]+\# nop -[ ]*62[ ]+nopl \(%eax\) +[ ]*61[ ]+\# TBM +[ ]*62[ ]+blcfill %ecx,%ebx +[ ]*63[ ]+\# BMI +[ ]*64[ ]+blsr %ecx,%ebx +[ ]*65[ ]+\# nop +[ ]*66[ ]+nopl \(%eax\) diff --git a/gas/testsuite/gas/i386/arch-10-4.l b/gas/testsuite/gas/i386/arch-10-4.l index 3c40045..ae7702c 100644 --- a/gas/testsuite/gas/i386/arch-10-4.l +++ b/gas/testsuite/gas/i386/arch-10-4.l @@ -19,6 +19,8 @@ .*:58: Error: .* .*:60: Error: .* .*:62: Error: .* +.*:64: Error: .* +.*:66: Error: .* GAS LISTING .* @@ -89,5 +91,9 @@ GAS LISTING .* [ ]*58[ ]+lzcnt %ecx,%ebx [ ]*59[ ]+\# PadLock [ ]*60[ ]+xstorerng -[ ]*61[ ]+\# nop -[ ]*62[ ]+nopl \(%eax\) +[ ]*61[ ]+\# TBM +[ ]*62[ ]+blcfill %ecx,%ebx +[ ]*63[ ]+\# BMI +[ ]*64[ ]+blsr %ecx,%ebx +[ ]*65[ ]+\# nop +[ ]*66[ ]+nopl \(%eax\) diff --git a/gas/testsuite/gas/i386/arch-10.d b/gas/testsuite/gas/i386/arch-10.d index 3efd52d..ae5d098 100644 --- a/gas/testsuite/gas/i386/arch-10.d +++ b/gas/testsuite/gas/i386/arch-10.d @@ -1,4 +1,4 @@ -#as: -march=i686+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+nop+syscall+rdtscp+3dnowa+sse4a+svme+abm+padlock +#as: -march=i686+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+nop+syscall+rdtscp+3dnowa+sse4a+svme+abm+padlock+tbm+bmi #objdump: -dw #name: i386 arch 10 @@ -36,5 +36,7 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f 01 da vmload [ ]*[a-f0-9]+: f3 0f bd d9 lzcnt %ecx,%ebx [ ]*[a-f0-9]+: 0f a7 c0 xstore-rng +[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx +[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\) #pass diff --git a/gas/testsuite/gas/i386/arch-10.s b/gas/testsuite/gas/i386/arch-10.s index d0fb12b..9a70258 100644 --- a/gas/testsuite/gas/i386/arch-10.s +++ b/gas/testsuite/gas/i386/arch-10.s @@ -58,5 +58,9 @@ vmload lzcnt %ecx,%ebx # PadLock xstorerng +# TBM +blcfill %ecx,%ebx +# BMI +blsr %ecx,%ebx # nop nopl (%eax) diff --git a/gas/testsuite/gas/i386/bmi.d b/gas/testsuite/gas/i386/bmi.d new file mode 100644 index 0000000..1f89b7c --- /dev/null +++ b/gas/testsuite/gas/i386/bmi.d @@ -0,0 +1,153 @@ +#objdump: -dw +#name: i386 BMI + +.*: +file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: c4 e2 78 f2 ff andn %edi,%eax,%edi +[ ]*[a-f0-9]+: c4 e2 70 f2 0c fa andn \(%edx,%edi,8\),%ecx,%ecx +[ ]*[a-f0-9]+: c4 e2 58 f2 c3 andn %ebx,%esp,%eax +[ ]*[a-f0-9]+: c4 e2 50 f2 14 9b andn \(%ebx,%ebx,4\),%ebp,%edx +[ ]*[a-f0-9]+: c4 e2 40 f2 b1 dc 36 00 00 andn 0x36dc\(%ecx\),%edi,%esi +[ ]*[a-f0-9]+: c4 e2 48 f2 1b andn \(%ebx\),%esi,%ebx +[ ]*[a-f0-9]+: c4 e2 60 f2 f8 andn %eax,%ebx,%edi +[ ]*[a-f0-9]+: c4 e2 78 f2 c1 andn %ecx,%eax,%eax +[ ]*[a-f0-9]+: c4 e2 68 f2 a4 5e 86 a9 9d ae andn -0x5162567a\(%esi,%ebx,2\),%edx,%esp +[ ]*[a-f0-9]+: c4 e2 68 f2 2e andn \(%esi\),%edx,%ebp +[ ]*[a-f0-9]+: c4 e2 58 f2 c2 andn %edx,%esp,%eax +[ ]*[a-f0-9]+: c4 e2 50 f2 d6 andn %esi,%ebp,%edx +[ ]*[a-f0-9]+: c4 e2 40 f2 be 53 21 ff ff andn -0xdead\(%esi\),%edi,%edi +[ ]*[a-f0-9]+: c4 e2 58 f2 74 19 0a andn 0xa\(%ecx,%ebx,1\),%esp,%esi +[ ]*[a-f0-9]+: c4 e2 40 f2 00 andn \(%eax\),%edi,%eax +[ ]*[a-f0-9]+: c4 e2 40 f2 7c 13 ce andn -0x32\(%ebx,%edx,1\),%edi,%edi +[ ]*[a-f0-9]+: c4 e2 78 f7 3b bextr %eax,\(%ebx\),%edi +[ ]*[a-f0-9]+: c4 e2 40 f7 31 bextr %edi,\(%ecx\),%esi +[ ]*[a-f0-9]+: c4 e2 58 f7 cf bextr %esp,%edi,%ecx +[ ]*[a-f0-9]+: c4 e2 50 f7 c1 bextr %ebp,%ecx,%eax +[ ]*[a-f0-9]+: c4 e2 60 f7 f8 bextr %ebx,%eax,%edi +[ ]*[a-f0-9]+: c4 e2 48 f7 d3 bextr %esi,%ebx,%edx +[ ]*[a-f0-9]+: c4 e2 68 f7 04 07 bextr %edx,\(%edi,%eax,1\),%eax +[ ]*[a-f0-9]+: c4 e2 40 f7 2f bextr %edi,\(%edi\),%ebp +[ ]*[a-f0-9]+: c4 e2 70 f7 e6 bextr %ecx,%esi,%esp +[ ]*[a-f0-9]+: c4 e2 40 f7 18 bextr %edi,\(%eax\),%ebx +[ ]*[a-f0-9]+: c4 e2 78 f7 04 05 00 00 00 00 bextr %eax,0x0\(,%eax,1\),%eax +[ ]*[a-f0-9]+: c4 e2 50 f7 22 bextr %ebp,\(%edx\),%esp +[ ]*[a-f0-9]+: c4 e2 48 f7 2c 85 0f a9 00 00 bextr %esi,0xa90f\(,%eax,4\),%ebp +[ ]*[a-f0-9]+: c4 e2 60 f7 7c 03 03 bextr %ebx,0x3\(%ebx,%eax,1\),%edi +[ ]*[a-f0-9]+: c4 e2 40 f7 b9 ff ff ff 3f bextr %edi,0x3fffffff\(%ecx\),%edi +[ ]*[a-f0-9]+: c4 e2 78 f7 04 12 bextr %eax,\(%edx,%edx,1\),%eax +[ ]*[a-f0-9]+: c4 e2 78 f3 df blsi %edi,%eax +[ ]*[a-f0-9]+: c4 e2 40 f3 d8 blsi %eax,%edi +[ ]*[a-f0-9]+: c4 e2 40 f3 1b blsi \(%ebx\),%edi +[ ]*[a-f0-9]+: c4 e2 58 f3 de blsi %esi,%esp +[ ]*[a-f0-9]+: c4 e2 68 f3 da blsi %edx,%edx +[ ]*[a-f0-9]+: c4 e2 48 f3 1f blsi \(%edi\),%esi +[ ]*[a-f0-9]+: c4 e2 60 f3 59 08 blsi 0x8\(%ecx\),%ebx +[ ]*[a-f0-9]+: c4 e2 78 f3 1a blsi \(%edx\),%eax +[ ]*[a-f0-9]+: c4 e2 78 f3 19 blsi \(%ecx\),%eax +[ ]*[a-f0-9]+: c4 e2 58 f3 dd blsi %ebp,%esp +[ ]*[a-f0-9]+: c4 e2 50 f3 1c 19 blsi \(%ecx,%ebx,1\),%ebp +[ ]*[a-f0-9]+: c4 e2 70 f3 1c 4d 03 00 00 00 blsi 0x3\(,%ecx,2\),%ecx +[ ]*[a-f0-9]+: c4 e2 78 f3 1c 02 blsi \(%edx,%eax,1\),%eax +[ ]*[a-f0-9]+: c4 e2 40 f3 1c 71 blsi \(%ecx,%esi,2\),%edi +[ ]*[a-f0-9]+: c4 e2 40 f3 d8 blsi %eax,%edi +[ ]*[a-f0-9]+: c4 e2 78 f3 18 blsi \(%eax\),%eax +[ ]*[a-f0-9]+: c4 e2 50 f3 d2 blsmsk %edx,%ebp +[ ]*[a-f0-9]+: c4 e2 40 f3 d7 blsmsk %edi,%edi +[ ]*[a-f0-9]+: c4 e2 78 f3 d0 blsmsk %eax,%eax +[ ]*[a-f0-9]+: c4 e2 68 f3 d5 blsmsk %ebp,%edx +[ ]*[a-f0-9]+: c4 e2 48 f3 d3 blsmsk %ebx,%esi +[ ]*[a-f0-9]+: c4 e2 70 f3 17 blsmsk \(%edi\),%ecx +[ ]*[a-f0-9]+: c4 e2 60 f3 11 blsmsk \(%ecx\),%ebx +[ ]*[a-f0-9]+: c4 e2 58 f3 14 85 00 00 00 00 blsmsk 0x0\(,%eax,4\),%esp +[ ]*[a-f0-9]+: c4 e2 78 f3 d4 blsmsk %esp,%eax +[ ]*[a-f0-9]+: c4 e2 78 f3 13 blsmsk \(%ebx\),%eax +[ ]*[a-f0-9]+: c4 e2 78 f3 14 d3 blsmsk \(%ebx,%edx,8\),%eax +[ ]*[a-f0-9]+: c4 e2 58 f3 d6 blsmsk %esi,%esp +[ ]*[a-f0-9]+: c4 e2 40 f3 94 7f af e6 3d a1 blsmsk -0x5ec21951\(%edi,%edi,2\),%edi +[ ]*[a-f0-9]+: c4 e2 78 f3 14 48 blsmsk \(%eax,%ecx,2\),%eax +[ ]*[a-f0-9]+: c4 e2 78 f3 14 1b blsmsk \(%ebx,%ebx,1\),%eax +[ ]*[a-f0-9]+: c4 e2 40 f3 14 83 blsmsk \(%ebx,%eax,4\),%edi +[ ]*[a-f0-9]+: c4 e2 58 f3 8c 92 fe ca 00 00 blsr 0xcafe\(%edx,%edx,4\),%esp +[ ]*[a-f0-9]+: c4 e2 78 f3 cf blsr %edi,%eax +[ ]*[a-f0-9]+: c4 e2 48 f3 0c cd 00 00 00 00 blsr 0x0\(,%ecx,8\),%esi +[ ]*[a-f0-9]+: c4 e2 68 f3 c8 blsr %eax,%edx +[ ]*[a-f0-9]+: c4 e2 70 f3 0e blsr \(%esi\),%ecx +[ ]*[a-f0-9]+: c4 e2 40 f3 0c 9d 51 35 b0 66 blsr 0x66b03551\(,%ebx,4\),%edi +[ ]*[a-f0-9]+: c4 e2 50 f3 0c 85 0a ff ff ff blsr -0xf6\(,%eax,4\),%ebp +[ ]*[a-f0-9]+: c4 e2 40 f3 ce blsr %esi,%edi +[ ]*[a-f0-9]+: c4 e2 78 f3 0b blsr \(%ebx\),%eax +[ ]*[a-f0-9]+: c4 e2 60 f3 8c 7b 3a f2 00 00 blsr 0xf23a\(%ebx,%edi,2\),%ebx +[ ]*[a-f0-9]+: c4 e2 40 f3 09 blsr \(%ecx\),%edi +[ ]*[a-f0-9]+: c4 e2 78 f3 0c 05 05 00 00 00 blsr 0x5\(,%eax,1\),%eax +[ ]*[a-f0-9]+: c4 e2 78 f3 cd blsr %ebp,%eax +[ ]*[a-f0-9]+: c4 e2 78 f3 8c 03 c3 41 00 00 blsr 0x41c3\(%ebx,%eax,1\),%eax +[ ]*[a-f0-9]+: c4 e2 40 f3 0c 5d 03 00 00 00 blsr 0x3\(,%ebx,2\),%edi +[ ]*[a-f0-9]+: c4 e2 40 f3 49 5a blsr 0x5a\(%ecx\),%edi +[ ]*[a-f0-9]+: 66 f3 0f bd 38 lzcnt \(%eax\),%di +[ ]*[a-f0-9]+: 66 f3 0f bd e7 lzcnt %di,%sp +[ ]*[a-f0-9]+: 66 f3 0f bd 06 lzcnt \(%esi\),%ax +[ ]*[a-f0-9]+: 66 f3 0f bd 14 cd 00 00 00 00 lzcnt 0x0\(,%ecx,8\),%dx +[ ]*[a-f0-9]+: 66 f3 0f bd fc lzcnt %sp,%di +[ ]*[a-f0-9]+: 66 f3 0f bd 14 35 09 60 ff ff lzcnt -0x9ff7\(,%esi,1\),%dx +[ ]*[a-f0-9]+: 66 f3 0f bd bc cb 4d 6e 00 00 lzcnt 0x6e4d\(%ebx,%ecx,8\),%di +[ ]*[a-f0-9]+: 66 f3 0f bd 2a lzcnt \(%edx\),%bp +[ ]*[a-f0-9]+: 66 f3 0f bd c9 lzcnt %cx,%cx +[ ]*[a-f0-9]+: 66 f3 0f bd dd lzcnt %bp,%bx +[ ]*[a-f0-9]+: 66 f3 0f bd f6 lzcnt %si,%si +[ ]*[a-f0-9]+: 66 f3 0f bd 04 05 00 00 00 00 lzcnt 0x0\(,%eax,1\),%ax +[ ]*[a-f0-9]+: 66 f3 0f bd f8 lzcnt %ax,%di +[ ]*[a-f0-9]+: 66 f3 0f bd db lzcnt %bx,%bx +[ ]*[a-f0-9]+: 66 f3 0f bd fa lzcnt %dx,%di +[ ]*[a-f0-9]+: 66 f3 0f bd 1f lzcnt \(%edi\),%bx +[ ]*[a-f0-9]+: f3 0f bd db lzcnt %ebx,%ebx +[ ]*[a-f0-9]+: f3 0f bd f9 lzcnt %ecx,%edi +[ ]*[a-f0-9]+: f3 0f bd 14 09 lzcnt \(%ecx,%ecx,1\),%edx +[ ]*[a-f0-9]+: f3 0f bd c0 lzcnt %eax,%eax +[ ]*[a-f0-9]+: f3 0f bd cf lzcnt %edi,%ecx +[ ]*[a-f0-9]+: f3 0f bd fc lzcnt %esp,%edi +[ ]*[a-f0-9]+: f3 0f bd 34 7d 00 00 00 00 lzcnt 0x0\(,%edi,2\),%esi +[ ]*[a-f0-9]+: f3 0f bd 03 lzcnt \(%ebx\),%eax +[ ]*[a-f0-9]+: f3 0f bd 3c 43 lzcnt \(%ebx,%eax,2\),%edi +[ ]*[a-f0-9]+: f3 0f bd 1f lzcnt \(%edi\),%ebx +[ ]*[a-f0-9]+: f3 0f bd ed lzcnt %ebp,%ebp +[ ]*[a-f0-9]+: f3 0f bd a3 ad de 00 00 lzcnt 0xdead\(%ebx\),%esp +[ ]*[a-f0-9]+: f3 0f bd c6 lzcnt %esi,%eax +[ ]*[a-f0-9]+: f3 0f bd bc 00 05 63 00 00 lzcnt 0x6305\(%eax,%eax,1\),%edi +[ ]*[a-f0-9]+: f3 0f bd bc 07 74 8f ff ff lzcnt -0x708c\(%edi,%eax,1\),%edi +[ ]*[a-f0-9]+: f3 0f bd 06 lzcnt \(%esi\),%eax +[ ]*[a-f0-9]+: 66 f3 0f bc eb tzcnt %bx,%bp +[ ]*[a-f0-9]+: 66 f3 0f bc c7 tzcnt %di,%ax +[ ]*[a-f0-9]+: 66 f3 0f bc fd tzcnt %bp,%di +[ ]*[a-f0-9]+: 66 f3 0f bc 14 16 tzcnt \(%esi,%edx,1\),%dx +[ ]*[a-f0-9]+: 66 f3 0f bc 0f tzcnt \(%edi\),%cx +[ ]*[a-f0-9]+: 66 f3 0f bc 0a tzcnt \(%edx\),%cx +[ ]*[a-f0-9]+: 66 f3 0f bc d8 tzcnt %ax,%bx +[ ]*[a-f0-9]+: 66 f3 0f bc 24 8d 00 00 00 00 tzcnt 0x0\(,%ecx,4\),%sp +[ ]*[a-f0-9]+: 66 f3 0f bc 31 tzcnt \(%ecx\),%si +[ ]*[a-f0-9]+: 66 f3 0f bc 03 tzcnt \(%ebx\),%ax +[ ]*[a-f0-9]+: 66 f3 0f bc 3c c7 tzcnt \(%edi,%eax,8\),%di +[ ]*[a-f0-9]+: 66 f3 0f bc 1c 3b tzcnt \(%ebx,%edi,1\),%bx +[ ]*[a-f0-9]+: 66 f3 0f bc c1 tzcnt %cx,%ax +[ ]*[a-f0-9]+: 66 f3 0f bc b9 63 27 ff ff tzcnt -0xd89d\(%ecx\),%di +[ ]*[a-f0-9]+: 66 f3 0f bc c5 tzcnt %bp,%ax +[ ]*[a-f0-9]+: 66 f3 0f bc c5 tzcnt %bp,%ax +[ ]*[a-f0-9]+: f3 0f bc f8 tzcnt %eax,%edi +[ ]*[a-f0-9]+: f3 0f bc f7 tzcnt %edi,%esi +[ ]*[a-f0-9]+: f3 0f bc 44 3b 61 tzcnt 0x61\(%ebx,%edi,1\),%eax +[ ]*[a-f0-9]+: f3 0f bc de tzcnt %esi,%ebx +[ ]*[a-f0-9]+: f3 0f bc 2a tzcnt \(%edx\),%ebp +[ ]*[a-f0-9]+: f3 0f bc 16 tzcnt \(%esi\),%edx +[ ]*[a-f0-9]+: f3 0f bc 0c 0f tzcnt \(%edi,%ecx,1\),%ecx +[ ]*[a-f0-9]+: f3 0f bc f5 tzcnt %ebp,%esi +[ ]*[a-f0-9]+: f3 0f bc 07 tzcnt \(%edi\),%eax +[ ]*[a-f0-9]+: f3 0f bc 3c 07 tzcnt \(%edi,%eax,1\),%edi +[ ]*[a-f0-9]+: f3 0f bc 24 00 tzcnt \(%eax,%eax,1\),%esp +[ ]*[a-f0-9]+: f3 0f bc 00 tzcnt \(%eax\),%eax +[ ]*[a-f0-9]+: f3 0f bc 3c 45 bf ff ff ff tzcnt -0x41\(,%eax,2\),%edi +[ ]*[a-f0-9]+: f3 0f bc 24 1d 01 00 00 c0 tzcnt -0x3fffffff\(,%ebx,1\),%esp +[ ]*[a-f0-9]+: f3 0f bc c3 tzcnt %ebx,%eax +[ ]*[a-f0-9]+: f3 0f bc 3b tzcnt \(%ebx\),%edi + diff --git a/gas/testsuite/gas/i386/bmi.s b/gas/testsuite/gas/i386/bmi.s new file mode 100644 index 0000000..f3f9c38 --- /dev/null +++ b/gas/testsuite/gas/i386/bmi.s @@ -0,0 +1,151 @@ + + .allow_index_reg + .text + +_start: + + ANDN %edi,%eax,%edi + ANDN (%edx,%edi,8),%ecx,%ecx + ANDN %ebx,%esp,%eax + ANDN (%ebx,%ebx,4),%ebp,%edx + ANDN 0x36DC(%ecx),%edi,%esi + ANDN (%ebx),%esi,%ebx + ANDN %eax,%ebx,%edi + ANDN %ecx,%eax,%eax + ANDN -0x5162567A(%esi,%ebx,2),%edx,%esp + ANDN (%esi),%edx,%ebp + ANDN %edx,%esp,%eax + ANDN %esi,%ebp,%edx + ANDN -0xDEAD(%esi),%edi,%edi + ANDN 0xA(%ecx,%ebx),%esp,%esi + ANDN (%eax),%edi,%eax + ANDN -0x32(%ebx,%edx),%edi,%edi + BEXTR %eax,(%ebx),%edi + BEXTR %edi,(%ecx),%esi + BEXTR %esp,%edi,%ecx + BEXTR %ebp,%ecx,%eax + BEXTR %ebx,%eax,%edi + BEXTR %esi,%ebx,%edx + BEXTR %edx,(%edi,%eax),%eax + BEXTR %edi,(%edi),%ebp + BEXTR %ecx,%esi,%esp + BEXTR %edi,0x0(%eax),%ebx + BEXTR %eax,(,%eax,1),%eax + BEXTR %ebp,(%edx),%esp + BEXTR %esi,0xA90F(,%eax,4),%ebp + BEXTR %ebx,0x3(%ebx,%eax),%edi + BEXTR %edi,0x3FFFFFFF(%ecx),%edi + BEXTR %eax,(%edx,%edx),%eax + BLSI %edi,%eax + BLSI %eax,%edi + BLSI (%ebx),%edi + BLSI %esi,%esp + BLSI %edx,%edx + BLSI (%edi),%esi + BLSI 0x8(%ecx),%ebx + BLSI (%edx),%eax + BLSI (%ecx),%eax + BLSI %ebp,%esp + BLSI (%ecx,%ebx),%ebp + BLSI 0x3(,%ecx,2),%ecx + BLSI (%edx,%eax),%eax + BLSI (%ecx,%esi,2),%edi + BLSI %eax,%edi + BLSI (%eax),%eax + BLSMSK %edx,%ebp + BLSMSK %edi,%edi + BLSMSK %eax,%eax + BLSMSK %ebp,%edx + BLSMSK %ebx,%esi + BLSMSK (%edi),%ecx + BLSMSK (%ecx),%ebx + BLSMSK (,%eax,4),%esp + BLSMSK %esp,%eax + BLSMSK (%ebx),%eax + BLSMSK (%ebx,%edx,8),%eax + BLSMSK %esi,%esp + BLSMSK -0x5EC21951(%edi,%edi,2),%edi + BLSMSK (%eax,%ecx,2),%eax + BLSMSK (%ebx,%ebx),%eax + BLSMSK (%ebx,%eax,4),%edi + BLSR 0xCAFE(%edx,%edx,4),%esp + BLSR %edi,%eax + BLSR (,%ecx,8),%esi + BLSR %eax,%edx + BLSR (%esi),%ecx + BLSR 0x66B03551(,%ebx,4),%edi + BLSR -0xF6(,%eax,4),%ebp + BLSR %esi,%edi + BLSR (%ebx),%eax + BLSR 0xF23A(%ebx,%edi,2),%ebx + BLSR (%ecx),%edi + BLSR 0x5(,%eax),%eax + BLSR %ebp,%eax + BLSR 0x41C3(%ebx,%eax),%eax + BLSR 0x3(,%ebx,2),%edi + BLSR 0x5A(%ecx),%edi + LZCNT (%eax),%di + LZCNT %di,%sp + LZCNT (%esi),%ax + LZCNT (,%ecx,8),%dx + LZCNT %sp,%di + LZCNT -0x9FF7(,%esi),%dx + LZCNT 0x6E4D(%ebx,%ecx,8),%di + LZCNT (%edx),%bp + LZCNT %cx,%cx + LZCNT %bp,%bx + LZCNT %si,%si + LZCNT (,%eax,1),%ax + LZCNT %ax,%di + LZCNT %bx,%bx + LZCNT %dx,%di + LZCNT (%edi),%bx + LZCNT %ebx,%ebx + LZCNT %ecx,%edi + LZCNT (%ecx,%ecx),%edx + LZCNT %eax,%eax + LZCNT %edi,%ecx + LZCNT %esp,%edi + LZCNT (,%edi,2),%esi + LZCNT (%ebx),%eax + LZCNT (%ebx,%eax,2),%edi + LZCNT (%edi),%ebx + LZCNT %ebp,%ebp + LZCNT 0xDEAD(%ebx),%esp + LZCNT %esi,%eax + LZCNT 0x6305(%eax,%eax,1),%edi + LZCNT -0x708C(%edi,%eax),%edi + LZCNT (%esi),%eax + TZCNT %bx,%bp + TZCNT %di,%ax + TZCNT %bp,%di + TZCNT (%esi,%edx,1),%dx + TZCNT (%edi),%cx + TZCNT (%edx),%cx + TZCNT %ax,%bx + TZCNT (,%ecx,4),%sp + TZCNT (%ecx),%si + TZCNT (%ebx),%ax + TZCNT (%edi,%eax,8),%di + TZCNT (%ebx,%edi),%bx + TZCNT %cx,%ax + TZCNT -0xD89D(%ecx),%di + TZCNT %bp,%ax + TZCNT %bp,%ax + TZCNT %eax,%edi + TZCNT %edi,%esi + TZCNT 0x61(%ebx,%edi),%eax + TZCNT %esi,%ebx + TZCNT (%edx),%ebp + TZCNT (%esi),%edx + TZCNT (%edi,%ecx),%ecx + TZCNT %ebp,%esi + TZCNT (%edi),%eax + TZCNT (%edi,%eax,1),%edi + TZCNT (%eax,%eax),%esp + TZCNT (%eax),%eax + TZCNT -0x41(,%eax,2),%edi + TZCNT -0x3FFFFFFF(,%ebx),%esp + TZCNT %ebx,%eax + TZCNT (%ebx),%edi + diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 3a966d7..aee5330 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -173,6 +173,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "fma4" run_dump_test "lwp" run_dump_test "xop" + run_dump_test "tbm" + run_dump_test "bmi" run_dump_test "f16c" run_dump_test "f16c-intel" run_dump_test "fsgs" @@ -372,6 +374,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_dump_test "x86-64-fma4" run_dump_test "x86-64-lwp" run_dump_test "x86-64-xop" + run_dump_test "x86-64-tbm" + run_dump_test "x86-64-bmi" run_dump_test "x86-64-f16c" run_dump_test "x86-64-f16c-intel" run_dump_test "x86-64-fsgs" diff --git a/gas/testsuite/gas/i386/tbm.d b/gas/testsuite/gas/i386/tbm.d new file mode 100644 index 0000000..29a4b08 --- /dev/null +++ b/gas/testsuite/gas/i386/tbm.d @@ -0,0 +1,168 @@ +#objdump: -dw +#name: i386 TBM + +.*: +file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: 8f ea 78 10 1c f2 67 00 00 00 bextr \$0x67,\(%edx,%esi,8\),%ebx +[ ]*[a-f0-9]+: 8f ea 78 10 c6 00 00 00 00 bextr \$0x0,%esi,%eax +[ ]*[a-f0-9]+: 8f ea 78 10 f8 ff ff ff 7f bextr \$0x7fffffff,%eax,%edi +[ ]*[a-f0-9]+: 8f ea 78 10 26 b2 35 00 00 bextr \$0x35b2,\(%esi\),%esp +[ ]*[a-f0-9]+: 8f ea 78 10 ef 86 9c 00 00 bextr \$0x9c86,%edi,%ebp +[ ]*[a-f0-9]+: 8f ea 78 10 c9 03 00 00 00 bextr \$0x3,%ecx,%ecx +[ ]*[a-f0-9]+: 8f ea 78 10 74 43 fd ee 00 00 00 bextr \$0xee,-0x3\(%ebx,%eax,2\),%esi +[ ]*[a-f0-9]+: 8f ea 78 10 23 55 00 00 00 bextr \$0x55,\(%ebx\),%esp +[ ]*[a-f0-9]+: 8f ea 78 10 12 e8 4e 00 00 bextr \$0x4ee8,\(%edx\),%edx +[ ]*[a-f0-9]+: 8f ea 78 10 fb 00 00 00 00 bextr \$0x0,%ebx,%edi +[ ]*[a-f0-9]+: 8f ea 78 10 f4 dc 00 00 00 bextr \$0xdc,%esp,%esi +[ ]*[a-f0-9]+: 8f ea 78 10 00 a9 00 00 00 bextr \$0xa9,\(%eax\),%eax +[ ]*[a-f0-9]+: 8f ea 78 10 ea 89 01 00 00 bextr \$0x189,%edx,%ebp +[ ]*[a-f0-9]+: 8f ea 78 10 0c 41 84 00 00 00 bextr \$0x84,\(%ecx,%eax,2\),%ecx +[ ]*[a-f0-9]+: 8f ea 78 10 04 01 fe ca 00 00 bextr \$0xcafe,\(%ecx,%eax,1\),%eax +[ ]*[a-f0-9]+: 8f ea 78 10 bc 3e 09 71 00 00 ad de 00 00 bextr \$0xdead,0x7109\(%esi,%edi,1\),%edi +[ ]*[a-f0-9]+: 8f e9 78 01 09 blcfill \(%ecx\),%eax +[ ]*[a-f0-9]+: 8f e9 40 01 ce blcfill %esi,%edi +[ ]*[a-f0-9]+: 8f e9 70 01 c8 blcfill %eax,%ecx +[ ]*[a-f0-9]+: 8f e9 48 01 cf blcfill %edi,%esi +[ ]*[a-f0-9]+: 8f e9 58 01 0e blcfill \(%esi\),%esp +[ ]*[a-f0-9]+: 8f e9 50 01 0b blcfill \(%ebx\),%ebp +[ ]*[a-f0-9]+: 8f e9 68 01 8c 03 95 1a 00 00 blcfill 0x1a95\(%ebx,%eax,1\),%edx +[ ]*[a-f0-9]+: 8f e9 40 01 0a blcfill \(%edx\),%edi +[ ]*[a-f0-9]+: 8f e9 40 01 cb blcfill %ebx,%edi +[ ]*[a-f0-9]+: 8f e9 78 01 8c 30 ce 00 00 00 blcfill 0xce\(%eax,%esi,1\),%eax +[ ]*[a-f0-9]+: 8f e9 78 01 0c 1d 02 35 ff ff blcfill -0xcafe\(,%ebx,1\),%eax +[ ]*[a-f0-9]+: 8f e9 60 01 0c 05 a1 51 ff ff blcfill -0xae5f\(,%eax,1\),%ebx +[ ]*[a-f0-9]+: 8f e9 40 01 c9 blcfill %ecx,%edi +[ ]*[a-f0-9]+: 8f e9 78 01 cc blcfill %esp,%eax +[ ]*[a-f0-9]+: 8f e9 40 01 cd blcfill %ebp,%edi +[ ]*[a-f0-9]+: 8f e9 78 01 0c 4e blcfill \(%esi,%ecx,2\),%eax +[ ]*[a-f0-9]+: 8f e9 70 02 f0 blci %eax,%ecx +[ ]*[a-f0-9]+: 8f e9 60 02 f1 blci %ecx,%ebx +[ ]*[a-f0-9]+: 8f e9 78 02 34 45 b0 12 00 00 blci 0x12b0\(,%eax,2\),%eax +[ ]*[a-f0-9]+: 8f e9 40 02 30 blci \(%eax\),%edi +[ ]*[a-f0-9]+: 8f e9 48 02 f7 blci %edi,%esi +[ ]*[a-f0-9]+: 8f e9 68 02 f4 blci %esp,%edx +[ ]*[a-f0-9]+: 8f e9 50 02 f6 blci %esi,%ebp +[ ]*[a-f0-9]+: 8f e9 78 02 f2 blci %edx,%eax +[ ]*[a-f0-9]+: 8f e9 58 02 b4 83 57 8d ff ff blci -0x72a9\(%ebx,%eax,4\),%esp +[ ]*[a-f0-9]+: 8f e9 60 02 36 blci \(%esi\),%ebx +[ ]*[a-f0-9]+: 8f e9 78 02 34 73 blci \(%ebx,%esi,2\),%eax +[ ]*[a-f0-9]+: 8f e9 68 02 33 blci \(%ebx\),%edx +[ ]*[a-f0-9]+: 8f e9 78 02 f3 blci %ebx,%eax +[ ]*[a-f0-9]+: 8f e9 70 02 b4 93 a2 e0 00 00 blci 0xe0a2\(%ebx,%edx,4\),%ecx +[ ]*[a-f0-9]+: 8f e9 40 02 37 blci \(%edi\),%edi +[ ]*[a-f0-9]+: 8f e9 78 02 34 45 ff ff ff 3f blci 0x3fffffff\(,%eax,2\),%eax +[ ]*[a-f0-9]+: 8f e9 70 01 ef blcic %edi,%ecx +[ ]*[a-f0-9]+: 8f e9 40 01 e8 blcic %eax,%edi +[ ]*[a-f0-9]+: 8f e9 60 01 28 blcic \(%eax\),%ebx +[ ]*[a-f0-9]+: 8f e9 68 01 e9 blcic %ecx,%edx +[ ]*[a-f0-9]+: 8f e9 58 01 ee blcic %esi,%esp +[ ]*[a-f0-9]+: 8f e9 50 01 2c 1d 02 35 ff ff blcic -0xcafe\(,%ebx,1\),%ebp +[ ]*[a-f0-9]+: 8f e9 78 01 ed blcic %ebp,%eax +[ ]*[a-f0-9]+: 8f e9 48 01 2e blcic \(%esi\),%esi +[ ]*[a-f0-9]+: 8f e9 60 01 ec blcic %esp,%ebx +[ ]*[a-f0-9]+: 8f e9 48 01 2c 3f blcic \(%edi,%edi,1\),%esi +[ ]*[a-f0-9]+: 8f e9 50 01 2c 35 01 00 00 c0 blcic -0x3fffffff\(,%esi,1\),%ebp +[ ]*[a-f0-9]+: 8f e9 40 01 2b blcic \(%ebx\),%edi +[ ]*[a-f0-9]+: 8f e9 78 01 6c c7 08 blcic 0x8\(%edi,%eax,8\),%eax +[ ]*[a-f0-9]+: 8f e9 40 01 a9 d1 4a 57 3a blcic 0x3a574ad1\(%ecx\),%edi +[ ]*[a-f0-9]+: 8f e9 40 01 ec blcic %esp,%edi +[ ]*[a-f0-9]+: 8f e9 40 01 ea blcic %edx,%edi +[ ]*[a-f0-9]+: 8f e9 40 02 48 0c blcmsk 0xc\(%eax\),%edi +[ ]*[a-f0-9]+: 8f e9 50 02 0c 16 blcmsk \(%esi,%edx,1\),%ebp +[ ]*[a-f0-9]+: 8f e9 70 02 8f 00 22 3d e2 blcmsk -0x1dc2de00\(%edi\),%ecx +[ ]*[a-f0-9]+: 8f e9 58 02 c8 blcmsk %eax,%esp +[ ]*[a-f0-9]+: 8f e9 78 02 0c 57 blcmsk \(%edi,%edx,2\),%eax +[ ]*[a-f0-9]+: 8f e9 68 02 0b blcmsk \(%ebx\),%edx +[ ]*[a-f0-9]+: 8f e9 40 02 0a blcmsk \(%edx\),%edi +[ ]*[a-f0-9]+: 8f e9 48 02 ce blcmsk %esi,%esi +[ ]*[a-f0-9]+: 8f e9 40 02 cc blcmsk %esp,%edi +[ ]*[a-f0-9]+: 8f e9 58 02 cf blcmsk %edi,%esp +[ ]*[a-f0-9]+: 8f e9 60 02 0c c3 blcmsk \(%ebx,%eax,8\),%ebx +[ ]*[a-f0-9]+: 8f e9 78 02 0f blcmsk \(%edi\),%eax +[ ]*[a-f0-9]+: 8f e9 78 02 ca blcmsk %edx,%eax +[ ]*[a-f0-9]+: 8f e9 40 02 4c 3b 67 blcmsk 0x67\(%ebx,%edi,1\),%edi +[ ]*[a-f0-9]+: 8f e9 40 02 0c 05 a0 d8 12 aa blcmsk -0x55ed2760\(,%eax,1\),%edi +[ ]*[a-f0-9]+: 8f e9 78 02 0c 05 01 00 00 00 blcmsk 0x1\(,%eax,1\),%eax +[ ]*[a-f0-9]+: 8f e9 48 01 da blcs %edx,%esi +[ ]*[a-f0-9]+: 8f e9 78 01 1b blcs \(%ebx\),%eax +[ ]*[a-f0-9]+: 8f e9 40 01 d8 blcs %eax,%edi +[ ]*[a-f0-9]+: 8f e9 58 01 9c 01 fe ca 00 00 blcs 0xcafe\(%ecx,%eax,1\),%esp +[ ]*[a-f0-9]+: 8f e9 50 01 df blcs %edi,%ebp +[ ]*[a-f0-9]+: 8f e9 70 01 1a blcs \(%edx\),%ecx +[ ]*[a-f0-9]+: 8f e9 40 01 1f blcs \(%edi\),%edi +[ ]*[a-f0-9]+: 8f e9 60 01 9b 02 35 ff ff blcs -0xcafe\(%ebx\),%ebx +[ ]*[a-f0-9]+: 8f e9 70 01 dc blcs %esp,%ecx +[ ]*[a-f0-9]+: 8f e9 68 01 de blcs %esi,%edx +[ ]*[a-f0-9]+: 8f e9 40 01 18 blcs \(%eax\),%edi +[ ]*[a-f0-9]+: 8f e9 40 01 1c 0d 01 00 00 00 blcs 0x1\(,%ecx,1\),%edi +[ ]*[a-f0-9]+: 8f e9 78 01 d9 blcs %ecx,%eax +[ ]*[a-f0-9]+: 8f e9 40 01 1c 13 blcs \(%ebx,%edx,1\),%edi +[ ]*[a-f0-9]+: 8f e9 78 01 9c 00 53 21 ff ff blcs -0xdead\(%eax,%eax,1\),%eax +[ ]*[a-f0-9]+: 8f e9 40 01 1c 13 blcs \(%ebx,%edx,1\),%edi +[ ]*[a-f0-9]+: 8f e9 78 01 d0 blsfill %eax,%eax +[ ]*[a-f0-9]+: 8f e9 48 01 d1 blsfill %ecx,%esi +[ ]*[a-f0-9]+: 8f e9 40 01 10 blsfill \(%eax\),%edi +[ ]*[a-f0-9]+: 8f e9 58 01 d3 blsfill %ebx,%esp +[ ]*[a-f0-9]+: 8f e9 68 01 d2 blsfill %edx,%edx +[ ]*[a-f0-9]+: 8f e9 70 01 11 blsfill \(%ecx\),%ecx +[ ]*[a-f0-9]+: 8f e9 40 01 d7 blsfill %edi,%edi +[ ]*[a-f0-9]+: 8f e9 50 01 d5 blsfill %ebp,%ebp +[ ]*[a-f0-9]+: 8f e9 40 01 17 blsfill \(%edi\),%edi +[ ]*[a-f0-9]+: 8f e9 60 01 13 blsfill \(%ebx\),%ebx +[ ]*[a-f0-9]+: 8f e9 78 01 16 blsfill \(%esi\),%eax +[ ]*[a-f0-9]+: 8f e9 78 01 14 80 blsfill \(%eax,%eax,4\),%eax +[ ]*[a-f0-9]+: 8f e9 40 01 d6 blsfill %esi,%edi +[ ]*[a-f0-9]+: 8f e9 40 01 94 18 21 a2 00 00 blsfill 0xa221\(%eax,%ebx,1\),%edi +[ ]*[a-f0-9]+: 8f e9 78 01 14 00 blsfill \(%eax,%eax,1\),%eax +[ ]*[a-f0-9]+: 8f e9 70 01 14 5d f8 ff ff ff blsfill -0x8\(,%ebx,2\),%ecx +[ ]*[a-f0-9]+: 8f e9 40 01 f0 blsic %eax,%edi +[ ]*[a-f0-9]+: 8f e9 60 01 36 blsic \(%esi\),%ebx +[ ]*[a-f0-9]+: 8f e9 50 01 34 5d 00 00 00 00 blsic 0x0\(,%ebx,2\),%ebp +[ ]*[a-f0-9]+: 8f e9 78 01 34 41 blsic \(%ecx,%eax,2\),%eax +[ ]*[a-f0-9]+: 8f e9 58 01 37 blsic \(%edi\),%esp +[ ]*[a-f0-9]+: 8f e9 78 01 33 blsic \(%ebx\),%eax +[ ]*[a-f0-9]+: 8f e9 70 01 f7 blsic %edi,%ecx +[ ]*[a-f0-9]+: 8f e9 40 01 74 18 51 blsic 0x51\(%eax,%ebx,1\),%edi +[ ]*[a-f0-9]+: 8f e9 68 01 f4 blsic %esp,%edx +[ ]*[a-f0-9]+: 8f e9 68 01 74 3e 99 blsic -0x67\(%esi,%edi,1\),%edx +[ ]*[a-f0-9]+: 8f e9 40 01 31 blsic \(%ecx\),%edi +[ ]*[a-f0-9]+: 8f e9 48 01 74 8e 67 blsic 0x67\(%esi,%ecx,4\),%esi +[ ]*[a-f0-9]+: 8f e9 40 01 b4 d3 81 00 00 00 blsic 0x81\(%ebx,%edx,8\),%edi +[ ]*[a-f0-9]+: 8f e9 40 01 74 11 0e blsic 0xe\(%ecx,%edx,1\),%edi +[ ]*[a-f0-9]+: 8f e9 58 01 70 3b blsic 0x3b\(%eax\),%esp +[ ]*[a-f0-9]+: 8f e9 40 01 f1 blsic %ecx,%edi +[ ]*[a-f0-9]+: 8f e9 78 01 f8 t1mskc %eax,%eax +[ ]*[a-f0-9]+: 8f e9 40 01 ff t1mskc %edi,%edi +[ ]*[a-f0-9]+: 8f e9 70 01 39 t1mskc \(%ecx\),%ecx +[ ]*[a-f0-9]+: 8f e9 48 01 3c 33 t1mskc \(%ebx,%esi,1\),%esi +[ ]*[a-f0-9]+: 8f e9 50 01 fa t1mskc %edx,%ebp +[ ]*[a-f0-9]+: 8f e9 68 01 3c 0d 00 00 00 00 t1mskc 0x0\(,%ecx,1\),%edx +[ ]*[a-f0-9]+: 8f e9 58 01 3c b5 00 00 00 00 t1mskc 0x0\(,%esi,4\),%esp +[ ]*[a-f0-9]+: 8f e9 70 01 fb t1mskc %ebx,%ecx +[ ]*[a-f0-9]+: 8f e9 60 01 3b t1mskc \(%ebx\),%ebx +[ ]*[a-f0-9]+: 8f e9 40 01 fc t1mskc %esp,%edi +[ ]*[a-f0-9]+: 8f e9 40 01 38 t1mskc \(%eax\),%edi +[ ]*[a-f0-9]+: 8f e9 78 01 f9 t1mskc %ecx,%eax +[ ]*[a-f0-9]+: 8f e9 40 01 b8 ad de 00 00 t1mskc 0xdead\(%eax\),%edi +[ ]*[a-f0-9]+: 8f e9 68 01 f9 t1mskc %ecx,%edx +[ ]*[a-f0-9]+: 8f e9 60 01 3c 15 ad de 00 00 t1mskc 0xdead\(,%edx,1\),%ebx +[ ]*[a-f0-9]+: 8f e9 40 01 3a t1mskc \(%edx\),%edi +[ ]*[a-f0-9]+: 8f e9 58 01 23 tzmsk \(%ebx\),%esp +[ ]*[a-f0-9]+: 8f e9 78 01 e7 tzmsk %edi,%eax +[ ]*[a-f0-9]+: 8f e9 48 01 a7 02 35 ff ff tzmsk -0xcafe\(%edi\),%esi +[ ]*[a-f0-9]+: 8f e9 68 01 24 3d 00 00 00 00 tzmsk 0x0\(,%edi,1\),%edx +[ ]*[a-f0-9]+: 8f e9 50 01 e0 tzmsk %eax,%ebp +[ ]*[a-f0-9]+: 8f e9 60 01 e5 tzmsk %ebp,%ebx +[ ]*[a-f0-9]+: 8f e9 40 01 26 tzmsk \(%esi\),%edi +[ ]*[a-f0-9]+: 8f e9 70 01 21 tzmsk \(%ecx\),%ecx +[ ]*[a-f0-9]+: 8f e9 40 01 24 45 00 00 00 00 tzmsk 0x0\(,%eax,2\),%edi +[ ]*[a-f0-9]+: 8f e9 40 01 e7 tzmsk %edi,%edi +[ ]*[a-f0-9]+: 8f e9 68 01 e4 tzmsk %esp,%edx +[ ]*[a-f0-9]+: 8f e9 70 01 20 tzmsk \(%eax\),%ecx +[ ]*[a-f0-9]+: 8f e9 78 01 24 3a tzmsk \(%edx,%edi,1\),%eax +[ ]*[a-f0-9]+: 8f e9 78 01 23 tzmsk \(%ebx\),%eax +[ ]*[a-f0-9]+: 8f e9 78 01 a3 d9 c6 2a 2a tzmsk 0x2a2ac6d9\(%ebx\),%eax +[ ]*[a-f0-9]+: 8f e9 70 01 a4 01 47 e9 ff ff tzmsk -0x16b9\(%ecx,%eax,1\),%ecx diff --git a/gas/testsuite/gas/i386/tbm.s b/gas/testsuite/gas/i386/tbm.s new file mode 100644 index 0000000..1f970ac --- /dev/null +++ b/gas/testsuite/gas/i386/tbm.s @@ -0,0 +1,167 @@ + + .allow_index_reg + .text + +_start: + + BEXTR $0x67,(%edx,%esi,8),%ebx + BEXTR $0x0,%esi,%eax + BEXTR $0x7FFFFFFF,%eax,%edi + BEXTR $0x35B2,(%esi),%esp + BEXTR $0x9C86,%edi,%ebp + BEXTR $0x3,%ecx,%ecx + BEXTR $0xEE,-0x3(%ebx,%eax,2),%esi + BEXTR $0x55,(%ebx),%esp + BEXTR $0x4EE8,(%edx),%edx + BEXTR $0x0,%ebx,%edi + BEXTR $0xDC,%esp,%esi + BEXTR $0xA9,(%eax),%eax + BEXTR $0x189,%edx,%ebp + BEXTR $0x84,0x0(%ecx,%eax,2),%ecx + BEXTR $0xCAFE,(%ecx,%eax),%eax + BEXTR $0xDEAD,0x7109(%esi,%edi),%edi + BLCFILL (%ecx),%eax + BLCFILL %esi,%edi + BLCFILL %eax,%ecx + BLCFILL %edi,%esi + BLCFILL (%esi),%esp + BLCFILL (%ebx),%ebp + BLCFILL 0x1A95(%ebx,%eax),%edx + BLCFILL (%edx),%edi + BLCFILL %ebx,%edi + BLCFILL 0xCE(%eax,%esi),%eax + BLCFILL -0xCAFE(,%ebx,1),%eax + BLCFILL -0xAE5F(,%eax),%ebx + BLCFILL %ecx,%edi + BLCFILL %esp,%eax + BLCFILL %ebp,%edi + BLCFILL (%esi,%ecx,2),%eax + BLCI %eax,%ecx + BLCI %ecx,%ebx + BLCI 0x12B0(,%eax,2),%eax + BLCI (%eax),%edi + BLCI %edi,%esi + BLCI %esp,%edx + BLCI %esi,%ebp + BLCI %edx,%eax + BLCI -0x72A9(%ebx,%eax,4),%esp + BLCI (%esi),%ebx + BLCI (%ebx,%esi,2),%eax + BLCI (%ebx),%edx + BLCI %ebx,%eax + BLCI 0xE0A2(%ebx,%edx,4),%ecx + BLCI (%edi),%edi + BLCI 0x3FFFFFFF(,%eax,2),%eax + BLCIC %edi,%ecx + BLCIC %eax,%edi + BLCIC (%eax),%ebx + BLCIC %ecx,%edx + BLCIC %esi,%esp + BLCIC -0xCAFE(,%ebx),%ebp + BLCIC %ebp,%eax + BLCIC (%esi),%esi + BLCIC %esp,%ebx + BLCIC 0x0(%edi,%edi,1),%esi + BLCIC -0x3FFFFFFF(,%esi),%ebp + BLCIC (%ebx),%edi + BLCIC 0x8(%edi,%eax,8),%eax + BLCIC 0x3A574AD1(%ecx),%edi + BLCIC %esp,%edi + BLCIC %edx,%edi + BLCMSK 0xC(%eax),%edi + BLCMSK (%esi,%edx),%ebp + BLCMSK -0x1DC2DE00(%edi),%ecx + BLCMSK %eax,%esp + BLCMSK 0x0(%edi,%edx,2),%eax + BLCMSK (%ebx),%edx + BLCMSK (%edx),%edi + BLCMSK %esi,%esi + BLCMSK %esp,%edi + BLCMSK %edi,%esp + BLCMSK -0x0(%ebx,%eax,8),%ebx + BLCMSK (%edi),%eax + BLCMSK %edx,%eax + BLCMSK 0x67(%ebx,%edi),%edi + BLCMSK -0x55ED2760(,%eax),%edi + BLCMSK 0x1(,%eax),%eax + BLCS %edx,%esi + BLCS (%ebx),%eax + BLCS %eax,%edi + BLCS 0xCAFE(%ecx,%eax),%esp + BLCS %edi,%ebp + BLCS (%edx),%ecx + BLCS (%edi),%edi + BLCS -0xCAFE(%ebx),%ebx + BLCS %esp,%ecx + BLCS %esi,%edx + BLCS (%eax),%edi + BLCS 0x1(,%ecx,1),%edi + BLCS %ecx,%eax + BLCS (%ebx,%edx),%edi + BLCS -0xDEAD(%eax,%eax),%eax + BLCS 0x0(%ebx,%edx),%edi + BLSFILL %eax,%eax + BLSFILL %ecx,%esi + BLSFILL (%eax),%edi + BLSFILL %ebx,%esp + BLSFILL %edx,%edx + BLSFILL (%ecx),%ecx + BLSFILL %edi,%edi + BLSFILL %ebp,%ebp + BLSFILL (%edi),%edi + BLSFILL (%ebx),%ebx + BLSFILL (%esi),%eax + BLSFILL (%eax,%eax,4),%eax + BLSFILL %esi,%edi + BLSFILL 0xA221(%eax,%ebx),%edi + BLSFILL (%eax,%eax,1),%eax + BLSFILL -0x8(,%ebx,2),%ecx + BLSIC %eax,%edi + BLSIC (%esi),%ebx + BLSIC (,%ebx,2),%ebp + BLSIC (%ecx,%eax,2),%eax + BLSIC (%edi),%esp + BLSIC (%ebx),%eax + BLSIC %edi,%ecx + BLSIC 0x51(%eax,%ebx,1),%edi + BLSIC %esp,%edx + BLSIC -0x67(%esi,%edi),%edx + BLSIC (%ecx),%edi + BLSIC 0x67(%esi,%ecx,4),%esi + BLSIC 0x81(%ebx,%edx,8),%edi + BLSIC 0xE(%ecx,%edx),%edi + BLSIC 0x3B(%eax),%esp + BLSIC %ecx,%edi + T1MSKC %eax,%eax + T1MSKC %edi,%edi + T1MSKC (%ecx),%ecx + T1MSKC (%ebx,%esi,1),%esi + T1MSKC %edx,%ebp + T1MSKC 0x0(,%ecx,1),%edx + T1MSKC (,%esi,4),%esp + T1MSKC %ebx,%ecx + T1MSKC (%ebx),%ebx + T1MSKC %esp,%edi + T1MSKC (%eax),%edi + T1MSKC %ecx,%eax + T1MSKC 0xDEAD(%eax),%edi + T1MSKC %ecx,%edx + T1MSKC 0xDEAD(,%edx),%ebx + T1MSKC (%edx),%edi + TZMSK (%ebx),%esp + TZMSK %edi,%eax + TZMSK -0xCAFE(%edi),%esi + TZMSK (,%edi,1),%edx + TZMSK %eax,%ebp + TZMSK %ebp,%ebx + TZMSK (%esi),%edi + TZMSK (%ecx),%ecx + TZMSK (,%eax,2),%edi + TZMSK %edi,%edi + TZMSK %esp,%edx + TZMSK (%eax),%ecx + TZMSK (%edx,%edi),%eax + TZMSK (%ebx),%eax + TZMSK 0x2A2AC6D9(%ebx),%eax + TZMSK -0x16B9(%ecx,%eax,1),%ecx + diff --git a/gas/testsuite/gas/i386/x86-64-arch-2.d b/gas/testsuite/gas/i386/x86-64-arch-2.d index 9cd1306..36c335a 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2.d @@ -1,4 +1,4 @@ -#as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+abm+padlock +#as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+abm+padlock+tbm+bmi #objdump: -dw #name: x86-64 arch 2 @@ -36,4 +36,6 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 0f 01 da vmload [ ]*[a-f0-9]+: f3 0f bd d9 lzcnt %ecx,%ebx [ ]*[a-f0-9]+: 0f a7 c0 xstore-rng +[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx +[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx #pass diff --git a/gas/testsuite/gas/i386/x86-64-arch-2.s b/gas/testsuite/gas/i386/x86-64-arch-2.s index ddc0d40..5d574ee 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2.s +++ b/gas/testsuite/gas/i386/x86-64-arch-2.s @@ -58,3 +58,7 @@ vmload lzcnt %ecx,%ebx # PadLock xstorerng +# TBM +blcfill %ecx,%ebx +# BMI +blsr %ecx,%ebx diff --git a/gas/testsuite/gas/i386/x86-64-bmi.d b/gas/testsuite/gas/i386/x86-64-bmi.d new file mode 100644 index 0000000..180e40f --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-bmi.d @@ -0,0 +1,265 @@ +#objdump: -dw +#name: x86-64 BMI + +.*: +file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: c4 c2 00 f2 c0 andn %r8d,%r15d,%eax +[ ]*[a-f0-9]+: c4 62 78 f2 14 0e andn \(%rsi,%rcx,1\),%eax,%r10d +[ ]*[a-f0-9]+: 67 c4 c2 48 f2 2e andn \(%r14d\),%esi,%ebp +[ ]*[a-f0-9]+: c4 42 40 f2 7d 00 andn 0x0\(%r13\),%edi,%r15d +[ ]*[a-f0-9]+: c4 42 18 f2 fe andn %r14d,%r12d,%r15d +[ ]*[a-f0-9]+: 67 c4 82 08 f2 3c 50 andn \(%r8d,%r10d,2\),%r14d,%edi +[ ]*[a-f0-9]+: 67 c4 42 28 f2 29 andn \(%r9d\),%r10d,%r13d +[ ]*[a-f0-9]+: 67 c4 22 70 f2 0c bd 00 00 00 00 andn 0x0\(,%r15d,4\),%ecx,%r9d +[ ]*[a-f0-9]+: c4 a2 38 f2 24 85 00 00 00 00 andn 0x0\(,%r8,4\),%r8d,%esp +[ ]*[a-f0-9]+: c4 62 38 f2 24 07 andn \(%rdi,%rax,1\),%r8d,%r12d +[ ]*[a-f0-9]+: 67 c4 c2 20 f2 44 1d 00 andn 0x0\(%r13d,%ebx,1\),%r11d,%eax +[ ]*[a-f0-9]+: c4 e2 60 f2 f2 andn %edx,%ebx,%esi +[ ]*[a-f0-9]+: c4 c2 58 f2 11 andn \(%r9\),%esp,%edx +[ ]*[a-f0-9]+: c4 e2 00 f2 0f andn \(%rdi\),%r15d,%ecx +[ ]*[a-f0-9]+: 67 c4 62 50 f2 37 andn \(%edi\),%ebp,%r14d +[ ]*[a-f0-9]+: c4 a2 28 f2 84 83 fa b5 bb c6 andn -0x39444a06\(%rbx,%r8,4\),%r10d,%eax +[ ]*[a-f0-9]+: 67 c4 c2 f8 f2 02 andn \(%r10d\),%rax,%rax +[ ]*[a-f0-9]+: 67 c4 c2 80 f2 16 andn \(%r14d\),%r15,%rdx +[ ]*[a-f0-9]+: c4 02 d8 f2 bc 0f 93 5b 00 00 andn 0x5b93\(%r15,%r9,1\),%rsp,%r15 +[ ]*[a-f0-9]+: c4 42 a0 f2 09 andn \(%r9\),%r11,%r9 +[ ]*[a-f0-9]+: 67 c4 e2 80 f2 3c 45 00 00 00 00 andn 0x0\(,%eax,2\),%r15,%rdi +[ ]*[a-f0-9]+: c4 62 c8 f2 dd andn %rbp,%rsi,%r11 +[ ]*[a-f0-9]+: c4 42 e0 f2 45 00 andn 0x0\(%r13\),%rbx,%r8 +[ ]*[a-f0-9]+: c4 62 c0 f2 d0 andn %rax,%rdi,%r10 +[ ]*[a-f0-9]+: c4 c2 98 f2 e4 andn %r12,%r12,%rsp +[ ]*[a-f0-9]+: 67 c4 62 a8 f2 3e andn \(%esi\),%r10,%r15 +[ ]*[a-f0-9]+: 67 c4 62 f8 f2 3a andn \(%edx\),%rax,%r15 +[ ]*[a-f0-9]+: 67 c4 c2 b8 f2 37 andn \(%r15d\),%r8,%rsi +[ ]*[a-f0-9]+: 67 c4 42 80 f2 20 andn \(%r8d\),%r15,%r12 +[ ]*[a-f0-9]+: c4 c2 80 f2 ef andn %r15,%r15,%rbp +[ ]*[a-f0-9]+: c4 a2 d0 f2 0c e5 00 00 00 00 andn 0x0\(,%r12,8\),%rbp,%rcx +[ ]*[a-f0-9]+: c4 62 f0 f2 2a andn \(%rdx\),%rcx,%r13 +[ ]*[a-f0-9]+: c4 e2 00 f7 c0 bextr %r15d,%eax,%eax +[ ]*[a-f0-9]+: c4 42 78 f7 fa bextr %eax,%r10d,%r15d +[ ]*[a-f0-9]+: 67 c4 82 68 f7 0c cf bextr %edx,\(%r15d,%r9d,8\),%ecx +[ ]*[a-f0-9]+: c4 02 50 f7 54 3d 00 bextr %ebp,0x0\(%r13,%r15,1\),%r10d +[ ]*[a-f0-9]+: c4 c2 20 f7 ef bextr %r11d,%r15d,%ebp +[ ]*[a-f0-9]+: c4 82 00 f7 64 35 00 bextr %r15d,0x0\(%r13,%r14,1\),%esp +[ ]*[a-f0-9]+: 67 c4 02 30 f7 84 c3 ad de 00 00 bextr %r9d,0xdead\(%r11d,%r8d,8\),%r8d +[ ]*[a-f0-9]+: 67 c4 c2 20 f7 44 04 01 bextr %r11d,0x1\(%r12d,%eax,1\),%eax +[ ]*[a-f0-9]+: 67 c4 42 28 f7 76 f4 bextr %r10d,-0xc\(%r14d\),%r14d +[ ]*[a-f0-9]+: c4 62 78 f7 18 bextr %eax,\(%rax\),%r11d +[ ]*[a-f0-9]+: 67 c4 c2 60 f7 14 24 bextr %ebx,\(%r12d\),%edx +[ ]*[a-f0-9]+: 67 c4 62 48 f7 28 bextr %esi,\(%eax\),%r13d +[ ]*[a-f0-9]+: c4 e2 78 f7 dd bextr %eax,%ebp,%ebx +[ ]*[a-f0-9]+: c4 c2 78 f7 04 24 bextr %eax,\(%r12\),%eax +[ ]*[a-f0-9]+: 67 c4 c2 50 f7 04 02 bextr %ebp,\(%r10d,%eax,1\),%eax +[ ]*[a-f0-9]+: 67 c4 e2 10 f7 44 03 99 bextr %r13d,-0x67\(%ebx,%eax,1\),%eax +[ ]*[a-f0-9]+: c4 82 a8 f7 84 7b fe ca 00 00 bextr %r10,0xcafe\(%r11,%r15,2\),%rax +[ ]*[a-f0-9]+: c4 42 a8 f7 b1 fe ca 00 00 bextr %r10,0xcafe\(%r9\),%r14 +[ ]*[a-f0-9]+: c4 62 f8 f7 ff bextr %rax,%rdi,%r15 +[ ]*[a-f0-9]+: 67 c4 62 f8 f7 2a bextr %rax,\(%edx\),%r13 +[ ]*[a-f0-9]+: c4 42 f8 f7 17 bextr %rax,\(%r15\),%r10 +[ ]*[a-f0-9]+: c4 c2 80 f7 ea bextr %r15,%r10,%rbp +[ ]*[a-f0-9]+: 67 c4 e2 f8 f7 3e bextr %rax,\(%esi\),%rdi +[ ]*[a-f0-9]+: c4 42 98 f7 e1 bextr %r12,%r9,%r12 +[ ]*[a-f0-9]+: c4 c2 b8 f7 dd bextr %r8,%r13,%rbx +[ ]*[a-f0-9]+: c4 c2 f8 f7 24 24 bextr %rax,\(%r12\),%rsp +[ ]*[a-f0-9]+: c4 42 f8 f7 5d 00 bextr %rax,0x0\(%r13\),%r11 +[ ]*[a-f0-9]+: c4 c2 f8 f7 30 bextr %rax,\(%r8\),%rsi +[ ]*[a-f0-9]+: c4 e2 f0 f7 d6 bextr %rcx,%rsi,%rdx +[ ]*[a-f0-9]+: 67 c4 02 b8 f7 7c 0a 03 bextr %r8,0x3\(%r10d,%r9d,1\),%r15 +[ ]*[a-f0-9]+: 67 c4 c2 f8 f7 07 bextr %rax,\(%r15d\),%rax +[ ]*[a-f0-9]+: 67 c4 c2 f8 f7 08 bextr %rax,\(%r8d\),%rcx +[ ]*[a-f0-9]+: 67 c4 a2 48 f3 1c 7d f3 ff ff ff blsi -0xd\(,%r15d,2\),%esi +[ ]*[a-f0-9]+: c4 c2 00 f3 df blsi %r15d,%r15d +[ ]*[a-f0-9]+: c4 e2 78 f3 d8 blsi %eax,%eax +[ ]*[a-f0-9]+: c4 c2 28 f3 19 blsi \(%r9\),%r10d +[ ]*[a-f0-9]+: c4 e2 30 f3 dd blsi %ebp,%r9d +[ ]*[a-f0-9]+: c4 a2 68 f3 1c 4d 05 00 00 00 blsi 0x5\(,%r9,2\),%edx +[ ]*[a-f0-9]+: c4 a2 70 f3 1c 5d 96 ff ff ff blsi -0x6a\(,%r11,2\),%ecx +[ ]*[a-f0-9]+: 67 c4 e2 50 f3 19 blsi \(%ecx\),%ebp +[ ]*[a-f0-9]+: 67 c4 e2 20 f3 1f blsi \(%edi\),%r11d +[ ]*[a-f0-9]+: c4 e2 38 f3 5f f9 blsi -0x7\(%rdi\),%r8d +[ ]*[a-f0-9]+: 67 c4 c2 10 f3 18 blsi \(%r8d\),%r13d +[ ]*[a-f0-9]+: c4 c2 60 f3 1a blsi \(%r10\),%ebx +[ ]*[a-f0-9]+: c4 e2 40 f3 1c 05 fe ca 00 00 blsi 0xcafe\(,%rax,1\),%edi +[ ]*[a-f0-9]+: 67 c4 e2 78 f3 1e blsi \(%esi\),%eax +[ ]*[a-f0-9]+: c4 c2 78 f3 d9 blsi %r9d,%eax +[ ]*[a-f0-9]+: 67 c4 c2 78 f3 5c 3a 99 blsi -0x67\(%r10d,%edi,1\),%eax +[ ]*[a-f0-9]+: c4 c2 80 f3 5a 0f blsi 0xf\(%r10\),%r15 +[ ]*[a-f0-9]+: c4 c2 f8 f3 df blsi %r15,%rax +[ ]*[a-f0-9]+: c4 e2 d8 f3 d8 blsi %rax,%rsp +[ ]*[a-f0-9]+: 67 c4 e2 a8 f3 18 blsi \(%eax\),%r10 +[ ]*[a-f0-9]+: 67 c4 c2 90 f3 18 blsi \(%r8d\),%r13 +[ ]*[a-f0-9]+: 67 c4 a2 88 f3 9c cf 85 00 00 00 blsi 0x85\(%edi,%r9d,8\),%r14 +[ ]*[a-f0-9]+: c4 c2 98 f3 da blsi %r10,%r12 +[ ]*[a-f0-9]+: c4 c2 b8 f3 1b blsi \(%r11\),%r8 +[ ]*[a-f0-9]+: c4 c2 b0 f3 9f 20 d6 db b8 blsi -0x472429e0\(%r15\),%r9 +[ ]*[a-f0-9]+: 67 c4 e2 e8 f3 1f blsi \(%edi\),%rdx +[ ]*[a-f0-9]+: 67 c4 e2 e0 f3 1c 95 00 00 00 00 blsi 0x0\(,%edx,4\),%rbx +[ ]*[a-f0-9]+: 67 c4 e2 c0 f3 1b blsi \(%ebx\),%rdi +[ ]*[a-f0-9]+: c4 c2 f0 f3 9a ad de 00 00 blsi 0xdead\(%r10\),%rcx +[ ]*[a-f0-9]+: c4 82 c0 f3 5c f7 1b blsi 0x1b\(%r15,%r14,8\),%rdi +[ ]*[a-f0-9]+: c4 e2 a0 f3 1b blsi \(%rbx\),%r11 +[ ]*[a-f0-9]+: c4 82 f8 f3 5c 08 0a blsi 0xa\(%r8,%r9,1\),%rax +[ ]*[a-f0-9]+: c4 e2 78 f3 d0 blsmsk %eax,%eax +[ ]*[a-f0-9]+: c4 a2 48 f3 14 8d 00 00 00 00 blsmsk 0x0\(,%r9,4\),%esi +[ ]*[a-f0-9]+: 67 c4 e2 00 f3 14 7d 00 00 00 00 blsmsk 0x0\(,%edi,2\),%r15d +[ ]*[a-f0-9]+: c4 e2 58 f3 17 blsmsk \(%rdi\),%esp +[ ]*[a-f0-9]+: 67 c4 c2 70 f3 55 00 blsmsk 0x0\(%r13d\),%ecx +[ ]*[a-f0-9]+: c4 c2 08 f3 d1 blsmsk %r9d,%r14d +[ ]*[a-f0-9]+: c4 e2 38 f3 12 blsmsk \(%rdx\),%r8d +[ ]*[a-f0-9]+: 67 c4 e2 18 f3 16 blsmsk \(%esi\),%r12d +[ ]*[a-f0-9]+: c4 c2 20 f3 94 15 c5 22 f8 65 blsmsk 0x65f822c5\(%r13,%rdx,1\),%r11d +[ ]*[a-f0-9]+: 67 c4 e2 28 f3 54 0b fd blsmsk -0x3\(%ebx,%ecx,1\),%r10d +[ ]*[a-f0-9]+: c4 c2 50 f3 d7 blsmsk %r15d,%ebp +[ ]*[a-f0-9]+: c4 e2 10 f3 d6 blsmsk %esi,%r13d +[ ]*[a-f0-9]+: c4 c2 68 f3 17 blsmsk \(%r15\),%edx +[ ]*[a-f0-9]+: c4 c2 28 f3 16 blsmsk \(%r14\),%r10d +[ ]*[a-f0-9]+: c4 e2 40 f3 d5 blsmsk %ebp,%edi +[ ]*[a-f0-9]+: c4 a2 60 f3 14 21 blsmsk \(%rcx,%r12,1\),%ebx +[ ]*[a-f0-9]+: c4 c2 e8 f3 d7 blsmsk %r15,%rdx +[ ]*[a-f0-9]+: c4 e2 f8 f3 14 c8 blsmsk \(%rax,%rcx,8\),%rax +[ ]*[a-f0-9]+: c4 c2 80 f3 d1 blsmsk %r9,%r15 +[ ]*[a-f0-9]+: 67 c4 c2 b8 f3 17 blsmsk \(%r15d\),%r8 +[ ]*[a-f0-9]+: c4 e2 80 f3 d0 blsmsk %rax,%r15 +[ ]*[a-f0-9]+: c4 e2 98 f3 56 fd blsmsk -0x3\(%rsi\),%r12 +[ ]*[a-f0-9]+: c4 e2 c8 f3 14 12 blsmsk \(%rdx,%rdx,1\),%rsi +[ ]*[a-f0-9]+: c4 c2 e0 f3 16 blsmsk \(%r14\),%rbx +[ ]*[a-f0-9]+: c4 c2 c0 f3 17 blsmsk \(%r15\),%rdi +[ ]*[a-f0-9]+: c4 a2 d0 f3 14 25 24 ff ff ff blsmsk -0xdc\(,%r12,1\),%rbp +[ ]*[a-f0-9]+: 67 c4 e2 a0 f3 13 blsmsk \(%ebx\),%r11 +[ ]*[a-f0-9]+: 67 c4 a2 f8 f3 14 35 b8 43 00 00 blsmsk 0x43b8\(,%r14d,1\),%rax +[ ]*[a-f0-9]+: c4 e2 90 f3 d2 blsmsk %rdx,%r13 +[ ]*[a-f0-9]+: c4 e2 b0 f3 d5 blsmsk %rbp,%r9 +[ ]*[a-f0-9]+: 67 c4 e2 d8 f3 10 blsmsk \(%eax\),%rsp +[ ]*[a-f0-9]+: 67 c4 c2 80 f3 16 blsmsk \(%r14d\),%r15 +[ ]*[a-f0-9]+: c4 c2 00 f3 cf blsr %r15d,%r15d +[ ]*[a-f0-9]+: c4 e2 30 f3 c8 blsr %eax,%r9d +[ ]*[a-f0-9]+: 67 c4 e2 08 f3 0c 15 01 00 00 00 blsr 0x1\(,%edx,1\),%r14d +[ ]*[a-f0-9]+: c4 e2 70 f3 ca blsr %edx,%ecx +[ ]*[a-f0-9]+: c4 a2 60 f3 0c 71 blsr \(%rcx,%r14,2\),%ebx +[ ]*[a-f0-9]+: 67 c4 a2 78 f3 0c 8d 4a 46 00 00 blsr 0x464a\(,%r9d,4\),%eax +[ ]*[a-f0-9]+: c4 e2 58 f3 0e blsr \(%rsi\),%esp +[ ]*[a-f0-9]+: 67 c4 e2 48 f3 09 blsr \(%ecx\),%esi +[ ]*[a-f0-9]+: 67 c4 e2 48 f3 0f blsr \(%edi\),%esi +[ ]*[a-f0-9]+: 67 c4 e2 28 f3 0c 7d 00 00 00 00 blsr 0x0\(,%edi,2\),%r10d +[ ]*[a-f0-9]+: c4 e2 20 f3 0a blsr \(%rdx\),%r11d +[ ]*[a-f0-9]+: c4 c2 10 f3 0b blsr \(%r11\),%r13d +[ ]*[a-f0-9]+: c4 c2 38 f3 c9 blsr %r9d,%r8d +[ ]*[a-f0-9]+: c4 e2 68 f3 cf blsr %edi,%edx +[ ]*[a-f0-9]+: 67 c4 e2 78 f3 0b blsr \(%ebx\),%eax +[ ]*[a-f0-9]+: c4 e2 40 f3 08 blsr \(%rax\),%edi +[ ]*[a-f0-9]+: c4 c2 80 f3 0b blsr \(%r11\),%r15 +[ ]*[a-f0-9]+: 67 c4 e2 b0 f3 0c 0d 03 00 00 00 blsr 0x3\(,%ecx,1\),%r9 +[ ]*[a-f0-9]+: c4 e2 d8 f3 0e blsr \(%rsi\),%rsp +[ ]*[a-f0-9]+: c4 c2 f8 f3 4d 00 blsr 0x0\(%r13\),%rax +[ ]*[a-f0-9]+: c4 c2 e8 f3 cf blsr %r15,%rdx +[ ]*[a-f0-9]+: 67 c4 c2 b8 f3 0e blsr \(%r14d\),%r8 +[ ]*[a-f0-9]+: c4 c2 f8 f3 0e blsr \(%r14\),%rax +[ ]*[a-f0-9]+: c4 c2 d0 f3 08 blsr \(%r8\),%rbp +[ ]*[a-f0-9]+: c4 e2 a0 f3 ca blsr %rdx,%r11 +[ ]*[a-f0-9]+: 67 c4 e2 80 f3 0a blsr \(%edx\),%r15 +[ ]*[a-f0-9]+: 67 c4 a2 e0 f3 0c 25 7e 33 00 00 blsr 0x337e\(,%r12d,1\),%rbx +[ ]*[a-f0-9]+: c4 e2 f0 f3 08 blsr \(%rax\),%rcx +[ ]*[a-f0-9]+: c4 e2 d8 f3 cd blsr %rbp,%rsp +[ ]*[a-f0-9]+: c4 e2 a8 f3 c8 blsr %rax,%r10 +[ ]*[a-f0-9]+: c4 82 98 f3 4c a5 67 blsr 0x67\(%r13,%r12,4\),%r12 +[ ]*[a-f0-9]+: 67 c4 a2 c0 f3 0c 2d 00 00 00 00 blsr 0x0\(,%r13d,1\),%rdi +[ ]*[a-f0-9]+: 67 66 f3 46 0f bd 2c 05 5a 1f 00 00 lzcnt 0x1f5a\(,%r8d,1\),%r13w +[ ]*[a-f0-9]+: 66 f3 44 0f bd e0 lzcnt %ax,%r12w +[ ]*[a-f0-9]+: 66 f3 45 0f bd 11 lzcnt \(%r9\),%r10w +[ ]*[a-f0-9]+: 66 f3 41 0f bd c5 lzcnt %r13w,%ax +[ ]*[a-f0-9]+: 66 f3 44 0f bd 3c c5 99 ff ff ff lzcnt -0x67\(,%rax,8\),%r15w +[ ]*[a-f0-9]+: 66 f3 41 0f bd 7c 15 00 lzcnt 0x0\(%r13,%rdx,1\),%di +[ ]*[a-f0-9]+: 66 f3 0f bd 2f lzcnt \(%rdi\),%bp +[ ]*[a-f0-9]+: 66 f3 45 0f bd 03 lzcnt \(%r11\),%r8w +[ ]*[a-f0-9]+: 66 f3 41 0f bd f7 lzcnt %r15w,%si +[ ]*[a-f0-9]+: 67 66 f3 41 0f bd 26 lzcnt \(%r14d\),%sp +[ ]*[a-f0-9]+: 66 f3 44 0f bd 09 lzcnt \(%rcx\),%r9w +[ ]*[a-f0-9]+: 66 f3 45 0f bd 8c db e7 9a 00 00 lzcnt 0x9ae7\(%r11,%rbx,8\),%r9w +[ ]*[a-f0-9]+: 66 f3 0f bd f6 lzcnt %si,%si +[ ]*[a-f0-9]+: 67 66 f3 0f bd 0b lzcnt \(%ebx\),%cx +[ ]*[a-f0-9]+: 67 66 f3 41 0f bd 1a lzcnt \(%r10d\),%bx +[ ]*[a-f0-9]+: 66 f3 45 0f bd f1 lzcnt %r9w,%r14w +[ ]*[a-f0-9]+: 67 f3 45 0f bd 7d 00 lzcnt 0x0\(%r13d\),%r15d +[ ]*[a-f0-9]+: f3 0f bd e7 lzcnt %edi,%esp +[ ]*[a-f0-9]+: 67 f3 45 0f bd 2e lzcnt \(%r14d\),%r13d +[ ]*[a-f0-9]+: f3 41 0f bd 16 lzcnt \(%r14\),%edx +[ ]*[a-f0-9]+: f3 45 0f bd df lzcnt %r15d,%r11d +[ ]*[a-f0-9]+: f3 0f bd c0 lzcnt %eax,%eax +[ ]*[a-f0-9]+: f3 41 0f bd 30 lzcnt \(%r8\),%esi +[ ]*[a-f0-9]+: f3 45 0f bd f9 lzcnt %r9d,%r15d +[ ]*[a-f0-9]+: f3 45 0f bd 04 24 lzcnt \(%r12\),%r8d +[ ]*[a-f0-9]+: f3 41 0f bd e8 lzcnt %r8d,%ebp +[ ]*[a-f0-9]+: 67 f3 41 0f bd 1a lzcnt \(%r10d\),%ebx +[ ]*[a-f0-9]+: f3 41 0f bd 3c 0c lzcnt \(%r12,%rcx,1\),%edi +[ ]*[a-f0-9]+: f3 44 0f bd 3f lzcnt \(%rdi\),%r15d +[ ]*[a-f0-9]+: 67 f3 44 0f bd 3f lzcnt \(%edi\),%r15d +[ ]*[a-f0-9]+: f3 45 0f bd d4 lzcnt %r12d,%r10d +[ ]*[a-f0-9]+: f3 42 0f bd 04 2d 00 00 00 00 lzcnt 0x0\(,%r13,1\),%eax +[ ]*[a-f0-9]+: 67 f3 49 0f bd 6d 00 lzcnt 0x0\(%r13d\),%rbp +[ ]*[a-f0-9]+: 67 f3 4d 0f bd 02 lzcnt \(%r10d\),%r8 +[ ]*[a-f0-9]+: 67 f3 48 0f bd 06 lzcnt \(%esi\),%rax +[ ]*[a-f0-9]+: f3 4c 0f bd eb lzcnt %rbx,%r13 +[ ]*[a-f0-9]+: f3 4d 0f bd 39 lzcnt \(%r9\),%r15 +[ ]*[a-f0-9]+: f3 48 0f bd ca lzcnt %rdx,%rcx +[ ]*[a-f0-9]+: f3 4a 0f bd 04 6d 00 00 00 00 lzcnt 0x0\(,%r13,2\),%rax +[ ]*[a-f0-9]+: 67 f3 48 0f bd 30 lzcnt \(%eax\),%rsi +[ ]*[a-f0-9]+: 67 f3 49 0f bd 27 lzcnt \(%r15d\),%rsp +[ ]*[a-f0-9]+: 67 f3 4e 0f bd 1c bd 00 00 00 00 lzcnt 0x0\(,%r15d,4\),%r11 +[ ]*[a-f0-9]+: f3 4d 0f bd e7 lzcnt %r15,%r12 +[ ]*[a-f0-9]+: f3 48 0f bd 17 lzcnt \(%rdi\),%rdx +[ ]*[a-f0-9]+: 67 f3 4d 0f bd 0c 24 lzcnt \(%r12d\),%r9 +[ ]*[a-f0-9]+: f3 4d 0f bd d3 lzcnt %r11,%r10 +[ ]*[a-f0-9]+: 67 f3 4c 0f bd 2c dd fe ca 00 00 lzcnt 0xcafe\(,%ebx,8\),%r13 +[ ]*[a-f0-9]+: f3 48 0f bd c0 lzcnt %rax,%rax +[ ]*[a-f0-9]+: 66 f3 45 0f bc f2 tzcnt %r10w,%r14w +[ ]*[a-f0-9]+: 66 f3 41 0f bc 86 7a 73 00 00 tzcnt 0x737a\(%r14\),%ax +[ ]*[a-f0-9]+: 66 f3 44 0f bc d0 tzcnt %ax,%r10w +[ ]*[a-f0-9]+: 66 f3 41 0f bc f7 tzcnt %r15w,%si +[ ]*[a-f0-9]+: 66 f3 45 0f bc 3c 24 tzcnt \(%r12\),%r15w +[ ]*[a-f0-9]+: 67 66 f3 0f bc 22 tzcnt \(%edx\),%sp +[ ]*[a-f0-9]+: 66 f3 44 0f bc 28 tzcnt \(%rax\),%r13w +[ ]*[a-f0-9]+: 66 f3 41 0f bc ec tzcnt %r12w,%bp +[ ]*[a-f0-9]+: 67 66 f3 41 0f bc 81 ad 3c 00 00 tzcnt 0x3cad\(%r9d\),%ax +[ ]*[a-f0-9]+: 66 f3 41 0f bc 44 12 06 tzcnt 0x6\(%r10,%rdx,1\),%ax +[ ]*[a-f0-9]+: 66 f3 45 0f bc dd tzcnt %r13w,%r11w +[ ]*[a-f0-9]+: 67 66 f3 43 0f bc 0c 32 tzcnt \(%r10d,%r14d,1\),%cx +[ ]*[a-f0-9]+: 67 66 f3 45 0f bc a4 9a 44 ae d0 4c tzcnt 0x4cd0ae44\(%r10d,%ebx,4\),%r12w +[ ]*[a-f0-9]+: 67 66 f3 45 0f bc 3f tzcnt \(%r15d\),%r15w +[ ]*[a-f0-9]+: 66 f3 45 0f bc 08 tzcnt \(%r8\),%r9w +[ ]*[a-f0-9]+: 67 66 f3 41 0f bc 01 tzcnt \(%r9d\),%ax +[ ]*[a-f0-9]+: f3 41 0f bc 10 tzcnt \(%r8\),%edx +[ ]*[a-f0-9]+: 67 f3 44 0f bc 1e tzcnt \(%esi\),%r11d +[ ]*[a-f0-9]+: f3 41 0f bc 02 tzcnt \(%r10\),%eax +[ ]*[a-f0-9]+: f3 45 0f bc 7c 16 c3 tzcnt -0x3d\(%r14,%rdx,1\),%r15d +[ ]*[a-f0-9]+: f3 41 0f bc 75 00 tzcnt 0x0\(%r13\),%esi +[ ]*[a-f0-9]+: f3 44 0f bc 27 tzcnt \(%rdi\),%r12d +[ ]*[a-f0-9]+: 67 f3 0f bc 01 tzcnt \(%ecx\),%eax +[ ]*[a-f0-9]+: f3 47 0f bc ac e9 bc 9a ff ff tzcnt -0x6544\(%r9,%r13,8\),%r13d +[ ]*[a-f0-9]+: f3 0f bc e0 tzcnt %eax,%esp +[ ]*[a-f0-9]+: f3 45 0f bc c7 tzcnt %r15d,%r8d +[ ]*[a-f0-9]+: 67 f3 0f bc 3c 0d f1 ff ff ff tzcnt -0xf\(,%ecx,1\),%edi +[ ]*[a-f0-9]+: f3 45 0f bc 09 tzcnt \(%r9\),%r9d +[ ]*[a-f0-9]+: f3 0f bc 21 tzcnt \(%rcx\),%esp +[ ]*[a-f0-9]+: f3 43 0f bc 2c 10 tzcnt \(%r8,%r10,1\),%ebp +[ ]*[a-f0-9]+: f3 46 0f bc 34 17 tzcnt \(%rdi,%r10,1\),%r14d +[ ]*[a-f0-9]+: 67 f3 0f bc 30 tzcnt \(%eax\),%esi +[ ]*[a-f0-9]+: 67 f3 4c 0f bc 0f tzcnt \(%edi\),%r9 +[ ]*[a-f0-9]+: f3 49 0f bc 29 tzcnt \(%r9\),%rbp +[ ]*[a-f0-9]+: 67 f3 4d 0f bc 3c 9f tzcnt \(%r15d,%ebx,4\),%r15 +[ ]*[a-f0-9]+: f3 4d 0f bc 26 tzcnt \(%r14\),%r12 +[ ]*[a-f0-9]+: f3 4e 0f bc 14 05 0e 8a f2 62 tzcnt 0x62f28a0e\(,%r8,1\),%r10 +[ ]*[a-f0-9]+: f3 4d 0f bc 34 30 tzcnt \(%r8,%rsi,1\),%r14 +[ ]*[a-f0-9]+: 67 f3 48 0f bc 06 tzcnt \(%esi\),%rax +[ ]*[a-f0-9]+: f3 49 0f bc c5 tzcnt %r13,%rax +[ ]*[a-f0-9]+: f3 4d 0f bc 81 6c 3d 00 00 tzcnt 0x3d6c\(%r9\),%r8 +[ ]*[a-f0-9]+: f3 4c 0f bc f8 tzcnt %rax,%r15 +[ ]*[a-f0-9]+: f3 4a 0f bc 24 4d 00 00 00 00 tzcnt 0x0\(,%r9,2\),%rsp +[ ]*[a-f0-9]+: 67 f3 4a 0f bc 1c e5 00 00 00 00 tzcnt 0x0\(,%r12d,8\),%rbx +[ ]*[a-f0-9]+: f3 4c 0f bc 1c 16 tzcnt \(%rsi,%rdx,1\),%r11 +[ ]*[a-f0-9]+: f3 4a 0f bc 3c a9 tzcnt \(%rcx,%r13,4\),%rdi +[ ]*[a-f0-9]+: f3 49 0f bc 44 c3 f1 tzcnt -0xf\(%r11,%rax,8\),%rax +[ ]*[a-f0-9]+: f3 49 0f bc 00 tzcnt \(%r8\),%rax + diff --git a/gas/testsuite/gas/i386/x86-64-bmi.s b/gas/testsuite/gas/i386/x86-64-bmi.s new file mode 100644 index 0000000..e4059ec --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-bmi.s @@ -0,0 +1,263 @@ + + .allow_index_reg + .text + +_start: + + ANDN %eax,%r15d,%eax + ANDN (%rsi,%rcx),%eax,%r10d + ANDN (%r14d),%esi,%ebp + ANDN (%r13),%edi,%r15d + ANDN %esi,%r12d,%r15d + ANDN (%r8d,%r10d,2),%r14d,%edi + ANDN (%r9d),%r10d,%r13d + ANDN (,%r15d,4),%ecx,%r9d + ANDN (,%r8,4),%r8d,%esp + ANDN (%rdi,%rax),%r8d,%r12d + ANDN (%r13d,%ebx),%r11d,%eax + ANDN %edx,%ebx,%esi + ANDN (%r9),%esp,%edx + ANDN (%rdi),%r15d,%ecx + ANDN (%edi),%ebp,%r14d + ANDN -0x39444A06(%rbx,%r8,4),%r10d,%eax + ANDN (%r10d),%rax,%rax + ANDN (%r14d),%r15,%rdx + ANDN 0x5B93(%r15,%r9),%rsp,%r15 + ANDN (%r9),%r11,%r9 + ANDN (,%eax,2),%r15,%rdi + ANDN %rbp,%rsi,%r11 + ANDN (%r13),%rbx,%r8 + ANDN %rax,%rdi,%r10 + ANDN %rsp,%r12,%rsp + ANDN (%esi),%r10,%r15 + ANDN (%edx),%rax,%r15 + ANDN (%r15d),%r8,%rsi + ANDN (%r8d),%r15,%r12 + ANDN %rdi,%r15,%rbp + ANDN (,%r12,8),%rbp,%rcx + ANDN (%rdx),%rcx,%r13 + BEXTR %r15d,%eax,%eax + BEXTR %eax,%r10d,%r15d + BEXTR %edx,(%r15d,%r9d,8),%ecx + BEXTR %ebp,(%r13,%r15),%r10d + BEXTR %r11d,%r15d,%ebp + BEXTR %r15d,(%r13,%r14),%esp + BEXTR %r9d,0xDEAD(%r11d,%r8d,8),%r8d + BEXTR %r11d,0x1(%r12d,%eax),%eax + BEXTR %r10d,-0xC(%r14d),%r14d + BEXTR %eax,(%rax),%r11d + BEXTR %ebx,(%r12d),%edx + BEXTR %esi,(%eax),%r13d + BEXTR %eax,%ebp,%ebx + BEXTR %eax,(%r12),%eax + BEXTR %ebp,(%r10d,%eax),%eax + BEXTR %r13d,-0x67(%ebx,%eax),%eax + BEXTR %r15,0xCAFE(%r11,%r15,2),%rax + BEXTR %r14,0xCAFE(%r9),%r14 + BEXTR %rdi,%rax,%r15 + BEXTR %rax,(%edx),%r13 + BEXTR %rdx,(%r15),%r10 + BEXTR %r10,%r15,%rbp + BEXTR %r12,(%esi),%rdi + BEXTR %rcx,%r12,%r12 + BEXTR %rbp,%r8,%rbx + BEXTR %rbx,(%r12),%rsp + BEXTR %r9,(%r13),%r11 + BEXTR %r11,(%r8),%rsi + BEXTR %rsi,%rcx,%rdx + BEXTR %r13,0x3(%r10d,%r9d,1),%r15 + BEXTR %rax,(%r15d),%rax + BEXTR %r15,(%r8d),%rcx + BLSI -0xD(,%r15d,2),%esi + BLSI %r15d,%r15d + BLSI %eax,%eax + BLSI (%r9),%r10d + BLSI %ebp,%r9d + BLSI 0x5(,%r9,2),%edx + BLSI -0x6A(,%r11,2),%ecx + BLSI (%ecx),%ebp + BLSI (%edi),%r11d + BLSI -0x7(%rdi),%r8d + BLSI (%r8d),%r13d + BLSI (%r10),%ebx + BLSI 0xCAFE(,%rax),%edi + BLSI (%esi),%eax + BLSI %r9d,%eax + BLSI -0x67(%r10d,%edi,1),%eax + BLSI 0xF(%r10),%r15 + BLSI %r15,%rax + BLSI %rax,%rsp + BLSI (%eax),%r10 + BLSI (%r8d),%r13 + BLSI 0x85(%edi,%r9d,8),%r14 + BLSI %r10,%r12 + BLSI (%r11),%r8 + BLSI -0x472429E0(%r15),%r9 + BLSI (%edi),%rdx + BLSI (,%edx,4),%rbx + BLSI (%ebx),%rdi + BLSI 0xDEAD(%r10),%rcx + BLSI 0x1B(%r15,%r14,8),%rdi + BLSI (%rbx),%r11 + BLSI 0xA(%r8,%r9),%rax + BLSMSK %eax,%eax + BLSMSK (,%r9,4),%esi + BLSMSK (,%edi,2),%r15d + BLSMSK (%rdi),%esp + BLSMSK (%r13d),%ecx + BLSMSK %r9d,%r14d + BLSMSK (%rdx),%r8d + BLSMSK (%esi),%r12d + BLSMSK 0x65F822C5(%r13,%rdx),%r11d + BLSMSK -0x3(%ebx,%ecx,1),%r10d + BLSMSK %r15d,%ebp + BLSMSK %esi,%r13d + BLSMSK (%r15),%edx + BLSMSK (%r14),%r10d + BLSMSK %ebp,%edi + BLSMSK (%rcx,%r12),%ebx + BLSMSK %r15,%rdx + BLSMSK (%rax,%rcx,8),%rax + BLSMSK %r9,%r15 + BLSMSK (%r15d),%r8 + BLSMSK %rax,%r15 + BLSMSK -0x3(%rsi),%r12 + BLSMSK -0x0(%rdx,%rdx),%rsi + BLSMSK (%r14),%rbx + BLSMSK (%r15),%rdi + BLSMSK -0xDC(,%r12),%rbp + BLSMSK (%ebx),%r11 + BLSMSK 0x43B8(,%r14d),%rax + BLSMSK %rdx,%r13 + BLSMSK %rbp,%r9 + BLSMSK (%eax),%rsp + BLSMSK (%r14d),%r15 + BLSR %r15d,%r15d + BLSR %eax,%r9d + BLSR 0x1(,%edx),%r14d + BLSR %edx,%ecx + BLSR (%rcx,%r14,2),%ebx + BLSR 0x464A(,%r9d,4),%eax + BLSR (%rsi),%esp + BLSR (%ecx),%esi + BLSR (%edi),%esi + BLSR (,%edi,2),%r10d + BLSR (%rdx),%r11d + BLSR (%r11),%r13d + BLSR %r9d,%r8d + BLSR %edi,%edx + BLSR (%ebx),%eax + BLSR (%rax),%edi + BLSR (%r11),%r15 + BLSR 0x3(,%ecx),%r9 + BLSR (%rsi),%rsp + BLSR (%r13),%rax + BLSR %r15,%rdx + BLSR (%r14d),%r8 + BLSR (%r14),%rax + BLSR (%r8),%rbp + BLSR %rdx,%r11 + BLSR (%edx),%r15 + BLSR 0x337E(,%r12d),%rbx + BLSR (%rax),%rcx + BLSR %rbp,%rsp + BLSR %rax,%r10 + BLSR 0x67(%r13,%r12,4),%r12 + BLSR (,%r13d,1),%rdi + LZCNT 0x1F5A(,%r8d),%r13w + LZCNT %ax,%r12w + LZCNT (%r9),%r10w + LZCNT %r13w,%ax + LZCNT -0x67(,%rax,8),%r15w + LZCNT (%r13,%rdx),%di + LZCNT (%rdi),%bp + LZCNT (%r11),%r8w + LZCNT %r15w,%si + LZCNT (%r14d),%sp + LZCNT (%rcx),%r9w + LZCNT 0x9AE7(%r11,%rbx,8),%r9w + LZCNT %si,%si + LZCNT (%ebx),%cx + LZCNT (%r10d),%bx + LZCNT %r9w,%r14w + LZCNT (%r13d),%r15d + LZCNT %edi,%esp + LZCNT (%r14d),%r13d + LZCNT (%r14),%edx + LZCNT %r15d,%r11d + LZCNT %eax,%eax + LZCNT (%r8),%esi + LZCNT %r9d,%r15d + LZCNT (%r12),%r8d + LZCNT %r8d,%ebp + LZCNT (%r10d),%ebx + LZCNT (%r12,%rcx),%edi + LZCNT (%rdi),%r15d + LZCNT (%edi),%r15d + LZCNT %r12d,%r10d + LZCNT (,%r13,1),%eax + LZCNT (%r13d),%rbp + LZCNT (%r10d),%r8 + LZCNT (%esi),%rax + LZCNT %rbx,%r13 + LZCNT (%r9),%r15 + LZCNT %rdx,%rcx + LZCNT (,%r13,2),%rax + LZCNT (%eax),%rsi + LZCNT (%r15d),%rsp + LZCNT (,%r15d,4),%r11 + LZCNT %r15,%r12 + LZCNT (%rdi),%rdx + LZCNT (%r12d),%r9 + LZCNT %r11,%r10 + LZCNT 0xCAFE(,%ebx,8),%r13 + LZCNT %rax,%rax + TZCNT %r10w,%r14w + TZCNT 0x737A(%r14),%ax + TZCNT %ax,%r10w + TZCNT %r15w,%si + TZCNT (%r12),%r15w + TZCNT (%edx),%sp + TZCNT (%rax),%r13w + TZCNT %r12w,%bp + TZCNT 0x3CAD(%r9d),%ax + TZCNT 0x6(%r10,%rdx),%ax + TZCNT %r13w,%r11w + TZCNT (%r10d,%r14d),%cx + TZCNT 0x4CD0AE44(%r10d,%ebx,4),%r12w + TZCNT (%r15d),%r15w + TZCNT (%r8),%r9w + TZCNT (%r9d),%ax + TZCNT (%r8),%edx + TZCNT (%esi),%r11d + TZCNT (%r10),%eax + TZCNT -0x3D(%r14,%rdx),%r15d + TZCNT (%r13),%esi + TZCNT (%rdi),%r12d + TZCNT (%ecx),%eax + TZCNT -0x6544(%r9,%r13,8),%r13d + TZCNT %eax,%esp + TZCNT %r15d,%r8d + TZCNT -0xF(,%ecx),%edi + TZCNT (%r9),%r9d + TZCNT (%rcx),%esp + TZCNT (%r8,%r10),%ebp + TZCNT (%rdi,%r10),%r14d + TZCNT (%eax),%esi + TZCNT (%edi),%r9 + TZCNT (%r9),%rbp + TZCNT (%r15d,%ebx,4),%r15 + TZCNT (%r14),%r12 + TZCNT 0x62F28A0E(,%r8),%r10 + TZCNT (%r8,%rsi),%r14 + TZCNT (%esi),%rax + TZCNT %r13,%rax + TZCNT 0x3D6C(%r9),%r8 + TZCNT %rax,%r15 + TZCNT (,%r9,2),%rsp + TZCNT (,%r12d,8),%rbx + TZCNT (%rsi,%rdx),%r11 + TZCNT (%rcx,%r13,4),%rdi + TZCNT -0xF(%r11,%rax,8),%rax + TZCNT (%r8),%rax + diff --git a/gas/testsuite/gas/i386/x86-64-tbm.d b/gas/testsuite/gas/i386/x86-64-tbm.d new file mode 100644 index 0000000..b6807bb --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-tbm.d @@ -0,0 +1,328 @@ +#objdump: -dw +#name: x86-64 TBM + +.*: +file format .* + +Disassembly of section .text: + +0+ <_start>: +[ ]*[a-f0-9]+: 8f 6a 78 10 f8 00 00 00 00 bextr \$0x0,%eax,%r15d +[ ]*[a-f0-9]+: 8f 4a 78 10 d7 f1 4d 00 00 bextr \$0x4df1,%r15d,%r10d +[ ]*[a-f0-9]+: 8f 4a 78 10 f5 92 5e a5 2d bextr \$0x2da55e92,%r13d,%r14d +[ ]*[a-f0-9]+: 67 8f 8a 78 10 44 7d 06 ff ff ff 7f bextr \$0x7fffffff,0x6\(%r13d,%r15d,2\),%eax +[ ]*[a-f0-9]+: 8f ca 78 10 eb 61 f7 1e 25 bextr \$0x251ef761,%r11d,%ebp +[ ]*[a-f0-9]+: 8f 6a 78 10 3c d7 39 2b 00 00 bextr \$0x2b39,\(%rdi,%rdx,8\),%r15d +[ ]*[a-f0-9]+: 8f 2a 78 10 0c 35 ad de 00 00 92 00 00 00 bextr \$0x92,0xdead\(,%r14,1\),%r9d +[ ]*[a-f0-9]+: 8f ca 78 10 75 00 87 68 00 00 bextr \$0x6887,0x0\(%r13\),%esi +[ ]*[a-f0-9]+: 67 8f ca 78 10 09 0d 00 00 00 bextr \$0xd,\(%r9d\),%ecx +[ ]*[a-f0-9]+: 8f ea 78 10 1c 05 d8 40 00 00 2b 00 00 00 bextr \$0x2b,0x40d8\(,%rax,1\),%ebx +[ ]*[a-f0-9]+: 8f 4a 78 10 00 2d ea 00 00 bextr \$0xea2d,\(%r8\),%r8d +[ ]*[a-f0-9]+: 67 8f 4a 78 10 65 00 6c 00 00 00 bextr \$0x6c,0x0\(%r13d\),%r12d +[ ]*[a-f0-9]+: 8f 6a 78 10 1c 0d 8f 8c 00 00 3b 9e 00 00 bextr \$0x9e3b,0x8c8f\(,%rcx,1\),%r11d +[ ]*[a-f0-9]+: 67 8f ca 78 10 24 02 0f 00 00 00 bextr \$0xf,\(%r10d,%eax,1\),%esp +[ ]*[a-f0-9]+: 67 8f aa 78 10 3c cd 00 00 00 00 ad de 00 00 bextr \$0xdead,0x0\(,%r9d,8\),%edi +[ ]*[a-f0-9]+: 8f ca 78 10 c0 fe ca 00 00 bextr \$0xcafe,%r8d,%eax +[ ]*[a-f0-9]+: 8f 4a f8 10 81 bc 10 00 00 b9 3b 26 7d bextr \$0x7d263bb9,0x10bc\(%r9\),%r8 +[ ]*[a-f0-9]+: 67 8f 2a f8 10 3c 65 00 00 00 00 67 00 00 00 bextr \$0x67,0x0\(,%r12d,2\),%r15 +[ ]*[a-f0-9]+: 8f ea f8 10 c0 00 00 00 00 bextr \$0x0,%rax,%rax +[ ]*[a-f0-9]+: 67 8f ea f8 10 26 9b 53 00 00 bextr \$0x539b,\(%esi\),%rsp +[ ]*[a-f0-9]+: 8f ca f8 10 08 ff ff ff 7f bextr \$0x7fffffff,\(%r8\),%rcx +[ ]*[a-f0-9]+: 67 8f ea f8 10 04 3d ff ff ff 3f 01 00 00 00 bextr \$0x1,0x3fffffff\(,%edi,1\),%rax +[ ]*[a-f0-9]+: 67 8f 8a f8 10 b4 30 84 dd ff ff 9e 00 00 00 bextr \$0x9e,-0x227c\(%r8d,%r14d,1\),%rsi +[ ]*[a-f0-9]+: 8f ca f8 10 c7 64 c4 a6 02 bextr \$0x2a6c464,%r15,%rax +[ ]*[a-f0-9]+: 67 8f 2a f8 10 4c 1f 02 04 00 00 00 bextr \$0x4,0x2\(%edi,%r11d,1\),%r9 +[ ]*[a-f0-9]+: 8f ea f8 10 ef 02 00 00 00 bextr \$0x2,%rdi,%rbp +[ ]*[a-f0-9]+: 67 8f ca f8 10 14 16 fb 7e 1e 78 bextr \$0x781e7efb,\(%r14d,%edx,1\),%rdx +[ ]*[a-f0-9]+: 8f 0a f8 10 ac 2b 68 db 00 00 39 40 cb 70 bextr \$0x70cb4039,0xdb68\(%r11,%r13,1\),%r13 +[ ]*[a-f0-9]+: 8f 4a f8 10 16 73 13 00 00 bextr \$0x1373,\(%r14\),%r10 +[ ]*[a-f0-9]+: 67 8f 2a f8 10 3c af 6d 55 00 00 bextr \$0x556d,\(%edi,%r13d,4\),%r15 +[ ]*[a-f0-9]+: 8f 4a f8 10 11 00 00 00 00 bextr \$0x0,\(%r9\),%r10 +[ ]*[a-f0-9]+: 8f 6a f8 10 1f ef ee ee 7b bextr \$0x7beeeeef,\(%rdi\),%r11 +[ ]*[a-f0-9]+: 8f e9 00 01 cc blcfill %esp,%r15d +[ ]*[a-f0-9]+: 8f a9 68 01 0c a6 blcfill \(%rsi,%r12,4\),%edx +[ ]*[a-f0-9]+: 67 8f e9 08 01 08 blcfill \(%eax\),%r14d +[ ]*[a-f0-9]+: 8f a9 50 01 0c ad 00 00 00 00 blcfill 0x0\(,%r13,4\),%ebp +[ ]*[a-f0-9]+: 67 8f c9 78 01 0e blcfill \(%r14d\),%eax +[ ]*[a-f0-9]+: 8f c9 30 01 0b blcfill \(%r11\),%r9d +[ ]*[a-f0-9]+: 8f a9 10 01 0c 45 ad de 00 00 blcfill 0xdead\(,%r8,2\),%r13d +[ ]*[a-f0-9]+: 8f c9 00 01 cf blcfill %r15d,%r15d +[ ]*[a-f0-9]+: 8f c9 40 01 ce blcfill %r14d,%edi +[ ]*[a-f0-9]+: 8f e9 20 01 c8 blcfill %eax,%r11d +[ ]*[a-f0-9]+: 8f c9 18 01 c9 blcfill %r9d,%r12d +[ ]*[a-f0-9]+: 67 8f c9 60 01 4d 67 blcfill 0x67\(%r13d\),%ebx +[ ]*[a-f0-9]+: 67 8f e9 00 01 0b blcfill \(%ebx\),%r15d +[ ]*[a-f0-9]+: 67 8f a9 08 01 4c 19 0b blcfill 0xb\(%ecx,%r11d,1\),%r14d +[ ]*[a-f0-9]+: 8f c9 78 01 8d 4a ff ff ff blcfill -0xb6\(%r13\),%eax +[ ]*[a-f0-9]+: 8f c9 48 01 09 blcfill \(%r9\),%esi +[ ]*[a-f0-9]+: 8f c9 f8 01 cf blcfill %r15,%rax +[ ]*[a-f0-9]+: 8f c9 a0 01 cd blcfill %r13,%r11 +[ ]*[a-f0-9]+: 8f c9 e0 01 c8 blcfill %r8,%rbx +[ ]*[a-f0-9]+: 67 8f c9 80 01 0f blcfill \(%r15d\),%r15 +[ ]*[a-f0-9]+: 67 8f c9 88 01 4d 00 blcfill 0x0\(%r13d\),%r14 +[ ]*[a-f0-9]+: 8f e9 b0 01 c8 blcfill %rax,%r9 +[ ]*[a-f0-9]+: 8f 89 e8 01 4c 24 0a blcfill 0xa\(%r12,%r12,1\),%rdx +[ ]*[a-f0-9]+: 8f c9 98 01 ce blcfill %r14,%r12 +[ ]*[a-f0-9]+: 8f e9 a8 01 cf blcfill %rdi,%r10 +[ ]*[a-f0-9]+: 67 8f c9 90 01 0b blcfill \(%r11d\),%r13 +[ ]*[a-f0-9]+: 67 8f e9 b8 01 0c 15 25 c6 ff ff blcfill -0x39db\(,%edx,1\),%r8 +[ ]*[a-f0-9]+: 8f c9 d8 01 0c 34 blcfill \(%r12,%rsi,1\),%rsp +[ ]*[a-f0-9]+: 67 8f 89 b8 01 4c 6d 00 blcfill 0x0\(%r13d,%r13d,2\),%r8 +[ ]*[a-f0-9]+: 8f e9 d0 01 08 blcfill \(%rax\),%rbp +[ ]*[a-f0-9]+: 8f c9 80 01 09 blcfill \(%r9\),%r15 +[ ]*[a-f0-9]+: 8f c9 f0 01 cb blcfill %r11,%rcx +[ ]*[a-f0-9]+: 8f c9 78 02 f7 blci %r15d,%eax +[ ]*[a-f0-9]+: 8f e9 00 02 32 blci \(%rdx\),%r15d +[ ]*[a-f0-9]+: 8f e9 28 02 f0 blci %eax,%r10d +[ ]*[a-f0-9]+: 67 8f e9 38 02 37 blci \(%edi\),%r8d +[ ]*[a-f0-9]+: 67 8f c9 68 02 75 00 blci 0x0\(%r13d\),%edx +[ ]*[a-f0-9]+: 67 8f e9 20 02 32 blci \(%edx\),%r11d +[ ]*[a-f0-9]+: 67 8f e9 18 02 34 05 37 09 00 00 blci 0x937\(,%eax,1\),%r12d +[ ]*[a-f0-9]+: 8f c9 70 02 31 blci \(%r9\),%ecx +[ ]*[a-f0-9]+: 67 8f c9 58 02 31 blci \(%r9d\),%esp +[ ]*[a-f0-9]+: 8f e9 48 02 f2 blci %edx,%esi +[ ]*[a-f0-9]+: 8f e9 08 02 f5 blci %ebp,%r14d +[ ]*[a-f0-9]+: 8f e9 78 02 f3 blci %ebx,%eax +[ ]*[a-f0-9]+: 8f e9 38 02 30 blci \(%rax\),%r8d +[ ]*[a-f0-9]+: 67 8f a9 40 02 34 75 00 00 00 00 blci 0x0\(,%r14d,2\),%edi +[ ]*[a-f0-9]+: 8f e9 78 02 33 blci \(%rbx\),%eax +[ ]*[a-f0-9]+: 67 8f 89 30 02 b4 31 31 a3 4c 43 blci 0x434ca331\(%r9d,%r14d,1\),%r9d +[ ]*[a-f0-9]+: 67 8f e9 a0 02 33 blci \(%ebx\),%r11 +[ ]*[a-f0-9]+: 8f c9 f8 02 37 blci \(%r15\),%rax +[ ]*[a-f0-9]+: 67 8f c9 80 02 34 dc blci \(%r12d,%ebx,8\),%r15 +[ ]*[a-f0-9]+: 8f c9 d0 02 f7 blci %r15,%rbp +[ ]*[a-f0-9]+: 67 8f e9 d8 02 34 33 blci \(%ebx,%esi,1\),%rsp +[ ]*[a-f0-9]+: 8f c9 f0 02 f4 blci %r12,%rcx +[ ]*[a-f0-9]+: 8f c9 c0 02 31 blci \(%r9\),%rdi +[ ]*[a-f0-9]+: 67 8f c9 e0 02 34 3c blci \(%r12d,%edi,1\),%rbx +[ ]*[a-f0-9]+: 8f e9 80 02 34 d5 19 5b 00 00 blci 0x5b19\(,%rdx,8\),%r15 +[ ]*[a-f0-9]+: 67 8f e9 a8 02 34 c5 00 00 00 00 blci 0x0\(,%eax,8\),%r10 +[ ]*[a-f0-9]+: 8f e9 b8 02 33 blci \(%rbx\),%r8 +[ ]*[a-f0-9]+: 67 8f e9 b0 02 b4 50 0b ff ff ff blci -0xf5\(%eax,%edx,2\),%r9 +[ ]*[a-f0-9]+: 8f c9 88 02 75 00 blci 0x0\(%r13\),%r14 +[ ]*[a-f0-9]+: 8f e9 f8 02 f5 blci %rbp,%rax +[ ]*[a-f0-9]+: 67 8f e9 90 02 30 blci \(%eax\),%r13 +[ ]*[a-f0-9]+: 8f c9 e8 02 34 24 blci \(%r12\),%rdx +[ ]*[a-f0-9]+: 67 8f c9 00 01 2c c6 blcic \(%r14d,%eax,8\),%r15d +[ ]*[a-f0-9]+: 8f c9 78 01 ef blcic %r15d,%eax +[ ]*[a-f0-9]+: 8f c9 38 01 29 blcic \(%r9\),%r8d +[ ]*[a-f0-9]+: 8f c9 30 01 2c 59 blcic \(%r9,%rbx,2\),%r9d +[ ]*[a-f0-9]+: 67 8f e9 48 01 2b blcic \(%ebx\),%esi +[ ]*[a-f0-9]+: 67 8f e9 50 01 2c 05 fe ff ff ff blcic -0x2\(,%eax,1\),%ebp +[ ]*[a-f0-9]+: 8f e9 60 01 28 blcic \(%rax\),%ebx +[ ]*[a-f0-9]+: 8f c9 40 01 2b blcic \(%r11\),%edi +[ ]*[a-f0-9]+: 8f e9 20 01 e8 blcic %eax,%r11d +[ ]*[a-f0-9]+: 8f c9 18 01 2e blcic \(%r14\),%r12d +[ ]*[a-f0-9]+: 8f c9 78 01 eb blcic %r11d,%eax +[ ]*[a-f0-9]+: 8f a9 00 01 2c 1d a7 d0 1a 14 blcic 0x141ad0a7\(,%r11,1\),%r15d +[ ]*[a-f0-9]+: 8f a9 10 01 2c 88 blcic \(%rax,%r9,4\),%r13d +[ ]*[a-f0-9]+: 8f e9 00 01 2b blcic \(%rbx\),%r15d +[ ]*[a-f0-9]+: 67 8f 89 28 01 2c 3f blcic \(%r15d,%r15d,1\),%r10d +[ ]*[a-f0-9]+: 67 8f c9 68 01 29 blcic \(%r9d\),%edx +[ ]*[a-f0-9]+: 67 8f a9 f0 01 2c 2d b3 cb d3 59 blcic 0x59d3cbb3\(,%r13d,1\),%rcx +[ ]*[a-f0-9]+: 8f c9 f8 01 ee blcic %r14,%rax +[ ]*[a-f0-9]+: 67 8f c9 80 01 2c 24 blcic \(%r12d\),%r15 +[ ]*[a-f0-9]+: 8f e9 88 01 e8 blcic %rax,%r14 +[ ]*[a-f0-9]+: 8f c9 d0 01 ef blcic %r15,%rbp +[ ]*[a-f0-9]+: 8f e9 d8 01 2b blcic \(%rbx\),%rsp +[ ]*[a-f0-9]+: 8f e9 e8 01 eb blcic %rbx,%rdx +[ ]*[a-f0-9]+: 8f c9 c0 01 e8 blcic %r8,%rdi +[ ]*[a-f0-9]+: 8f c9 c8 01 29 blcic \(%r9\),%rsi +[ ]*[a-f0-9]+: 8f e9 c0 01 2c c5 db db 00 00 blcic 0xdbdb\(,%rax,8\),%rdi +[ ]*[a-f0-9]+: 8f c9 e0 01 ea blcic %r10,%rbx +[ ]*[a-f0-9]+: 67 8f e9 a0 01 2b blcic \(%ebx\),%r11 +[ ]*[a-f0-9]+: 8f c9 b0 01 ed blcic %r13,%r9 +[ ]*[a-f0-9]+: 8f c9 f8 01 28 blcic \(%r8\),%rax +[ ]*[a-f0-9]+: 8f 89 98 01 ac 12 ad de 00 00 blcic 0xdead\(%r10,%r10,1\),%r12 +[ ]*[a-f0-9]+: 67 8f e9 f0 01 2c 02 blcic \(%edx,%eax,1\),%rcx +[ ]*[a-f0-9]+: 67 8f e9 00 02 09 blcmsk \(%ecx\),%r15d +[ ]*[a-f0-9]+: 8f e9 78 02 cd blcmsk %ebp,%eax +[ ]*[a-f0-9]+: 67 8f e9 40 02 0b blcmsk \(%ebx\),%edi +[ ]*[a-f0-9]+: 8f e9 68 02 c8 blcmsk %eax,%edx +[ ]*[a-f0-9]+: 8f a9 10 02 0c d5 00 00 00 00 blcmsk 0x0\(,%r10,8\),%r13d +[ ]*[a-f0-9]+: 8f c9 30 02 09 blcmsk \(%r9\),%r9d +[ ]*[a-f0-9]+: 8f c9 18 02 0a blcmsk \(%r10\),%r12d +[ ]*[a-f0-9]+: 8f e9 60 02 c9 blcmsk %ecx,%ebx +[ ]*[a-f0-9]+: 67 8f e9 78 02 0a blcmsk \(%edx\),%eax +[ ]*[a-f0-9]+: 8f e9 20 02 ce blcmsk %esi,%r11d +[ ]*[a-f0-9]+: 8f a9 00 02 0c b5 00 00 00 00 blcmsk 0x0\(,%r14,4\),%r15d +[ ]*[a-f0-9]+: 8f c9 78 02 cf blcmsk %r15d,%eax +[ ]*[a-f0-9]+: 67 8f c9 08 02 8e 5f f3 00 00 blcmsk 0xf35f\(%r14d\),%r14d +[ ]*[a-f0-9]+: 67 8f c9 38 02 0c 30 blcmsk \(%r8d,%esi,1\),%r8d +[ ]*[a-f0-9]+: 8f c9 58 02 0c 14 blcmsk \(%r12,%rdx,1\),%esp +[ ]*[a-f0-9]+: 67 8f c9 28 02 08 blcmsk \(%r8d\),%r10d +[ ]*[a-f0-9]+: 67 8f a9 98 02 0c 2d 00 00 00 00 blcmsk 0x0\(,%r13d,1\),%r12 +[ ]*[a-f0-9]+: 8f c9 e0 02 cf blcmsk %r15,%rbx +[ ]*[a-f0-9]+: 8f e9 80 02 c8 blcmsk %rax,%r15 +[ ]*[a-f0-9]+: 67 8f a9 b8 02 0c 0d 03 00 00 00 blcmsk 0x3\(,%r9d,1\),%r8 +[ ]*[a-f0-9]+: 8f 89 d0 02 8c 79 02 35 ff ff blcmsk -0xcafe\(%r9,%r15,2\),%rbp +[ ]*[a-f0-9]+: 8f c9 d8 02 4d 00 blcmsk 0x0\(%r13\),%rsp +[ ]*[a-f0-9]+: 8f e9 f8 02 0a blcmsk \(%rdx\),%rax +[ ]*[a-f0-9]+: 8f c9 90 02 0c 24 blcmsk \(%r12\),%r13 +[ ]*[a-f0-9]+: 8f e9 e8 02 0c d5 f9 ff ff ff blcmsk -0x7\(,%rdx,8\),%rdx +[ ]*[a-f0-9]+: 8f c9 88 02 0b blcmsk \(%r11\),%r14 +[ ]*[a-f0-9]+: 8f c9 b0 02 ce blcmsk %r14,%r9 +[ ]*[a-f0-9]+: 8f e9 a0 02 09 blcmsk \(%rcx\),%r11 +[ ]*[a-f0-9]+: 67 8f c9 f8 02 0e blcmsk \(%r14d\),%rax +[ ]*[a-f0-9]+: 8f e9 c0 02 0c c5 00 00 00 00 blcmsk 0x0\(,%rax,8\),%rdi +[ ]*[a-f0-9]+: 67 8f c9 90 02 0f blcmsk \(%r15d\),%r13 +[ ]*[a-f0-9]+: 67 8f e9 88 02 0c 33 blcmsk \(%ebx,%esi,1\),%r14 +[ ]*[a-f0-9]+: 8f e9 00 01 18 blcs \(%rax\),%r15d +[ ]*[a-f0-9]+: 67 8f a9 38 01 1c 05 01 00 00 00 blcs 0x1\(,%r8d,1\),%r8d +[ ]*[a-f0-9]+: 8f c9 70 01 da blcs %r10d,%ecx +[ ]*[a-f0-9]+: 8f c9 28 01 df blcs %r15d,%r10d +[ ]*[a-f0-9]+: 8f c9 78 01 db blcs %r11d,%eax +[ ]*[a-f0-9]+: 67 8f e9 40 01 99 9b dc 68 81 blcs -0x7e972365\(%ecx\),%edi +[ ]*[a-f0-9]+: 67 8f e9 08 01 1e blcs \(%esi\),%r14d +[ ]*[a-f0-9]+: 8f c9 20 01 5a fd blcs -0x3\(%r10\),%r11d +[ ]*[a-f0-9]+: 8f e9 58 01 1f blcs \(%rdi\),%esp +[ ]*[a-f0-9]+: 67 8f c9 60 01 1f blcs \(%r15d\),%ebx +[ ]*[a-f0-9]+: 8f c9 10 01 1c b1 blcs \(%r9,%rsi,4\),%r13d +[ ]*[a-f0-9]+: 8f c9 30 01 1c 19 blcs \(%r9,%rbx,1\),%r9d +[ ]*[a-f0-9]+: 67 8f e9 00 01 1c 08 blcs \(%eax,%ecx,1\),%r15d +[ ]*[a-f0-9]+: 8f e9 48 01 db blcs %ebx,%esi +[ ]*[a-f0-9]+: 8f e9 78 01 de blcs %esi,%eax +[ ]*[a-f0-9]+: 8f e9 18 01 df blcs %edi,%r12d +[ ]*[a-f0-9]+: 8f e9 f8 01 df blcs %rdi,%rax +[ ]*[a-f0-9]+: 8f e9 98 01 18 blcs \(%rax\),%r12 +[ ]*[a-f0-9]+: 8f c9 80 01 df blcs %r15,%r15 +[ ]*[a-f0-9]+: 8f c9 f0 01 da blcs %r10,%rcx +[ ]*[a-f0-9]+: 67 8f e9 90 01 18 blcs \(%eax\),%r13 +[ ]*[a-f0-9]+: 8f e9 b8 01 d8 blcs %rax,%r8 +[ ]*[a-f0-9]+: 67 8f e9 c0 01 5a ff blcs -0x1\(%edx\),%rdi +[ ]*[a-f0-9]+: 8f e9 a0 01 db blcs %rbx,%r11 +[ ]*[a-f0-9]+: 67 8f e9 d8 01 1c 45 00 00 00 00 blcs 0x0\(,%eax,2\),%rsp +[ ]*[a-f0-9]+: 8f 89 a8 01 1c 29 blcs \(%r9,%r13,1\),%r10 +[ ]*[a-f0-9]+: 67 8f a9 88 01 1c 05 cf 1d 00 00 blcs 0x1dcf\(,%r8d,1\),%r14 +[ ]*[a-f0-9]+: 67 8f a9 80 01 1c bd 00 00 00 00 blcs 0x0\(,%r15d,4\),%r15 +[ ]*[a-f0-9]+: 8f c9 d0 01 19 blcs \(%r9\),%rbp +[ ]*[a-f0-9]+: 67 8f c9 e8 01 5c 05 00 blcs 0x0\(%r13d,%eax,1\),%rdx +[ ]*[a-f0-9]+: 8f c9 d8 01 dc blcs %r12,%rsp +[ ]*[a-f0-9]+: 8f e9 e0 01 1f blcs \(%rdi\),%rbx +[ ]*[a-f0-9]+: 67 8f e9 68 01 16 blsfill \(%esi\),%edx +[ ]*[a-f0-9]+: 8f c9 78 01 11 blsfill \(%r9\),%eax +[ ]*[a-f0-9]+: 67 8f e9 00 01 13 blsfill \(%ebx\),%r15d +[ ]*[a-f0-9]+: 8f e9 20 01 d0 blsfill %eax,%r11d +[ ]*[a-f0-9]+: 8f c9 38 01 14 24 blsfill \(%r12\),%r8d +[ ]*[a-f0-9]+: 67 8f a9 00 01 14 0d 7e aa ff ff blsfill -0x5582\(,%r9d,1\),%r15d +[ ]*[a-f0-9]+: 8f e9 78 01 d4 blsfill %esp,%eax +[ ]*[a-f0-9]+: 67 8f a9 50 01 14 65 00 00 00 00 blsfill 0x0\(,%r12d,2\),%ebp +[ ]*[a-f0-9]+: 67 8f c9 60 01 10 blsfill \(%r8d\),%ebx +[ ]*[a-f0-9]+: 67 8f e9 58 01 10 blsfill \(%eax\),%esp +[ ]*[a-f0-9]+: 8f a9 18 01 14 1d 03 4f 00 00 blsfill 0x4f03\(,%r11,1\),%r12d +[ ]*[a-f0-9]+: 67 8f a9 78 01 14 15 0f 00 00 00 blsfill 0xf\(,%r10d,1\),%eax +[ ]*[a-f0-9]+: 67 8f c9 40 01 17 blsfill \(%r15d\),%edi +[ ]*[a-f0-9]+: 8f e9 70 01 14 35 8f 22 00 00 blsfill 0x228f\(,%rsi,1\),%ecx +[ ]*[a-f0-9]+: 67 8f e9 48 01 11 blsfill \(%ecx\),%esi +[ ]*[a-f0-9]+: 8f c9 10 01 d0 blsfill %r8d,%r13d +[ ]*[a-f0-9]+: 67 8f e9 80 01 14 85 f4 ff ff ff blsfill -0xc\(,%eax,4\),%r15 +[ ]*[a-f0-9]+: 8f e9 98 01 d0 blsfill %rax,%r12 +[ ]*[a-f0-9]+: 8f e9 f8 01 d2 blsfill %rdx,%rax +[ ]*[a-f0-9]+: 8f c9 d0 01 11 blsfill \(%r9\),%rbp +[ ]*[a-f0-9]+: 67 8f e9 e0 01 17 blsfill \(%edi\),%rbx +[ ]*[a-f0-9]+: 8f c9 b0 01 d7 blsfill %r15,%r9 +[ ]*[a-f0-9]+: 8f e9 d8 01 d3 blsfill %rbx,%rsp +[ ]*[a-f0-9]+: 8f c9 f8 01 17 blsfill \(%r15\),%rax +[ ]*[a-f0-9]+: 67 8f e9 a8 01 94 3f b9 56 00 00 blsfill 0x56b9\(%edi,%edi,1\),%r10 +[ ]*[a-f0-9]+: 67 8f c9 f0 01 94 b4 2f d4 ff ff blsfill -0x2bd1\(%r12d,%esi,4\),%rcx +[ ]*[a-f0-9]+: 8f c9 d8 01 13 blsfill \(%r11\),%rsp +[ ]*[a-f0-9]+: 8f c9 b8 01 d5 blsfill %r13,%r8 +[ ]*[a-f0-9]+: 67 8f e9 f8 01 14 43 blsfill \(%ebx,%eax,2\),%rax +[ ]*[a-f0-9]+: 67 8f e9 f8 01 13 blsfill \(%ebx\),%rax +[ ]*[a-f0-9]+: 8f e9 a0 01 14 13 blsfill \(%rbx,%rdx,1\),%r11 +[ ]*[a-f0-9]+: 8f c9 c8 01 95 dc 2f 00 00 blsfill 0x2fdc\(%r13\),%rsi +[ ]*[a-f0-9]+: 8f c9 00 01 f3 blsic %r11d,%r15d +[ ]*[a-f0-9]+: 8f e9 50 01 34 35 61 86 ff ff blsic -0x799f\(,%rsi,1\),%ebp +[ ]*[a-f0-9]+: 8f c9 78 01 f7 blsic %r15d,%eax +[ ]*[a-f0-9]+: 8f a9 70 01 34 10 blsic \(%rax,%r10,1\),%ecx +[ ]*[a-f0-9]+: 8f e9 28 01 f0 blsic %eax,%r10d +[ ]*[a-f0-9]+: 67 8f c9 30 01 75 00 blsic 0x0\(%r13d\),%r9d +[ ]*[a-f0-9]+: 8f c9 60 01 31 blsic \(%r9\),%ebx +[ ]*[a-f0-9]+: 67 8f e9 58 01 33 blsic \(%ebx\),%esp +[ ]*[a-f0-9]+: 67 8f c9 20 01 34 24 blsic \(%r12d\),%r11d +[ ]*[a-f0-9]+: 8f e9 68 01 34 3d fe bc 00 00 blsic 0xbcfe\(,%rdi,1\),%edx +[ ]*[a-f0-9]+: 67 8f c9 40 01 36 blsic \(%r14d\),%edi +[ ]*[a-f0-9]+: 67 8f a9 00 01 34 2d ec 78 00 00 blsic 0x78ec\(,%r13d,1\),%r15d +[ ]*[a-f0-9]+: 67 8f c9 48 01 33 blsic \(%r11d\),%esi +[ ]*[a-f0-9]+: 8f c9 08 01 32 blsic \(%r10\),%r14d +[ ]*[a-f0-9]+: 67 8f c9 00 01 31 blsic \(%r9d\),%r15d +[ ]*[a-f0-9]+: 8f c9 00 01 f2 blsic %r10d,%r15d +[ ]*[a-f0-9]+: 8f c9 f8 01 f7 blsic %r15,%rax +[ ]*[a-f0-9]+: 8f e9 b0 01 34 05 67 00 00 00 blsic 0x67\(,%rax,1\),%r9 +[ ]*[a-f0-9]+: 67 8f 89 e8 01 34 20 blsic \(%r8d,%r12d,1\),%rdx +[ ]*[a-f0-9]+: 67 8f c9 80 01 37 blsic \(%r15d\),%r15 +[ ]*[a-f0-9]+: 8f c9 f0 01 f1 blsic %r9,%rcx +[ ]*[a-f0-9]+: 8f c9 c0 01 f2 blsic %r10,%rdi +[ ]*[a-f0-9]+: 8f a9 e0 01 34 05 ff ff ff 3f blsic 0x3fffffff\(,%r8,1\),%rbx +[ ]*[a-f0-9]+: 8f e9 80 01 f2 blsic %rdx,%r15 +[ ]*[a-f0-9]+: 8f e9 c8 01 30 blsic \(%rax\),%rsi +[ ]*[a-f0-9]+: 67 8f c9 f8 01 37 blsic \(%r15d\),%rax +[ ]*[a-f0-9]+: 8f e9 80 01 33 blsic \(%rbx\),%r15 +[ ]*[a-f0-9]+: 8f e9 b8 01 f0 blsic %rax,%r8 +[ ]*[a-f0-9]+: 67 8f e9 f8 01 33 blsic \(%ebx\),%rax +[ ]*[a-f0-9]+: 8f e9 88 01 f1 blsic %rcx,%r14 +[ ]*[a-f0-9]+: 67 8f c9 c8 01 34 07 blsic \(%r15d,%eax,1\),%rsi +[ ]*[a-f0-9]+: 8f c9 98 01 f5 blsic %r13,%r12 +[ ]*[a-f0-9]+: 8f e9 00 01 7e fd t1mskc -0x3\(%rsi\),%r15d +[ ]*[a-f0-9]+: 8f c9 18 01 ff t1mskc %r15d,%r12d +[ ]*[a-f0-9]+: 8f c9 30 01 3c 24 t1mskc \(%r12\),%r9d +[ ]*[a-f0-9]+: 8f e9 78 01 fe t1mskc %esi,%eax +[ ]*[a-f0-9]+: 67 8f c9 58 01 7a fe t1mskc -0x2\(%r10d\),%esp +[ ]*[a-f0-9]+: 67 8f e9 10 01 3c 45 00 00 00 00 t1mskc 0x0\(,%eax,2\),%r13d +[ ]*[a-f0-9]+: 8f e9 48 01 f8 t1mskc %eax,%esi +[ ]*[a-f0-9]+: 67 8f c9 78 01 3c 24 t1mskc \(%r12d\),%eax +[ ]*[a-f0-9]+: 8f e9 28 01 3c 1d 9c f5 00 00 t1mskc 0xf59c\(,%rbx,1\),%r10d +[ ]*[a-f0-9]+: 67 8f e9 20 01 3c 85 00 00 00 00 t1mskc 0x0\(,%eax,4\),%r11d +[ ]*[a-f0-9]+: 67 8f e9 38 01 3b t1mskc \(%ebx\),%r8d +[ ]*[a-f0-9]+: 8f e9 60 01 ff t1mskc %edi,%ebx +[ ]*[a-f0-9]+: 67 8f e9 08 01 3a t1mskc \(%edx\),%r14d +[ ]*[a-f0-9]+: 67 8f c9 00 01 3b t1mskc \(%r11d\),%r15d +[ ]*[a-f0-9]+: 67 8f e9 70 01 3e t1mskc \(%esi\),%ecx +[ ]*[a-f0-9]+: 8f 89 40 01 3c 29 t1mskc \(%r9,%r13,1\),%edi +[ ]*[a-f0-9]+: 8f c9 d8 01 be ff ff ff 3f t1mskc 0x3fffffff\(%r14\),%rsp +[ ]*[a-f0-9]+: 8f e9 f8 01 f8 t1mskc %rax,%rax +[ ]*[a-f0-9]+: 8f c9 e0 01 38 t1mskc \(%r8\),%rbx +[ ]*[a-f0-9]+: 67 8f c9 c0 01 3c 3c t1mskc \(%r12d,%edi,1\),%rdi +[ ]*[a-f0-9]+: 8f c9 f0 01 fb t1mskc %r11,%rcx +[ ]*[a-f0-9]+: 8f c9 88 01 7d 00 t1mskc 0x0\(%r13\),%r14 +[ ]*[a-f0-9]+: 67 8f e9 e8 01 3c c5 ad de 00 00 t1mskc 0xdead\(,%eax,8\),%rdx +[ ]*[a-f0-9]+: 8f c9 80 01 ff t1mskc %r15,%r15 +[ ]*[a-f0-9]+: 8f c9 d0 01 3f t1mskc \(%r15\),%rbp +[ ]*[a-f0-9]+: 8f e9 b0 01 fc t1mskc %rsp,%r9 +[ ]*[a-f0-9]+: 8f e9 c8 01 3a t1mskc \(%rdx\),%rsi +[ ]*[a-f0-9]+: 8f c9 a8 01 fa t1mskc %r10,%r10 +[ ]*[a-f0-9]+: 67 8f c9 90 01 39 t1mskc \(%r9d\),%r13 +[ ]*[a-f0-9]+: 8f e9 f8 01 fb t1mskc %rbx,%rax +[ ]*[a-f0-9]+: 8f c9 f8 01 39 t1mskc \(%r9\),%rax +[ ]*[a-f0-9]+: 67 8f c9 a8 01 38 t1mskc \(%r8d\),%r10 +[ ]*[a-f0-9]+: 8f e9 28 01 e3 tzmsk %ebx,%r10d +[ ]*[a-f0-9]+: 8f c9 78 01 21 tzmsk \(%r9\),%eax +[ ]*[a-f0-9]+: 8f e9 00 01 22 tzmsk \(%rdx\),%r15d +[ ]*[a-f0-9]+: 8f e9 18 01 e5 tzmsk %ebp,%r12d +[ ]*[a-f0-9]+: 8f c9 10 01 e2 tzmsk %r10d,%r13d +[ ]*[a-f0-9]+: 8f c9 00 01 e7 tzmsk %r15d,%r15d +[ ]*[a-f0-9]+: 8f 89 60 01 a4 0b 02 35 ff ff tzmsk -0xcafe\(%r11,%r9,1\),%ebx +[ ]*[a-f0-9]+: 67 8f a9 68 01 64 2e 01 tzmsk 0x1\(%esi,%r13d,1\),%edx +[ ]*[a-f0-9]+: 67 8f c9 08 01 23 tzmsk \(%r11d\),%r14d +[ ]*[a-f0-9]+: 67 8f a9 70 01 24 a1 tzmsk \(%ecx,%r12d,4\),%ecx +[ ]*[a-f0-9]+: 67 8f e9 30 01 20 tzmsk \(%eax\),%r9d +[ ]*[a-f0-9]+: 8f e9 38 01 60 fa tzmsk -0x6\(%rax\),%r8d +[ ]*[a-f0-9]+: 8f e9 48 01 e7 tzmsk %edi,%esi +[ ]*[a-f0-9]+: 8f e9 00 01 e0 tzmsk %eax,%r15d +[ ]*[a-f0-9]+: 8f e9 50 01 64 01 f1 tzmsk -0xf\(%rcx,%rax,1\),%ebp +[ ]*[a-f0-9]+: 67 8f c9 20 01 27 tzmsk \(%r15d\),%r11d +[ ]*[a-f0-9]+: 67 8f e9 e8 01 24 dd ad de 00 00 tzmsk 0xdead\(,%ebx,8\),%rdx +[ ]*[a-f0-9]+: 67 8f e9 80 01 24 15 f8 ff ff ff tzmsk -0x8\(,%edx,1\),%r15 +[ ]*[a-f0-9]+: 8f e9 f8 01 e4 tzmsk %rsp,%rax +[ ]*[a-f0-9]+: 67 8f c9 b8 01 21 tzmsk \(%r9d\),%r8 +[ ]*[a-f0-9]+: 8f e9 98 01 e0 tzmsk %rax,%r12 +[ ]*[a-f0-9]+: 8f c9 d0 01 e7 tzmsk %r15,%rbp +[ ]*[a-f0-9]+: 8f 89 98 01 24 c9 tzmsk \(%r9,%r9,8\),%r12 +[ ]*[a-f0-9]+: 67 8f e9 90 01 24 9f tzmsk \(%edi,%ebx,4\),%r13 +[ ]*[a-f0-9]+: 8f e9 c0 01 e7 tzmsk %rdi,%rdi +[ ]*[a-f0-9]+: 67 8f e9 f8 01 23 tzmsk \(%ebx\),%rax +[ ]*[a-f0-9]+: 8f e9 d8 01 26 tzmsk \(%rsi\),%rsp +[ ]*[a-f0-9]+: 8f c9 f0 01 a0 02 35 ff ff tzmsk -0xcafe\(%r8\),%rcx +[ ]*[a-f0-9]+: 67 8f c9 88 01 a4 02 98 3c 00 00 tzmsk 0x3c98\(%r10d,%eax,1\),%r14 +[ ]*[a-f0-9]+: 67 8f c9 80 01 23 tzmsk \(%r11d\),%r15 +[ ]*[a-f0-9]+: 8f e9 c8 01 e6 tzmsk %rsi,%rsi +[ ]*[a-f0-9]+: 8f a9 b0 01 24 05 53 21 ff ff tzmsk -0xdead\(,%r8,1\),%r9 diff --git a/gas/testsuite/gas/i386/x86-64-tbm.s b/gas/testsuite/gas/i386/x86-64-tbm.s new file mode 100644 index 0000000..e1bbb9d --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-tbm.s @@ -0,0 +1,327 @@ + + .allow_index_reg + .text + +_start: + + BEXTR $0x0,%eax,%r15d + BEXTR $0x4DF1,%r15d,%r10d + BEXTR $0x2DA55E92,%r13d,%r14d + BEXTR $0x7FFFFFFF,0x6(%r13d,%r15d,2),%eax + BEXTR $0x251EF761,%r11d,%ebp + BEXTR $0x2B39,(%rdi,%rdx,8),%r15d + BEXTR $0x92,0xDEAD(,%r14),%r9d + BEXTR $0x6887,(%r13),%esi + BEXTR $0xD,(%r9d),%ecx + BEXTR $0x2B,0x40D8(,%rax),%ebx + BEXTR $0xEA2D,(%r8),%r8d + BEXTR $0x6C,(%r13d),%r12d + BEXTR $0x9E3B,0x8C8F(,%rcx),%r11d + BEXTR $0xF,(%r10d,%eax),%esp + BEXTR $0xDEAD,-0x0(,%r9d,8),%edi + BEXTR $0xCAFE,%r8d,%eax + BEXTR $0x7D263BB9,0x10BC(%r9),%r8 + BEXTR $0x67,(,%r12d,2),%r15 + BEXTR $0x0,%rax,%rax + BEXTR $0x539B,(%esi),%rsp + BEXTR $0x7FFFFFFF,(%r8),%rcx + BEXTR $0x1,0x3FFFFFFF(,%edi),%rax + BEXTR $0x9E,-0x227C(%r8d,%r14d),%rsi + BEXTR $0x2A6C464,%r15,%rax + BEXTR $0x4,0x2(%edi,%r11d,1),%r9 + BEXTR $0x2,%rdi,%rbp + BEXTR $0x781E7EFB,(%r14d,%edx,1),%rdx + BEXTR $0x70CB4039,0xDB68(%r11,%r13),%r13 + BEXTR $0x1373,(%r14),%r10 + BEXTR $0x556D,(%edi,%r13d,4),%r15 + BEXTR $0x0,(%r9),%r10 + BEXTR $0x7BEEEEEF,(%rdi),%r11 + BLCFILL %esp,%r15d + BLCFILL (%rsi,%r12,4),%edx + BLCFILL (%eax),%r14d + BLCFILL (,%r13,4),%ebp + BLCFILL (%r14d),%eax + BLCFILL (%r11),%r9d + BLCFILL 0xDEAD(,%r8,2),%r13d + BLCFILL %r15d,%r15d + BLCFILL %r14d,%edi + BLCFILL %eax,%r11d + BLCFILL %r9d,%r12d + BLCFILL 0x67(%r13d),%ebx + BLCFILL (%ebx),%r15d + BLCFILL 0xB(%ecx,%r11d),%r14d + BLCFILL -0xB6(%r13),%eax + BLCFILL (%r9),%esi + BLCFILL %r15,%rax + BLCFILL %r13,%r11 + BLCFILL %r8,%rbx + BLCFILL (%r15d),%r15 + BLCFILL (%r13d),%r14 + BLCFILL %rax,%r9 + BLCFILL 0xA(%r12,%r12,1),%rdx + BLCFILL %r14,%r12 + BLCFILL %rdi,%r10 + BLCFILL (%r11d),%r13 + BLCFILL -0x39DB(,%edx),%r8 + BLCFILL (%r12,%rsi),%rsp + BLCFILL (%r13d,%r13d,2),%r8 + BLCFILL (%rax),%rbp + BLCFILL (%r9),%r15 + BLCFILL %r11,%rcx + BLCI %r15d,%eax + BLCI (%rdx),%r15d + BLCI %eax,%r10d + BLCI (%edi),%r8d + BLCI (%r13d),%edx + BLCI (%edx),%r11d + BLCI 0x937(,%eax),%r12d + BLCI (%r9),%ecx + BLCI (%r9d),%esp + BLCI %edx,%esi + BLCI %ebp,%r14d + BLCI %ebx,%eax + BLCI (%rax),%r8d + BLCI (,%r14d,2),%edi + BLCI (%rbx),%eax + BLCI 0x434CA331(%r9d,%r14d),%r9d + BLCI (%ebx),%r11 + BLCI (%r15),%rax + BLCI (%r12d,%ebx,8),%r15 + BLCI %r15,%rbp + BLCI -0x0(%ebx,%esi),%rsp + BLCI %r12,%rcx + BLCI (%r9),%rdi + BLCI (%r12d,%edi,1),%rbx + BLCI 0x5B19(,%rdx,8),%r15 + BLCI (,%eax,8),%r10 + BLCI (%rbx),%r8 + BLCI -0xF5(%eax,%edx,2),%r9 + BLCI (%r13),%r14 + BLCI %rbp,%rax + BLCI (%eax),%r13 + BLCI (%r12),%rdx + BLCIC (%r14d,%eax,8),%r15d + BLCIC %r15d,%eax + BLCIC (%r9),%r8d + BLCIC (%r9,%rbx,2),%r9d + BLCIC (%ebx),%esi + BLCIC -0x2(,%eax),%ebp + BLCIC (%rax),%ebx + BLCIC (%r11),%edi + BLCIC %eax,%r11d + BLCIC (%r14),%r12d + BLCIC %r11d,%eax + BLCIC 0x141AD0A7(,%r11),%r15d + BLCIC (%rax,%r9,4),%r13d + BLCIC (%rbx),%r15d + BLCIC (%r15d,%r15d),%r10d + BLCIC (%r9d),%edx + BLCIC 0x59D3CBB3(,%r13d,1),%rcx + BLCIC %r14,%rax + BLCIC (%r12d),%r15 + BLCIC %rax,%r14 + BLCIC %r15,%rbp + BLCIC (%rbx),%rsp + BLCIC %rbx,%rdx + BLCIC %r8,%rdi + BLCIC (%r9),%rsi + BLCIC 0xDBDB(,%rax,8),%rdi + BLCIC %r10,%rbx + BLCIC (%ebx),%r11 + BLCIC %r13,%r9 + BLCIC (%r8),%rax + BLCIC 0xDEAD(%r10,%r10,1),%r12 + BLCIC (%edx,%eax),%rcx + BLCMSK (%ecx),%r15d + BLCMSK %ebp,%eax + BLCMSK (%ebx),%edi + BLCMSK %eax,%edx + BLCMSK (,%r10,8),%r13d + BLCMSK (%r9),%r9d + BLCMSK (%r10),%r12d + BLCMSK %ecx,%ebx + BLCMSK (%edx),%eax + BLCMSK %esi,%r11d + BLCMSK (,%r14,4),%r15d + BLCMSK %r15d,%eax + BLCMSK 0xF35F(%r14d),%r14d + BLCMSK (%r8d,%esi,1),%r8d + BLCMSK (%r12,%rdx),%esp + BLCMSK (%r8d),%r10d + BLCMSK 0x0(,%r13d),%r12 + BLCMSK %r15,%rbx + BLCMSK %rax,%r15 + BLCMSK 0x3(,%r9d,1),%r8 + BLCMSK -0xCAFE(%r9,%r15,2),%rbp + BLCMSK (%r13),%rsp + BLCMSK (%rdx),%rax + BLCMSK (%r12),%r13 + BLCMSK -0x7(,%rdx,8),%rdx + BLCMSK (%r11),%r14 + BLCMSK %r14,%r9 + BLCMSK (%rcx),%r11 + BLCMSK (%r14d),%rax + BLCMSK (,%rax,8),%rdi + BLCMSK (%r15d),%r13 + BLCMSK (%ebx,%esi),%r14 + BLCS (%rax),%r15d + BLCS 0x1(,%r8d,1),%r8d + BLCS %r10d,%ecx + BLCS %r15d,%r10d + BLCS %r11d,%eax + BLCS -0x7E972365(%ecx),%edi + BLCS (%esi),%r14d + BLCS -0x3(%r10),%r11d + BLCS (%rdi),%esp + BLCS (%r15d),%ebx + BLCS (%r9,%rsi,4),%r13d + BLCS 0x0(%r9,%rbx,1),%r9d + BLCS (%eax,%ecx),%r15d + BLCS %ebx,%esi + BLCS %esi,%eax + BLCS %edi,%r12d + BLCS %rdi,%rax + BLCS (%rax),%r12 + BLCS %r15,%r15 + BLCS %r10,%rcx + BLCS (%eax),%r13 + BLCS %rax,%r8 + BLCS -0x1(%edx),%rdi + BLCS %rbx,%r11 + BLCS (,%eax,2),%rsp + BLCS (%r9,%r13),%r10 + BLCS 0x1DCF(,%r8d,1),%r14 + BLCS (,%r15d,4),%r15 + BLCS (%r9),%rbp + BLCS (%r13d,%eax),%rdx + BLCS %r12,%rsp + BLCS (%rdi),%rbx + BLSFILL (%esi),%edx + BLSFILL (%r9),%eax + BLSFILL (%ebx),%r15d + BLSFILL %eax,%r11d + BLSFILL (%r12),%r8d + BLSFILL -0x5582(,%r9d),%r15d + BLSFILL %esp,%eax + BLSFILL (,%r12d,2),%ebp + BLSFILL (%r8d),%ebx + BLSFILL (%eax),%esp + BLSFILL 0x4F03(,%r11),%r12d + BLSFILL 0xF(,%r10d),%eax + BLSFILL (%r15d),%edi + BLSFILL 0x228F(,%rsi,1),%ecx + BLSFILL (%ecx),%esi + BLSFILL %r8d,%r13d + BLSFILL -0xC(,%eax,4),%r15 + BLSFILL %rax,%r12 + BLSFILL %rdx,%rax + BLSFILL (%r9),%rbp + BLSFILL (%edi),%rbx + BLSFILL %r15,%r9 + BLSFILL %rbx,%rsp + BLSFILL (%r15),%rax + BLSFILL 0x56B9(%edi,%edi),%r10 + BLSFILL -0x2BD1(%r12d,%esi,4),%rcx + BLSFILL (%r11),%rsp + BLSFILL %r13,%r8 + BLSFILL (%ebx,%eax,2),%rax + BLSFILL (%ebx),%rax + BLSFILL (%rbx,%rdx),%r11 + BLSFILL 0x2FDC(%r13),%rsi + BLSIC %r11d,%r15d + BLSIC -0x799F(,%rsi),%ebp + BLSIC %r15d,%eax + BLSIC -0x0(%rax,%r10,1),%ecx + BLSIC %eax,%r10d + BLSIC (%r13d),%r9d + BLSIC (%r9),%ebx + BLSIC (%ebx),%esp + BLSIC (%r12d),%r11d + BLSIC 0xBCFE(,%rdi,1),%edx + BLSIC (%r14d),%edi + BLSIC 0x78EC(,%r13d),%r15d + BLSIC (%r11d),%esi + BLSIC (%r10),%r14d + BLSIC (%r9d),%r15d + BLSIC %r10d,%r15d + BLSIC %r15,%rax + BLSIC 0x67(,%rax),%r9 + BLSIC (%r8d,%r12d),%rdx + BLSIC (%r15d),%r15 + BLSIC %r9,%rcx + BLSIC %r10,%rdi + BLSIC 0x3FFFFFFF(,%r8),%rbx + BLSIC %rdx,%r15 + BLSIC (%rax),%rsi + BLSIC 0x0(%r15d),%rax + BLSIC (%rbx),%r15 + BLSIC %rax,%r8 + BLSIC (%ebx),%rax + BLSIC %rcx,%r14 + BLSIC (%r15d,%eax,1),%rsi + BLSIC %r13,%r12 + T1MSKC -0x3(%rsi),%r15d + T1MSKC %r15d,%r12d + T1MSKC (%r12),%r9d + T1MSKC %esi,%eax + T1MSKC -0x2(%r10d),%esp + T1MSKC (,%eax,2),%r13d + T1MSKC %eax,%esi + T1MSKC (%r12d),%eax + T1MSKC 0xF59C(,%rbx),%r10d + T1MSKC (,%eax,4),%r11d + T1MSKC (%ebx),%r8d + T1MSKC %edi,%ebx + T1MSKC (%edx),%r14d + T1MSKC (%r11d),%r15d + T1MSKC (%esi),%ecx + T1MSKC (%r9,%r13),%edi + T1MSKC 0x3FFFFFFF(%r14),%rsp + T1MSKC %rax,%rax + T1MSKC (%r8),%rbx + T1MSKC (%r12d,%edi),%rdi + T1MSKC %r11,%rcx + T1MSKC (%r13),%r14 + T1MSKC 0xDEAD(,%eax,8),%rdx + T1MSKC %r15,%r15 + T1MSKC (%r15),%rbp + T1MSKC %rsp,%r9 + T1MSKC (%rdx),%rsi + T1MSKC %r10,%r10 + T1MSKC (%r9d),%r13 + T1MSKC %rbx,%rax + T1MSKC (%r9),%rax + T1MSKC (%r8d),%r10 + TZMSK %ebx,%r10d + TZMSK (%r9),%eax + TZMSK (%rdx),%r15d + TZMSK %ebp,%r12d + TZMSK %r10d,%r13d + TZMSK %r15d,%r15d + TZMSK -0xCAFE(%r11,%r9,1),%ebx + TZMSK 0x1(%esi,%r13d),%edx + TZMSK (%r11d),%r14d + TZMSK (%ecx,%r12d,4),%ecx + TZMSK (%eax),%r9d + TZMSK -0x6(%rax),%r8d + TZMSK %edi,%esi + TZMSK %eax,%r15d + TZMSK -0xF(%rcx,%rax,1),%ebp + TZMSK (%r15d),%r11d + TZMSK 0xDEAD(,%ebx,8),%rdx + TZMSK -0x8(,%edx),%r15 + TZMSK %rsp,%rax + TZMSK (%r9d),%r8 + TZMSK %rax,%r12 + TZMSK %r15,%rbp + TZMSK (%r9,%r9,8),%r12 + TZMSK (%edi,%ebx,4),%r13 + TZMSK %rdi,%rdi + TZMSK (%ebx),%rax + TZMSK (%rsi),%rsp + TZMSK -0xCAFE(%r8),%rcx + TZMSK 0x3C98(%r10d,%eax),%r14 + TZMSK (%r11d),%r15 + TZMSK %rsi,%rsi + TZMSK -0xDEAD(,%r8),%r9 + diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index bd88388..02c92c8 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,65 @@ +2011-01-04 Quentin Neill + + * i386-dis.c (REG_XOP_TBM_01): New. + (REG_XOP_TBM_02): New. + (reg_table): Add REG_XOP_TBM_01 and REG_XOP_TBM_02 tables. + (xop_table): Redirect to REG_XOP_TBM_01 and REG_XOP_TBM_02 + entries, and add bextr instruction. + * i386-gen.c (cpu_flag_init): Add CPU_TBM_FLAGS, CpuTBM. + (cpu_flags): Add CpuTBM. + * i386-opc.h (CpuTBM) New. + (i386_cpu_flags): Add bit cputbm. + + * i386-opc.tbl (bextr): Added. + (bextr): Added. + (blcfill): Added. + (blci): Added. + (blcic): Added. + (blcmsk): Added. + (blcs): Added. + (blsfill): Added. + (blsic): Added. + (t1mskc): Added. + (tzmsk): Added. + + * i386-init.h: Regenerated. + + * i386-tbl.h: Regenerated + +2011-01-04 Quentin Neill + + * i386-dis.c (REG_XOP_BMI_F3): New. + (PREFIX_BMI_F30F): New. + (dis386_twobyte): Redirect to PREFIX_BMI_F30F entry. + (reg_table): Add REG_XOP_BMI_F3 table. + (prefix_table): Add PREFIX_BMI_F30F table. + (x86_64_table): Add andn, bextr, and redirect to + REG_XOP_BMI_F3 entry. + + * i386-gen.c (cpu_flag_init): Add CPU_BMI_FLAGS, CpuBMI. + (cpu_flags): Add CpuBMI. + + * i386-opc.h (CpuBMI): New. + (i386_cpu_flags): Add bit cpubmi. + (VEXLWP): Rename to VEXVRM. + (XOP2REVSOURCESS): New VexSources encoding. + + * i386-opc.tbl (andn): Added. + (andn): Added. + (bextr): Added. + (bextr): Added. + (blsi): Added. + (blsi): Added. + (blsmsk): Added. + (blsmsk): Added. + (blsr): Added. + (blsr): Added. + (tzcnt): Added. + + * i386-init.h: Regenerated. + + * i386-tbl.h: Regenerated + 2011-01-01 H.J. Lu * i386-gen.c (process_copyright): Update copyright to 2011. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 0c807ba..2d9244b 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -599,7 +599,10 @@ enum REG_VEX_0F73, REG_VEX_0FAE, REG_XOP_LWPCB, - REG_XOP_LWP + REG_XOP_LWP, + REG_XOP_BMI_F3, + REG_XOP_TBM_01, + REG_XOP_TBM_02, }; enum @@ -1068,7 +1071,8 @@ enum PREFIX_VEX_0F3A7D, PREFIX_VEX_0F3A7E, PREFIX_VEX_0F3A7F, - PREFIX_VEX_0F3ADF + PREFIX_VEX_0F3ADF, + PREFIX_BMI_F30F }; enum @@ -2158,7 +2162,7 @@ static const struct dis386 dis386_twobyte[] = { { "ud1", { XX } }, { REG_TABLE (REG_0FBA) }, { "btcS", { Ev, Gv } }, - { "bsfS", { Gv, Ev } }, + { PREFIX_TABLE (PREFIX_BMI_F30F) }, { PREFIX_TABLE (PREFIX_0FBD) }, { "movs{bR|x}", { Gv, Eb } }, { "movs{wR|x}", { Gv, Ew } }, /* yes, there really is movsww ! */ @@ -2759,6 +2763,35 @@ static const struct dis386 reg_table[][8] = { { "lwpins", { { OP_LWP_E, 0 }, Ed, Iq } }, { "lwpval", { { OP_LWP_E, 0 }, Ed, Iq } }, }, + /* REG_XOP_BMI_F3 */ + { + { Bad_Opcode }, + { "blsr", { { OP_LWP_E, 0 }, Ev } }, + { "blsmsk", { { OP_LWP_E, 0 }, Ev } }, + { "blsi", { { OP_LWP_E, 0 }, Ev } }, + }, + /* REG_XOP_TBM_01 */ + { + { Bad_Opcode }, + { "blcfill", { { OP_LWP_E, 0 }, Ev } }, + { "blsfill", { { OP_LWP_E, 0 }, Ev } }, + { "blcs", { { OP_LWP_E, 0 }, Ev } }, + { "tzmsk", { { OP_LWP_E, 0 }, Ev } }, + { "blcic", { { OP_LWP_E, 0 }, Ev } }, + { "blsic", { { OP_LWP_E, 0 }, Ev } }, + { "t1mskc", { { OP_LWP_E, 0 }, Ev } }, + }, + /* REG_XOP_TBM_02 */ + { + { Bad_Opcode }, + { "blcmsk", { { OP_LWP_E, 0 }, Ev } }, + { Bad_Opcode }, + { Bad_Opcode }, + { Bad_Opcode }, + { Bad_Opcode }, + { "blci", { { OP_LWP_E, 0 }, Ev } }, + }, + }; static const struct dis386 prefix_table[][4] = { @@ -5354,6 +5387,14 @@ static const struct dis386 prefix_table[][4] = { { Bad_Opcode }, { VEX_LEN_TABLE (VEX_LEN_0F3ADF_P_2) }, }, + + /* PREFIX_BMI_F30F */ + { + { "bsfS", { Gv, Ev } }, + { "tzcntS", { Gv, Ev } }, + { "bsfS", { Gv, Ev } }, + { "tzcntS", { Gv, Ev } }, + }, }; static const struct dis386 x86_64_table[][2] = { @@ -6681,8 +6722,8 @@ static const struct dis386 xop_table[][256] = { { /* 00 */ { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { REG_TABLE (REG_XOP_TBM_01) }, + { REG_TABLE (REG_XOP_TBM_02) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -6989,7 +7030,7 @@ static const struct dis386 xop_table[][256] = { { Bad_Opcode }, { Bad_Opcode }, /* 10 */ - { Bad_Opcode }, + { "bextr", { Gv, Ev, Iq } }, { Bad_Opcode }, { REG_TABLE (REG_XOP_LWP) }, { Bad_Opcode }, @@ -7828,12 +7869,12 @@ static const struct dis386 vex_table[][256] = { /* f0 */ { Bad_Opcode }, { Bad_Opcode }, + { "andn", { Gv, { OP_LWP_E, 0 }, Ev } }, + { REG_TABLE (REG_XOP_BMI_F3) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, - { Bad_Opcode }, + { "bextr", { Gv, Ev, { OP_LWP_E, 0 } } }, /* f8 */ { Bad_Opcode }, { Bad_Opcode }, diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c index 81e51dd..dd73329 100644 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -140,6 +140,10 @@ static initializer cpu_flag_init[] = "CpuMMX|CpuSSE|CpuSSE2|CpuSSE3|CpuSSSE3|CpuSSE4_1|CpuSSE4_2|CpuSSE4a|CpuABM|CpuAVX|CpuFMA4|CpuXOP" }, { "CPU_LWP_FLAGS", "CpuLWP" }, + { "CPU_TBM_FLAGS", + "CpuTBM" }, + { "CPU_BMI_FLAGS", + "CpuBMI" }, { "CPU_MOVBE_FLAGS", "CpuMovbe" }, { "CPU_RDTSCP_FLAGS", @@ -320,6 +324,8 @@ static bitfield cpu_flags[] = BITFIELD (CpuFMA4), BITFIELD (CpuXOP), BITFIELD (CpuLWP), + BITFIELD (CpuTBM), + BITFIELD (CpuBMI), BITFIELD (CpuLM), BITFIELD (CpuMovbe), BITFIELD (CpuEPT), diff --git a/opcodes/i386-init.h b/opcodes/i386-init.h index fe546b6..758aab0 100644 Binary files a/opcodes/i386-init.h and b/opcodes/i386-init.h differ diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h index fe4fe97..06145d2 100644 --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -110,6 +110,10 @@ enum CpuXOP, /* LWP support required */ CpuLWP, + /* TBM support required */ + CpuTBM, + /* BMI support required */ + CpuBMI, /* MOVBE Instruction support required */ CpuMovbe, /* EPT Instructions required */ @@ -186,6 +190,8 @@ typedef union i386_cpu_flags unsigned int cpufma4:1; unsigned int cpuxop:1; unsigned int cpulwp:1; + unsigned int cputbm:1; + unsigned int cpubmi:1; unsigned int cpumovbe:1; unsigned int cpuept:1; unsigned int cpurdtscp:1; @@ -304,12 +310,12 @@ enum For assembler, there are no difference between VEX.NDS and VEX.DDS. 2. VEX.NDD. Register destination is encoded in VEX.vvvv. - 3. VEX.LWP. Register destination is encoded in VEX.vvvv and one + 3. VEX.VRM. Register destination is encoded in VEX.vvvv and one of the operands can access a memory location. */ #define VEXXDS 1 #define VEXNDD 2 -#define VEXLWP 3 +#define VEXVRM 3 VexVVVV, /* How the VEX.W bit is used: 0: Set by the REX.W bit. @@ -338,9 +344,11 @@ enum 0: <= 2 source operands. 1: 2 XOP source operands. 2: 3 source operands. + 3: 2 XOP source operands but order reversed. */ #define XOP2SOURCES 1 #define VEX3SOURCES 2 +#define XOP2REVSOURCES 3 VexSources, /* instruction has VEX 8 bit imm */ VexImmExt, diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index f63919e..678cd1f 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -2733,6 +2733,41 @@ lwpval, 3, 0x12, 0x1, 1, CpuLWP, Modrm|VexOpcode=5|VexW=2|IgnoreSize|No_bSuf|No_ lwpins, 3, 0x12, 0x0, 1, CpuLWP, Modrm|VexOpcode=5|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexVVVV=3|Vex, { Imm32|Imm32S, Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } lwpins, 3, 0x12, 0x0, 1, CpuLWP, Modrm|VexOpcode=5|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|VexVVVV=3|NoRex64|Vex, { Imm32|Imm32S, Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +// TBM instructions +bextr, 3, 0x10, None, 1, CpuTBM, Modrm|VexOpcode=5|VexW=1|Vex|VexSources=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm32|Imm32S, Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +bextr, 3, 0x10, None, 1, CpuTBM, Modrm|VexOpcode=5|VexW=2|Vex|VexSources=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm32|Imm32S, Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +blcfill, 2, 0x01, 0x1, 1, CpuTBM, Modrm|VexOpcode=4|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +blcfill, 2, 0x01, 0x1, 1, CpuTBM, Modrm|VexOpcode=4|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +blci, 2, 0x02, 0x6, 1, CpuTBM, Modrm|VexOpcode=4|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +blci, 2, 0x02, 0x6, 1, CpuTBM, Modrm|VexOpcode=4|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +blcic, 2, 0x01, 0x5, 1, CpuTBM, Modrm|VexOpcode=4|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +blcic, 2, 0x01, 0x5, 1, CpuTBM, Modrm|VexOpcode=4|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +blcmsk, 2, 0x02, 0x1, 1, CpuTBM, Modrm|VexOpcode=4|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +blcmsk, 2, 0x02, 0x1, 1, CpuTBM, Modrm|VexOpcode=4|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +blcs, 2, 0x01, 0x3, 1, CpuTBM, Modrm|VexOpcode=4|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +blcs, 2, 0x01, 0x3, 1, CpuTBM, Modrm|VexOpcode=4|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +blsfill, 2, 0x01, 0x2, 1, CpuTBM, Modrm|VexOpcode=4|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +blsfill, 2, 0x01, 0x2, 1, CpuTBM, Modrm|VexOpcode=4|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +blsic, 2, 0x01, 0x6, 1, CpuTBM, Modrm|VexOpcode=4|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +blsic, 2, 0x01, 0x6, 1, CpuTBM, Modrm|VexOpcode=4|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +t1mskc, 2, 0x01, 0x7, 1, CpuTBM, Modrm|VexOpcode=4|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +t1mskc, 2, 0x01, 0x7, 1, CpuTBM, Modrm|VexOpcode=4|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +tzmsk, 2, 0x01, 0x4, 1, CpuTBM, Modrm|VexOpcode=4|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +tzmsk, 2, 0x01, 0x4, 1, CpuTBM, Modrm|VexOpcode=4|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } + +// BMI instructions +andn, 3, 0xF2, None, 1, CpuBMI, Modrm|VexOpcode=1|VexW=1|VexVVVV=3|Vex|VexSources=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32, Reg32 } +andn, 3, 0xF2, None, 1, CpuBMI, Modrm|VexOpcode=1|VexW=2|VexVVVV=3|Vex|VexSources=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64, Reg64 } +bextr, 3, 0xF7, None, 1, CpuBMI, Modrm|VexOpcode=1|VexW=1|VexVVVV=3|Vex|VexSources=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg32, Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +bextr, 3, 0xF7, None, 1, CpuBMI, Modrm|VexOpcode=1|VexW=2|VexVVVV=3|Vex|VexSources=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Reg64, Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +blsi, 2, 0xF3, 0x3, 1, CpuBMI, Modrm|VexOpcode=1|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +blsi, 2, 0xF3, 0x3, 1, CpuBMI, Modrm|VexOpcode=1|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +blsmsk, 2, 0xF3, 0x2, 1, CpuBMI, Modrm|VexOpcode=1|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +blsmsk, 2, 0xF3, 0x2, 1, CpuBMI, Modrm|VexOpcode=1|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +blsr, 2, 0xF3, 0x1, 1, CpuBMI, Modrm|VexOpcode=1|VexW=1|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Reg32|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg32 } +blsr, 2, 0xF3, 0x1, 1, CpuBMI, Modrm|VexOpcode=1|VexW=2|VexVVVV=3|Vex|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Dword|Reg64|Disp8|Disp16|Disp32|Disp32S|Unspecified|BaseIndex, Reg64 } +tzcnt, 2, 0xf30fbc, None, 2, CpuBMI, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg64|Word|Dword|Qword|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg16|Reg32|Reg64 } + // AMD 3DNow! instructions. prefetch, 1, 0xf0d, 0x0, 2, Cpu3dnow, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Byte|Unspecified|BaseIndex|Disp8|Disp16|Disp32|Disp32S } diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h index 5c4e7e8..07f4380 100644 Binary files a/opcodes/i386-tbl.h and b/opcodes/i386-tbl.h differ