From 2875b28aa871395dc17182f0bacfe40a68b1ad05 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 14 Jul 2020 10:25:43 +0200 Subject: [PATCH] x86: avoid attaching suffix to register-only CRC32 Just like other insns with GPR operands, CRC32 with only register operands should not get a suffix added unless in suffix-always mode. Do away with CRC32_Fixup() altogether, using other more generic logic instead. --- gas/ChangeLog | 31 ++++++++ gas/testsuite/gas/i386/arch-10-bdver1.d | 39 +--------- gas/testsuite/gas/i386/arch-10-bdver2.d | 39 +--------- gas/testsuite/gas/i386/arch-10-bdver3.d | 39 +--------- gas/testsuite/gas/i386/arch-10-bdver4.d | 39 +--------- gas/testsuite/gas/i386/arch-10-btver1.d | 39 +--------- gas/testsuite/gas/i386/arch-10-btver2.d | 39 +--------- gas/testsuite/gas/i386/arch-10-lzcnt.d | 39 +--------- gas/testsuite/gas/i386/arch-10-prefetchw.d | 39 +--------- gas/testsuite/gas/i386/arch-10.d | 2 +- gas/testsuite/gas/i386/arch-2.d | 2 +- gas/testsuite/gas/i386/arch-3.d | 14 +--- gas/testsuite/gas/i386/arch-5.d | 2 +- gas/testsuite/gas/i386/arch-6.d | 2 +- gas/testsuite/gas/i386/crc32-suffix.d | 25 ++++++ gas/testsuite/gas/i386/crc32.d | 18 ++--- gas/testsuite/gas/i386/i386.exp | 2 + gas/testsuite/gas/i386/sse-noavx.d | 2 +- gas/testsuite/gas/i386/sse4_2.d | 24 +++--- gas/testsuite/gas/i386/x86-64-arch-2-bdver1.d | 39 +--------- gas/testsuite/gas/i386/x86-64-arch-2-bdver2.d | 39 +--------- gas/testsuite/gas/i386/x86-64-arch-2-bdver3.d | 39 +--------- gas/testsuite/gas/i386/x86-64-arch-2-bdver4.d | 39 +--------- gas/testsuite/gas/i386/x86-64-arch-2-btver1.d | 39 +--------- gas/testsuite/gas/i386/x86-64-arch-2-btver2.d | 39 +--------- gas/testsuite/gas/i386/x86-64-arch-2-lzcnt.d | 39 +--------- .../gas/i386/x86-64-arch-2-prefetchw.d | 39 +--------- gas/testsuite/gas/i386/x86-64-arch-2.d | 2 +- gas/testsuite/gas/i386/x86-64-crc32-suffix.d | 35 +++++++++ gas/testsuite/gas/i386/x86-64-crc32.d | 30 ++++---- gas/testsuite/gas/i386/x86-64-pseudos.d | 2 +- gas/testsuite/gas/i386/x86-64-sse-noavx.d | 2 +- gas/testsuite/gas/i386/x86-64-sse4_2.d | 20 ++--- opcodes/ChangeLog | 5 ++ opcodes/i386-dis.c | 77 +------------------ 35 files changed, 171 insertions(+), 750 deletions(-) create mode 100644 gas/testsuite/gas/i386/crc32-suffix.d create mode 100644 gas/testsuite/gas/i386/x86-64-crc32-suffix.d diff --git a/gas/ChangeLog b/gas/ChangeLog index 557e75fef48..5b44cce9ac1 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,34 @@ +2020-07-14 Jan Beulich + + * testsuite/gas/i386/crc32-suffix.d, + testsuite/gas/i386/x86-64-crc32-suffix.d: New. + * testsuite/gas/i386/i386.exp: Run new tests. + * testsuite/gas/i386/arch-10-bdver1.d, + testsuite/gas/i386/arch-10-bdver2.d, + testsuite/gas/i386/arch-10-bdver3.d, + testsuite/gas/i386/arch-10-bdver4.d, + testsuite/gas/i386/arch-10-btver1.d, + testsuite/gas/i386/arch-10-btver2.d, + testsuite/gas/i386/arch-10-lzcnt.d, + testsuite/gas/i386/arch-10-prefetchw.d, + testsuite/gas/i386/arch-10.d, testsuite/gas/i386/arch-2.d, + testsuite/gas/i386/arch-3.d, testsuite/gas/i386/arch-5.d, + testsuite/gas/i386/arch-6.d, testsuite/gas/i386/crc32.d, + testsuite/gas/i386/sse-noavx.d, testsuite/gas/i386/sse4_2.d, + testsuite/gas/i386/x86-64-arch-2-bdver1.d, + testsuite/gas/i386/x86-64-arch-2-bdver2.d, + testsuite/gas/i386/x86-64-arch-2-bdver3.d, + testsuite/gas/i386/x86-64-arch-2-bdver4.d, + testsuite/gas/i386/x86-64-arch-2-btver1.d, + testsuite/gas/i386/x86-64-arch-2-btver2.d, + testsuite/gas/i386/x86-64-arch-2-lzcnt.d, + testsuite/gas/i386/x86-64-arch-2-prefetchw.d, + testsuite/gas/i386/x86-64-arch-2.d, + testsuite/gas/i386/x86-64-crc32.d, + testsuite/gas/i386/x86-64-pseudos.d, + testsuite/gas/i386/x86-64-sse-noavx.d, + testsuite/gas/i386/x86-64-sse4_2.d: Adjust expectations. + 2020-07-14 Jan Beulich * testsuite/gas/i386/x86-64-pseudos.s: Add empty-REX tests for diff --git a/gas/testsuite/gas/i386/arch-10-bdver1.d b/gas/testsuite/gas/i386/arch-10-bdver1.d index 56ffef0be82..2ca88862fd9 100644 --- a/gas/testsuite/gas/i386/arch-10-bdver1.d +++ b/gas/testsuite/gas/i386/arch-10-bdver1.d @@ -2,41 +2,4 @@ #as: -march=bdver1+vmx+smx+xsaveopt+fma+movbe+ept+padlock+bmi+tbm #objdump: -dw #name: i386 arch 10 (bdver1) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%eax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%ecx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%ecx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%ecx\),%ebx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%esi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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]+: 0f 1f 00 nopl \(%eax\) -[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: arch-10.d diff --git a/gas/testsuite/gas/i386/arch-10-bdver2.d b/gas/testsuite/gas/i386/arch-10-bdver2.d index 3f5b7b683f6..c8681f2a91b 100644 --- a/gas/testsuite/gas/i386/arch-10-bdver2.d +++ b/gas/testsuite/gas/i386/arch-10-bdver2.d @@ -2,41 +2,4 @@ #as: -march=bdver2+vmx+smx+xsaveopt+movbe+ept+padlock #objdump: -dw #name: i386 arch 10 (bdver2) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%eax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%ecx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%ecx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%ecx\),%ebx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%esi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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]+: 0f 1f 00 nopl \(%eax\) -[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: arch-10.d diff --git a/gas/testsuite/gas/i386/arch-10-bdver3.d b/gas/testsuite/gas/i386/arch-10-bdver3.d index c52fc72775f..f788594386b 100644 --- a/gas/testsuite/gas/i386/arch-10-bdver3.d +++ b/gas/testsuite/gas/i386/arch-10-bdver3.d @@ -2,41 +2,4 @@ #as: -march=bdver3+vmx+smx+movbe+ept+padlock #objdump: -dw #name: i386 arch 10 (bdver3) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%eax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%ecx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%ecx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%ecx\),%ebx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%esi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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]+: 0f 1f 00 nopl \(%eax\) -[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: arch-10.d diff --git a/gas/testsuite/gas/i386/arch-10-bdver4.d b/gas/testsuite/gas/i386/arch-10-bdver4.d index 46ecfb259b4..e27282a77da 100644 --- a/gas/testsuite/gas/i386/arch-10-bdver4.d +++ b/gas/testsuite/gas/i386/arch-10-bdver4.d @@ -2,41 +2,4 @@ #as: -march=bdver4+vmx+smx+ept+padlock #objdump: -dw #name: i386 arch 10 (bdver4) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%eax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%ecx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%ecx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%ecx\),%ebx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%esi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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]+: 0f 1f 00 nopl \(%eax\) -[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: arch-10.d diff --git a/gas/testsuite/gas/i386/arch-10-btver1.d b/gas/testsuite/gas/i386/arch-10-btver1.d index d8155483865..2c4ed42b95e 100644 --- a/gas/testsuite/gas/i386/arch-10-btver1.d +++ b/gas/testsuite/gas/i386/arch-10-btver1.d @@ -2,41 +2,4 @@ #as: -march=btver1+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+movbe+ept+padlock+fma+bmi+tbm #objdump: -dw #name: i386 arch 10 (btver1) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%eax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%ecx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%ecx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%ecx\),%ebx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%esi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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]+: 0f 1f 00 nopl \(%eax\) -[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: arch-10.d diff --git a/gas/testsuite/gas/i386/arch-10-btver2.d b/gas/testsuite/gas/i386/arch-10-btver2.d index 49faaafc728..4b72131d2ad 100644 --- a/gas/testsuite/gas/i386/arch-10-btver2.d +++ b/gas/testsuite/gas/i386/arch-10-btver2.d @@ -2,41 +2,4 @@ #as: -march=btver2+smx+vmx+ept+padlock+fma+tbm #objdump: -dw #name: i386 arch 10 (btver2) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%eax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%ecx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%ecx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%ecx\),%ebx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%esi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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]+: 0f 1f 00 nopl \(%eax\) -[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: arch-10.d diff --git a/gas/testsuite/gas/i386/arch-10-lzcnt.d b/gas/testsuite/gas/i386/arch-10-lzcnt.d index a1e040d28a2..d772085ed06 100644 --- a/gas/testsuite/gas/i386/arch-10-lzcnt.d +++ b/gas/testsuite/gas/i386/arch-10-lzcnt.d @@ -2,41 +2,4 @@ #as: -march=i686+nop+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+lzcnt+padlock+bmi+tbm #objdump: -dw #name: i386 arch 10 (lzcnt) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%eax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%ecx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%ecx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%ecx\),%ebx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%esi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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]+: 0f 1f 00 nopl \(%eax\) -[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: arch-10.d diff --git a/gas/testsuite/gas/i386/arch-10-prefetchw.d b/gas/testsuite/gas/i386/arch-10-prefetchw.d index 8c88d94b449..2aaeb79a31c 100644 --- a/gas/testsuite/gas/i386/arch-10-prefetchw.d +++ b/gas/testsuite/gas/i386/arch-10-prefetchw.d @@ -2,41 +2,4 @@ #as: -march=i686+mmx+nop+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+ept+clflush+syscall+rdtscp+sse4a+svme+lzcnt+padlock+bmi+tbm+prfchw #objdump: -dw #name: i386 arch 10 (prefetchw) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%eax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%ecx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%ecx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%ecx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%ecx\),%ebx -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%ecx\),%ebx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%esi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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]+: 0f 1f 00 nopl \(%eax\) -[ ]*[a-f0-9]+: c4 e2 60 f3 c9 blsr %ecx,%ebx -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: arch-10.d diff --git a/gas/testsuite/gas/i386/arch-10.d b/gas/testsuite/gas/i386/arch-10.d index 52ea90a253e..f97698ea64d 100644 --- a/gas/testsuite/gas/i386/arch-10.d +++ b/gas/testsuite/gas/i386/arch-10.d @@ -16,7 +16,7 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 [ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 [ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx [ ]*[a-f0-9]+: c5 fc 77 vzeroall [ ]*[a-f0-9]+: 0f 01 c4 vmxoff [ ]*[a-f0-9]+: 0f 37 getsec diff --git a/gas/testsuite/gas/i386/arch-2.d b/gas/testsuite/gas/i386/arch-2.d index fa4e67c9382..93abe76dc5a 100644 --- a/gas/testsuite/gas/i386/arch-2.d +++ b/gas/testsuite/gas/i386/arch-2.d @@ -11,5 +11,5 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f 3a 08 c1 00 roundps \$0x0,%xmm1,%xmm0 [ ]*[a-f0-9]+: 66 0f 3a 0b c1 00 roundsd \$0x0,%xmm1,%xmm0 [ ]*[a-f0-9]+: 66 0f 3a 0a c1 00 roundss \$0x0,%xmm1,%xmm0 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx #pass diff --git a/gas/testsuite/gas/i386/arch-3.d b/gas/testsuite/gas/i386/arch-3.d index e60e0d1c9bd..f6773b63866 100644 --- a/gas/testsuite/gas/i386/arch-3.d +++ b/gas/testsuite/gas/i386/arch-3.d @@ -1,15 +1,3 @@ #objdump: -dw #name: i386 arch 3 - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 66 0f 38 17 c1 ptest %xmm1,%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 09 c1 00 roundpd \$0x0,%xmm1,%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 08 c1 00 roundps \$0x0,%xmm1,%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 0b c1 00 roundsd \$0x0,%xmm1,%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 0a c1 00 roundss \$0x0,%xmm1,%xmm0 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -#pass +#dump: arch-2.d diff --git a/gas/testsuite/gas/i386/arch-5.d b/gas/testsuite/gas/i386/arch-5.d index d1604c7b829..7b285c05013 100644 --- a/gas/testsuite/gas/i386/arch-5.d +++ b/gas/testsuite/gas/i386/arch-5.d @@ -7,5 +7,5 @@ Disassembly of section .text: 0+ <.text>: [ ]*[a-f0-9]+: f3 0f b8 d9 popcnt %ecx,%ebx -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx #pass diff --git a/gas/testsuite/gas/i386/arch-6.d b/gas/testsuite/gas/i386/arch-6.d index b55a5e3af9b..cd0d4456e8e 100644 --- a/gas/testsuite/gas/i386/arch-6.d +++ b/gas/testsuite/gas/i386/arch-6.d @@ -7,5 +7,5 @@ Disassembly of section .text: 0+ <.text>: [ ]*[a-f0-9]+: f3 0f b8 d9 popcnt %ecx,%ebx -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx #pass diff --git a/gas/testsuite/gas/i386/crc32-suffix.d b/gas/testsuite/gas/i386/crc32-suffix.d new file mode 100644 index 00000000000..5865b429ba1 --- /dev/null +++ b/gas/testsuite/gas/i386/crc32-suffix.d @@ -0,0 +1,25 @@ +#objdump: -dwMsuffix +#name: i386 crc32 w/ suffix +#source: crc32.s + +.*: file format .* + +Disassembly of section .text: + +0+ : +[ ]*[a-f0-9]+: f2 0f 38 f0 06 crc32b \(%esi\),%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 06 crc32w \(%esi\),%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 06 crc32l \(%esi\),%eax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f0 06 crc32b \(%esi\),%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 06 crc32w \(%esi\),%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 06 crc32l \(%esi\),%eax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax +#pass diff --git a/gas/testsuite/gas/i386/crc32.d b/gas/testsuite/gas/i386/crc32.d index a398a75f9a6..dd95b9f4001 100644 --- a/gas/testsuite/gas/i386/crc32.d +++ b/gas/testsuite/gas/i386/crc32.d @@ -9,16 +9,16 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f2 0f 38 f0 06 crc32b \(%esi\),%eax [ ]*[a-f0-9]+: 66 f2 0f 38 f1 06 crc32w \(%esi\),%eax [ ]*[a-f0-9]+: f2 0f 38 f1 06 crc32l \(%esi\),%eax -[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax -[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax -[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax -[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax -[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax -[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32 %al,%eax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32 %al,%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32 %ax,%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32 %ax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32 %eax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32 %eax,%eax [ ]*[a-f0-9]+: f2 0f 38 f0 06 crc32b \(%esi\),%eax [ ]*[a-f0-9]+: 66 f2 0f 38 f1 06 crc32w \(%esi\),%eax [ ]*[a-f0-9]+: f2 0f 38 f1 06 crc32l \(%esi\),%eax -[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax -[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax -[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32 %al,%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32 %ax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32 %eax,%eax #pass diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 27a425a7539..42d35779c6d 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -149,6 +149,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "sse4_2-intel" run_dump_test "crc32" run_dump_test "crc32-intel" + run_dump_test "crc32-suffix" run_list_test "inval-crc32" "-al" run_dump_test "simd" run_dump_test "simd-intel" @@ -777,6 +778,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_dump_test "x86-64-sse4_2-intel" run_dump_test "x86-64-crc32" run_dump_test "x86-64-crc32-intel" + run_dump_test "x86-64-crc32-suffix" run_list_test "x86-64-inval-crc32" "-al" run_dump_test "x86-64-simd" run_dump_test "x86-64-simd-intel" diff --git a/gas/testsuite/gas/i386/sse-noavx.d b/gas/testsuite/gas/i386/sse-noavx.d index d4229091509..6052c623495 100644 --- a/gas/testsuite/gas/i386/sse-noavx.d +++ b/gas/testsuite/gas/i386/sse-noavx.d @@ -7,7 +7,7 @@ Disassembly of section .text: 0+ <_start>: -[ ]*[a-f0-9]+: f2 0f 38 f0 d9 crc32b %cl,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f0 d9 crc32 %cl,%ebx [ ]*[a-f0-9]+: 66 0f 2d d3 cvtpd2pi %xmm3,%mm2 [ ]*[a-f0-9]+: 66 0f 2a d3 cvtpi2pd %mm3,%xmm2 [ ]*[a-f0-9]+: 0f 2a d3 cvtpi2ps %mm3,%xmm2 diff --git a/gas/testsuite/gas/i386/sse4_2.d b/gas/testsuite/gas/i386/sse4_2.d index 15e09f43266..b7f76d04712 100644 --- a/gas/testsuite/gas/i386/sse4_2.d +++ b/gas/testsuite/gas/i386/sse4_2.d @@ -6,15 +6,15 @@ Disassembly of section .text: 0+000 : -[ ]*[0-9a-f]+: f2 0f 38 f0 d9 crc32b %cl,%ebx -[ ]*[0-9a-f]+: 66 f2 0f 38 f1 d9 crc32w %cx,%ebx -[ ]*[0-9a-f]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx +[ ]*[0-9a-f]+: f2 0f 38 f0 d9 crc32 %cl,%ebx +[ ]*[0-9a-f]+: 66 f2 0f 38 f1 d9 crc32 %cx,%ebx +[ ]*[0-9a-f]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx [ ]*[0-9a-f]+: f2 0f 38 f0 19 crc32b \(%ecx\),%ebx [ ]*[0-9a-f]+: 66 f2 0f 38 f1 19 crc32w \(%ecx\),%ebx [ ]*[0-9a-f]+: f2 0f 38 f1 19 crc32l \(%ecx\),%ebx -[ ]*[0-9a-f]+: f2 0f 38 f0 d9 crc32b %cl,%ebx -[ ]*[0-9a-f]+: 66 f2 0f 38 f1 d9 crc32w %cx,%ebx -[ ]*[0-9a-f]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx +[ ]*[0-9a-f]+: f2 0f 38 f0 d9 crc32 %cl,%ebx +[ ]*[0-9a-f]+: 66 f2 0f 38 f1 d9 crc32 %cx,%ebx +[ ]*[0-9a-f]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx [ ]*[0-9a-f]+: 66 0f 38 37 01 pcmpgtq \(%ecx\),%xmm0 [ ]*[0-9a-f]+: 66 0f 38 37 c1 pcmpgtq %xmm1,%xmm0 [ ]*[0-9a-f]+: 66 0f 3a 61 01 00 pcmpestri \$0x0,\(%ecx\),%xmm0 @@ -33,15 +33,15 @@ Disassembly of section .text: [ ]*[0-9a-f]+: f3 0f b8 d9 popcnt %ecx,%ebx [ ]*[0-9a-f]+: 66 f3 0f b8 d9 popcnt %cx,%bx [ ]*[0-9a-f]+: f3 0f b8 d9 popcnt %ecx,%ebx -[ ]*[a-f0-9]+: f2 0f 38 f0 d9 crc32b %cl,%ebx -[ ]*[a-f0-9]+: 66 f2 0f 38 f1 d9 crc32w %cx,%ebx -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f0 d9 crc32 %cl,%ebx +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 d9 crc32 %cx,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx [ ]*[a-f0-9]+: f2 0f 38 f0 19 crc32b \(%ecx\),%ebx [ ]*[a-f0-9]+: 66 f2 0f 38 f1 19 crc32w \(%ecx\),%ebx [ ]*[a-f0-9]+: f2 0f 38 f1 19 crc32l \(%ecx\),%ebx -[ ]*[a-f0-9]+: f2 0f 38 f0 d9 crc32b %cl,%ebx -[ ]*[a-f0-9]+: 66 f2 0f 38 f1 d9 crc32w %cx,%ebx -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f0 d9 crc32 %cl,%ebx +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 d9 crc32 %cx,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx [ ]*[a-f0-9]+: 66 0f 38 37 01 pcmpgtq \(%ecx\),%xmm0 [ ]*[a-f0-9]+: 66 0f 38 37 c1 pcmpgtq %xmm1,%xmm0 [ ]*[a-f0-9]+: 66 0f 3a 61 01 00 pcmpestri \$0x0,\(%ecx\),%xmm0 diff --git a/gas/testsuite/gas/i386/x86-64-arch-2-bdver1.d b/gas/testsuite/gas/i386/x86-64-arch-2-bdver1.d index 12264f258c5..b08320d396a 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2-bdver1.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2-bdver1.d @@ -2,41 +2,4 @@ #as: -march=bdver1+vmx+smx+xsaveopt+fma+movbe+ept+padlock+bmi+tbm #objdump: -dw #name: x86-64 arch 2 (bdver1) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%rax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%rcx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%rcx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%rcx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%rcx\),%ebx -[ ]*[a-f0-9]+: 48 0f c7 0e cmpxchg16b \(%rsi\) -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%rcx\),%rbx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%rsi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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 -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: x86-64-arch-2.d diff --git a/gas/testsuite/gas/i386/x86-64-arch-2-bdver2.d b/gas/testsuite/gas/i386/x86-64-arch-2-bdver2.d index fe1e55b7581..4740a8ab42c 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2-bdver2.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2-bdver2.d @@ -2,41 +2,4 @@ #as: -march=bdver2+vmx+smx+xsaveopt+movbe+ept+padlock #objdump: -dw #name: x86-64 arch 2 (bdver2) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%rax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%rcx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%rcx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%rcx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%rcx\),%ebx -[ ]*[a-f0-9]+: 48 0f c7 0e cmpxchg16b \(%rsi\) -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%rcx\),%rbx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%rsi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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 -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: x86-64-arch-2.d diff --git a/gas/testsuite/gas/i386/x86-64-arch-2-bdver3.d b/gas/testsuite/gas/i386/x86-64-arch-2-bdver3.d index 57b237677aa..57b1fb4eba0 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2-bdver3.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2-bdver3.d @@ -2,41 +2,4 @@ #as: -march=bdver3+vmx+smx+movbe+ept+padlock #objdump: -dw #name: x86-64 arch 2 (bdver3) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%rax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%rcx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%rcx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%rcx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%rcx\),%ebx -[ ]*[a-f0-9]+: 48 0f c7 0e cmpxchg16b \(%rsi\) -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%rcx\),%rbx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%rsi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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 -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: x86-64-arch-2.d diff --git a/gas/testsuite/gas/i386/x86-64-arch-2-bdver4.d b/gas/testsuite/gas/i386/x86-64-arch-2-bdver4.d index 9625775a07c..c7a00f6040c 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2-bdver4.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2-bdver4.d @@ -2,41 +2,4 @@ #as: -march=bdver4+vmx+smx+ept+padlock #objdump: -dw #name: x86-64 arch 2 (bdver4) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%rax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%rcx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%rcx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%rcx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%rcx\),%ebx -[ ]*[a-f0-9]+: 48 0f c7 0e cmpxchg16b \(%rsi\) -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%rcx\),%rbx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%rsi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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 -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: x86-64-arch-2.d diff --git a/gas/testsuite/gas/i386/x86-64-arch-2-btver1.d b/gas/testsuite/gas/i386/x86-64-arch-2-btver1.d index fb654974e3e..1a25d66b6d0 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2-btver1.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2-btver1.d @@ -2,41 +2,4 @@ #as: -march=btver1+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+movbe+ept+padlock+fma+bmi+tbm #objdump: -dw #name: x86-64 arch 2 (btver1) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%rax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%rcx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%rcx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%rcx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%rcx\),%ebx -[ ]*[a-f0-9]+: 48 0f c7 0e cmpxchg16b \(%rsi\) -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%rcx\),%rbx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%rsi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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 -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: x86-64-arch-2.d diff --git a/gas/testsuite/gas/i386/x86-64-arch-2-btver2.d b/gas/testsuite/gas/i386/x86-64-arch-2-btver2.d index 028b7c1ac73..4ab9cceae08 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2-btver2.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2-btver2.d @@ -2,41 +2,4 @@ #as: -march=btver2+smx+vmx+ept+padlock+fma+tbm #objdump: -dw #name: x86-64 arch 2 (btver2) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%rax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%rcx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%rcx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%rcx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%rcx\),%ebx -[ ]*[a-f0-9]+: 48 0f c7 0e cmpxchg16b \(%rsi\) -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%rcx\),%rbx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%rsi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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 -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: x86-64-arch-2.d diff --git a/gas/testsuite/gas/i386/x86-64-arch-2-lzcnt.d b/gas/testsuite/gas/i386/x86-64-arch-2-lzcnt.d index 81c9dead4a0..eac5830dc0b 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2-lzcnt.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2-lzcnt.d @@ -2,41 +2,4 @@ #as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+cx16+ept+clflush+syscall+rdtscp+3dnowa+sse4a+svme+lzcnt+padlock+bmi+tbm #objdump: -dw #name: x86-64 arch 2 (lzcnt) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%rax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%rcx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%rcx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%rcx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%rcx\),%ebx -[ ]*[a-f0-9]+: 48 0f c7 0e cmpxchg16b \(%rsi\) -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%rcx\),%rbx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%rsi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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 -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: x86-64-arch-2.d diff --git a/gas/testsuite/gas/i386/x86-64-arch-2-prefetchw.d b/gas/testsuite/gas/i386/x86-64-arch-2-prefetchw.d index 35c1c961ccb..0e8c0739c87 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2-prefetchw.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2-prefetchw.d @@ -2,41 +2,4 @@ #as: -march=generic64+avx+vmx+smx+xsave+xsaveopt+aes+pclmul+fma+movbe+cx16+ept+clflush+syscall+rdtscp+sse4a+svme+lzcnt+padlock+bmi+tbm+prfchw #objdump: -dw #name: x86-64 arch 2 (prefetchw) - -.*: file format .* - -Disassembly of section .text: - -0+ <.text>: -[ ]*[a-f0-9]+: 0f 44 d8 cmove %eax,%ebx -[ ]*[a-f0-9]+: 0f ae 38 clflush \(%rax\) -[ ]*[a-f0-9]+: 0f 05 syscall -[ ]*[a-f0-9]+: 0f fc dc paddb %mm4,%mm3 -[ ]*[a-f0-9]+: f3 0f 58 dc addss %xmm4,%xmm3 -[ ]*[a-f0-9]+: f2 0f 58 dc addsd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 -[ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[a-f0-9]+: c5 fc 77 vzeroall -[ ]*[a-f0-9]+: 0f 01 c4 vmxoff -[ ]*[a-f0-9]+: 0f 37 getsec -[ ]*[a-f0-9]+: 0f 01 d0 xgetbv -[ ]*[a-f0-9]+: 0f ae 31 xsaveopt \(%rcx\) -[ ]*[a-f0-9]+: 66 0f 38 dc 01 aesenc \(%rcx\),%xmm0 -[ ]*[a-f0-9]+: 66 0f 3a 44 c1 08 pclmulqdq \$0x8,%xmm1,%xmm0 -[ ]*[a-f0-9]+: c4 e2 79 dc 11 vaesenc \(%rcx\),%xmm0,%xmm2 -[ ]*[a-f0-9]+: c4 e3 49 44 d4 08 vpclmulqdq \$0x8,%xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: c4 e2 c9 98 d4 vfmadd132pd %xmm4,%xmm6,%xmm2 -[ ]*[a-f0-9]+: 0f 38 f0 19 movbe \(%rcx\),%ebx -[ ]*[a-f0-9]+: 48 0f c7 0e cmpxchg16b \(%rsi\) -[ ]*[a-f0-9]+: 66 0f 38 80 19 invept \(%rcx\),%rbx -[ ]*[a-f0-9]+: 0f 01 f9 rdtscp -[ ]*[a-f0-9]+: 0f 0d 0c 75 00 10 00 00 prefetchw 0x1000\(,%rsi,2\) -[ ]*[a-f0-9]+: f2 0f 79 ca insertq %xmm2,%xmm1 -[ ]*[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 -[ ]*[a-f0-9]+: 8f e9 60 01 c9 blcfill %ecx,%ebx -#pass +#dump: x86-64-arch-2.d diff --git a/gas/testsuite/gas/i386/x86-64-arch-2.d b/gas/testsuite/gas/i386/x86-64-arch-2.d index be30aa7e375..d175c15f841 100644 --- a/gas/testsuite/gas/i386/x86-64-arch-2.d +++ b/gas/testsuite/gas/i386/x86-64-arch-2.d @@ -16,7 +16,7 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 0f d0 dc addsubpd %xmm4,%xmm3 [ ]*[a-f0-9]+: 66 0f 38 01 dc phaddw %xmm4,%xmm3 [ ]*[a-f0-9]+: 66 0f 38 41 d9 phminposuw %xmm1,%xmm3 -[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx [ ]*[a-f0-9]+: c5 fc 77 vzeroall [ ]*[a-f0-9]+: 0f 01 c4 vmxoff [ ]*[a-f0-9]+: 0f 37 getsec diff --git a/gas/testsuite/gas/i386/x86-64-crc32-suffix.d b/gas/testsuite/gas/i386/x86-64-crc32-suffix.d new file mode 100644 index 00000000000..96f2f07acae --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-crc32-suffix.d @@ -0,0 +1,35 @@ +#objdump: -dwMsuffix +#name: x86-64 crc32 w/ suffix +#source: x86-64-crc32.s + +.*: file format .* + +Disassembly of section .text: + +0+ : +[ ]*[a-f0-9]+: f2 0f 38 f0 06 crc32b \(%rsi\),%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f0 06 crc32b \(%rsi\),%rax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 06 crc32w \(%rsi\),%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 06 crc32l \(%rsi\),%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f1 06 crc32q \(%rsi\),%rax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f0 c0 crc32b %al,%rax +[ ]*[a-f0-9]+: f2 48 0f 38 f0 c0 crc32b %al,%rax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f1 c0 crc32q %rax,%rax +[ ]*[a-f0-9]+: f2 48 0f 38 f1 c0 crc32q %rax,%rax +[ ]*[a-f0-9]+: f2 48 0f 38 f0 06 crc32b \(%rsi\),%rax +[ ]*[a-f0-9]+: f2 0f 38 f0 06 crc32b \(%rsi\),%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 06 crc32w \(%rsi\),%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 06 crc32l \(%rsi\),%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f1 06 crc32q \(%rsi\),%rax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f0 c0 crc32b %al,%rax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f1 c0 crc32q %rax,%rax +#pass diff --git a/gas/testsuite/gas/i386/x86-64-crc32.d b/gas/testsuite/gas/i386/x86-64-crc32.d index 1a33fac02d8..add7eb98939 100644 --- a/gas/testsuite/gas/i386/x86-64-crc32.d +++ b/gas/testsuite/gas/i386/x86-64-crc32.d @@ -11,24 +11,24 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 66 f2 0f 38 f1 06 crc32w \(%rsi\),%eax [ ]*[a-f0-9]+: f2 0f 38 f1 06 crc32l \(%rsi\),%eax [ ]*[a-f0-9]+: f2 48 0f 38 f1 06 crc32q \(%rsi\),%rax -[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax -[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax -[ ]*[a-f0-9]+: f2 48 0f 38 f0 c0 crc32b %al,%rax -[ ]*[a-f0-9]+: f2 48 0f 38 f0 c0 crc32b %al,%rax -[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax -[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax -[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax -[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax -[ ]*[a-f0-9]+: f2 48 0f 38 f1 c0 crc32q %rax,%rax -[ ]*[a-f0-9]+: f2 48 0f 38 f1 c0 crc32q %rax,%rax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32 %al,%eax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32 %al,%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f0 c0 crc32 %al,%rax +[ ]*[a-f0-9]+: f2 48 0f 38 f0 c0 crc32 %al,%rax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32 %ax,%eax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32 %ax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32 %eax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32 %eax,%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f1 c0 crc32 %rax,%rax +[ ]*[a-f0-9]+: f2 48 0f 38 f1 c0 crc32 %rax,%rax [ ]*[a-f0-9]+: f2 48 0f 38 f0 06 crc32b \(%rsi\),%rax [ ]*[a-f0-9]+: f2 0f 38 f0 06 crc32b \(%rsi\),%eax [ ]*[a-f0-9]+: 66 f2 0f 38 f1 06 crc32w \(%rsi\),%eax [ ]*[a-f0-9]+: f2 0f 38 f1 06 crc32l \(%rsi\),%eax [ ]*[a-f0-9]+: f2 48 0f 38 f1 06 crc32q \(%rsi\),%rax -[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32b %al,%eax -[ ]*[a-f0-9]+: f2 48 0f 38 f0 c0 crc32b %al,%rax -[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32w %ax,%eax -[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32l %eax,%eax -[ ]*[a-f0-9]+: f2 48 0f 38 f1 c0 crc32q %rax,%rax +[ ]*[a-f0-9]+: f2 0f 38 f0 c0 crc32 %al,%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f0 c0 crc32 %al,%rax +[ ]*[a-f0-9]+: 66 f2 0f 38 f1 c0 crc32 %ax,%eax +[ ]*[a-f0-9]+: f2 0f 38 f1 c0 crc32 %eax,%eax +[ ]*[a-f0-9]+: f2 48 0f 38 f1 c0 crc32 %rax,%rax #pass diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.d b/gas/testsuite/gas/i386/x86-64-pseudos.d index 7e17b14f5b1..d5f4e057119 100644 --- a/gas/testsuite/gas/i386/x86-64-pseudos.d +++ b/gas/testsuite/gas/i386/x86-64-pseudos.d @@ -305,7 +305,7 @@ Disassembly of section .text: +[a-f0-9]+: 40 a0 01 00 00 00 00 00 00 00 rex movabs 0x1,%al +[a-f0-9]+: 40 38 ca rex cmp %cl,%dl +[a-f0-9]+: 40 b3 01 rex mov \$(0x)?1,%bl - +[a-f0-9]+: f2 40 0f 38 f0 c1 rex crc32b? %cl,%eax + +[a-f0-9]+: f2 40 0f 38 f0 c1 rex crc32 %cl,%eax +[a-f0-9]+: 40 89 c3 rex mov %eax,%ebx +[a-f0-9]+: 41 89 c6 mov %eax,%r14d +[a-f0-9]+: 41 89 00 mov %eax,\(%r8\) diff --git a/gas/testsuite/gas/i386/x86-64-sse-noavx.d b/gas/testsuite/gas/i386/x86-64-sse-noavx.d index c83dae5a4ae..d9d17a55dfd 100644 --- a/gas/testsuite/gas/i386/x86-64-sse-noavx.d +++ b/gas/testsuite/gas/i386/x86-64-sse-noavx.d @@ -8,7 +8,7 @@ Disassembly of section .text: 0+ <_start>: [ ]*[a-f0-9]+: 48 0f c7 08 cmpxchg16b \(%rax\) -[ ]*[a-f0-9]+: f2 0f 38 f0 d9 crc32b %cl,%ebx +[ ]*[a-f0-9]+: f2 0f 38 f0 d9 crc32 %cl,%ebx [ ]*[a-f0-9]+: 66 0f 2d d3 cvtpd2pi %xmm3,%mm2 [ ]*[a-f0-9]+: 66 0f 2a d3 cvtpi2pd %mm3,%xmm2 [ ]*[a-f0-9]+: 0f 2a d3 cvtpi2ps %mm3,%xmm2 diff --git a/gas/testsuite/gas/i386/x86-64-sse4_2.d b/gas/testsuite/gas/i386/x86-64-sse4_2.d index 6f8b4b147d7..107fddb2720 100644 --- a/gas/testsuite/gas/i386/x86-64-sse4_2.d +++ b/gas/testsuite/gas/i386/x86-64-sse4_2.d @@ -6,20 +6,20 @@ Disassembly of section .text: 0+000 : -[ ]*[0-9a-f]+: f2 0f 38 f0 d9 crc32b %cl,%ebx -[ ]*[0-9a-f]+: f2 48 0f 38 f0 d9 crc32b %cl,%rbx -[ ]*[0-9a-f]+: 66 f2 0f 38 f1 d9 crc32w %cx,%ebx -[ ]*[0-9a-f]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[0-9a-f]+: f2 48 0f 38 f1 d9 crc32q %rcx,%rbx +[ ]*[0-9a-f]+: f2 0f 38 f0 d9 crc32 %cl,%ebx +[ ]*[0-9a-f]+: f2 48 0f 38 f0 d9 crc32 %cl,%rbx +[ ]*[0-9a-f]+: 66 f2 0f 38 f1 d9 crc32 %cx,%ebx +[ ]*[0-9a-f]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx +[ ]*[0-9a-f]+: f2 48 0f 38 f1 d9 crc32 %rcx,%rbx [ ]*[0-9a-f]+: f2 0f 38 f0 19 crc32b \(%rcx\),%ebx [ ]*[0-9a-f]+: 66 f2 0f 38 f1 19 crc32w \(%rcx\),%ebx [ ]*[0-9a-f]+: f2 0f 38 f1 19 crc32l \(%rcx\),%ebx [ ]*[0-9a-f]+: f2 48 0f 38 f1 19 crc32q \(%rcx\),%rbx -[ ]*[0-9a-f]+: f2 0f 38 f0 d9 crc32b %cl,%ebx -[ ]*[0-9a-f]+: f2 48 0f 38 f0 d9 crc32b %cl,%rbx -[ ]*[0-9a-f]+: 66 f2 0f 38 f1 d9 crc32w %cx,%ebx -[ ]*[0-9a-f]+: f2 0f 38 f1 d9 crc32l %ecx,%ebx -[ ]*[0-9a-f]+: f2 48 0f 38 f1 d9 crc32q %rcx,%rbx +[ ]*[0-9a-f]+: f2 0f 38 f0 d9 crc32 %cl,%ebx +[ ]*[0-9a-f]+: f2 48 0f 38 f0 d9 crc32 %cl,%rbx +[ ]*[0-9a-f]+: 66 f2 0f 38 f1 d9 crc32 %cx,%ebx +[ ]*[0-9a-f]+: f2 0f 38 f1 d9 crc32 %ecx,%ebx +[ ]*[0-9a-f]+: f2 48 0f 38 f1 d9 crc32 %rcx,%rbx [ ]*[0-9a-f]+: 66 0f 38 37 01 pcmpgtq \(%rcx\),%xmm0 [ ]*[0-9a-f]+: 66 0f 38 37 c1 pcmpgtq %xmm1,%xmm0 [ ]*[0-9a-f]+: 66 0f 3a 61 01 00 pcmpestril? \$0x0,\(%rcx\),%xmm0 diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 4ac10ce186d..42a2cc69ea0 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2020-07-14 Jan Beulich + + * i386-dis.c (CRC32_Fixup): Delete. + (prefix_table): Use Eb/Ev for crc32 entries. + 2020-07-14 Jan Beulich * i386-dis.c (OP_E_register, OP_G, OP_REG, CRC32_Fixup): diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 4940c8a93d7..3199a1740de 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -115,7 +115,6 @@ static void HLE_Fixup2 (int, int); static void HLE_Fixup3 (int, int); static void CMPXCHG8B_Fixup (int, int); static void XMM_Fixup (int, int); -static void CRC32_Fixup (int, int); static void FXSAVE_Fixup (int, int); static void PCMPESTR_Fixup (int, int); @@ -4426,7 +4425,7 @@ static const struct dis386 prefix_table[][4] = { { "movbeS", { Gv, { MOVBE_Fixup, v_mode } }, PREFIX_OPCODE }, { Bad_Opcode }, { "movbeS", { Gv, { MOVBE_Fixup, v_mode } }, PREFIX_OPCODE }, - { "crc32", { Gdq, { CRC32_Fixup, b_mode } }, PREFIX_OPCODE }, + { "crc32A", { Gdq, Eb }, PREFIX_OPCODE }, }, /* PREFIX_0F38F1 */ @@ -4434,7 +4433,7 @@ static const struct dis386 prefix_table[][4] = { { "movbeS", { { MOVBE_Fixup, v_mode }, Gv }, PREFIX_OPCODE }, { Bad_Opcode }, { "movbeS", { { MOVBE_Fixup, v_mode }, Gv }, PREFIX_OPCODE }, - { "crc32", { Gdq, { CRC32_Fixup, v_mode } }, PREFIX_OPCODE }, + { "crc32Q", { Gdq, Ev }, PREFIX_OPCODE }, }, /* PREFIX_0F38F5 */ @@ -16369,78 +16368,6 @@ XMM_Fixup (int reg, int sizeflag ATTRIBUTE_UNUSED) oappend (names[reg]); } -static void -CRC32_Fixup (int bytemode, int sizeflag) -{ - /* Add proper suffix to "crc32". */ - char *p = mnemonicendp; - - switch (bytemode) - { - case b_mode: - if (intel_syntax) - goto skip; - - *p++ = 'b'; - break; - case v_mode: - if (intel_syntax) - goto skip; - - USED_REX (REX_W); - if (rex & REX_W) - *p++ = 'q'; - else - { - if (sizeflag & DFLAG) - *p++ = 'l'; - else - *p++ = 'w'; - used_prefixes |= (prefixes & PREFIX_DATA); - } - break; - default: - oappend (INTERNAL_DISASSEMBLER_ERROR); - break; - } - mnemonicendp = p; - *p = '\0'; - - skip: - if (modrm.mod == 3) - { - int add; - - /* Skip mod/rm byte. */ - MODRM_CHECK; - codep++; - - USED_REX (REX_B); - add = (rex & REX_B) ? 8 : 0; - if (bytemode == b_mode) - { - if (modrm.rm & 4) - USED_REX (0); - if (rex) - oappend (names8rex[modrm.rm + add]); - else - oappend (names8[modrm.rm + add]); - } - else - { - USED_REX (REX_W); - if (rex & REX_W) - oappend (names64[modrm.rm + add]); - else if ((prefixes & PREFIX_DATA)) - oappend (names16[modrm.rm + add]); - else - oappend (names32[modrm.rm + add]); - } - } - else - OP_E (bytemode, sizeflag); -} - static void FXSAVE_Fixup (int bytemode, int sizeflag) { -- 2.30.2