From 87973e9f82d516acbf4f484ba56febe17a3b312d Mon Sep 17 00:00:00 2001 From: Quentin Neill Date: Fri, 7 Jan 2011 17:44:30 +0000 Subject: [PATCH] Add docs and arch tests to BMI. gas/ 2011-01-07 Quentin Neill * config/tc-i386.c (cpu_arch): Add CPU_BMI_FLAGS. * doc/c-i386.texi (i386-BMI): New section. gas/testsuite/ 2011-01-07 Quentin Neill * 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. --- gas/ChangeLog | 6 ++++++ gas/config/tc-i386.c | 2 ++ gas/doc/c-i386.texi | 16 ++++++++++++++++ gas/testsuite/ChangeLog | 11 +++++++++++ gas/testsuite/gas/i386/arch-10-1.l | 3 +++ gas/testsuite/gas/i386/arch-10-2.l | 3 +++ gas/testsuite/gas/i386/arch-10-3.l | 3 +++ gas/testsuite/gas/i386/arch-10-4.l | 3 +++ gas/testsuite/gas/i386/arch-10.d | 3 ++- gas/testsuite/gas/i386/arch-10.s | 2 ++ gas/testsuite/gas/i386/x86-64-arch-2.d | 3 ++- gas/testsuite/gas/i386/x86-64-arch-2.s | 2 ++ 12 files changed, 55 insertions(+), 2 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 3177aa5f301..9d3d46e9f6c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2011-01-07 Quentin Neill + + * config/tc-i386.c (cpu_arch): Add CPU_BMI_FLAGS. + + * doc/c-i386.texi (i386-BMI): New section. + 2011-01-06 Paul Koning * config/tc-pdp11.c (parse_op_no_deferred): Allow PC-relative diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 2e28d8e041f..6f30dda133b 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -725,6 +725,8 @@ 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 }, }; #ifdef I386COFF diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi index 5c1c6bda186..4ea33f6db51 100644 --- a/gas/doc/c-i386.texi +++ b/gas/doc/c-i386.texi @@ -35,6 +35,7 @@ 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-BMI:: Bit Manipulation Instruction * i386-16bit:: Writing 16-bit Code * i386-Arch:: Specifying an x86 CPU architecture * i386-Bugs:: AT&T Syntax bugs @@ -845,6 +846,21 @@ 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-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 when available. + + @node i386-16bit @section Writing 16-bit Code diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 4cef296de3c..6f60a1ad067 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2011-01-07 Quentin Neill + + * 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-06 Paul Koning * gas/pdp11/pdp11.exp: Add run of absreloc. diff --git a/gas/testsuite/gas/i386/arch-10-1.l b/gas/testsuite/gas/i386/arch-10-1.l index 0b78958dbcb..ee1e31649ca 100644 --- a/gas/testsuite/gas/i386/arch-10-1.l +++ b/gas/testsuite/gas/i386/arch-10-1.l @@ -29,6 +29,7 @@ .*:58: Error: .* .*:60: Error: .* .*:62: Error: .* +.*:64: Error: .* GAS LISTING .* @@ -98,3 +99,5 @@ GAS LISTING .* [ ]*60[ ]+xstorerng [ ]*61[ ]+\# nop [ ]*62[ ]+nopl \(%eax\) +[ ]*63[ ]+\# BMI +[ ]*64[ ]+blsr %ecx,%ebx diff --git a/gas/testsuite/gas/i386/arch-10-2.l b/gas/testsuite/gas/i386/arch-10-2.l index d9e1b5169a6..f1abcea258a 100644 --- a/gas/testsuite/gas/i386/arch-10-2.l +++ b/gas/testsuite/gas/i386/arch-10-2.l @@ -28,6 +28,7 @@ .*:58: Error: .* .*:60: Error: .* .*:62: Error: .* +.*:64: Error: .* GAS LISTING .* @@ -97,3 +98,5 @@ GAS LISTING .* [ ]*60[ ]+xstorerng [ ]*61[ ]+\# nop [ ]*62[ ]+nopl \(%eax\) +[ ]*63[ ]+\# BMI +[ ]*64[ ]+blsr %ecx,%ebx diff --git a/gas/testsuite/gas/i386/arch-10-3.l b/gas/testsuite/gas/i386/arch-10-3.l index 75c07ec16b3..0b5d36241fd 100644 --- a/gas/testsuite/gas/i386/arch-10-3.l +++ b/gas/testsuite/gas/i386/arch-10-3.l @@ -21,6 +21,7 @@ .*:58: Error: .* .*:60: Error: .* .*:62: Error: .* +.*:64: Error: .* GAS LISTING .* @@ -93,3 +94,5 @@ GAS LISTING .* [ ]*60[ ]+xstorerng [ ]*61[ ]+\# nop [ ]*62[ ]+nopl \(%eax\) +[ ]*63[ ]+\# BMI +[ ]*64[ ]+blsr %ecx,%ebx diff --git a/gas/testsuite/gas/i386/arch-10-4.l b/gas/testsuite/gas/i386/arch-10-4.l index 3c40045be10..8cca6034d2b 100644 --- a/gas/testsuite/gas/i386/arch-10-4.l +++ b/gas/testsuite/gas/i386/arch-10-4.l @@ -19,6 +19,7 @@ .*:58: Error: .* .*:60: Error: .* .*:62: Error: .* +.*:64: Error: .* GAS LISTING .* @@ -91,3 +92,5 @@ GAS LISTING .* [ ]*60[ ]+xstorerng [ ]*61[ ]+\# nop [ ]*62[ ]+nopl \(%eax\) +[ ]*63[ ]+\# BMI +[ ]*64[ ]+blsr %ecx,%ebx diff --git a/gas/testsuite/gas/i386/arch-10.d b/gas/testsuite/gas/i386/arch-10.d index 3efd52dd4c4..2225fe07b40 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+bmi #objdump: -dw #name: i386 arch 10 @@ -37,4 +37,5 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 0f bd d9 lzcnt %ecx,%ebx [ ]*[a-f0-9]+: 0f a7 c0 xstore-rng [ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\) +[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx #pass diff --git a/gas/testsuite/gas/i386/arch-10.s b/gas/testsuite/gas/i386/arch-10.s index d0fb12b4dc9..f39f70ba006 100644 --- a/gas/testsuite/gas/i386/arch-10.s +++ b/gas/testsuite/gas/i386/arch-10.s @@ -60,3 +60,5 @@ lzcnt %ecx,%ebx xstorerng # nop nopl (%eax) +# BMI +blsr %ecx,%ebx diff --git a/gas/testsuite/gas/i386/x86-64-arch-2.d b/gas/testsuite/gas/i386/x86-64-arch-2.d index 9cd13066025..ac094533c85 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+bmi #objdump: -dw #name: x86-64 arch 2 @@ -36,4 +36,5 @@ 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]+: 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 ddc0d40451b..962f15eb767 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2.s +++ b/gas/testsuite/gas/i386/x86-64-arch-2.s @@ -58,3 +58,5 @@ vmload lzcnt %ecx,%ebx # PadLock xstorerng +# BMI +blsr %ecx,%ebx -- 2.30.2