x86: adjust register names printed for MONITOR/MWAIT
authorJan Beulich <jbeulich@suse.com>
Thu, 7 Nov 2019 08:28:20 +0000 (09:28 +0100)
committerJan Beulich <jbeulich@suse.com>
Thu, 7 Nov 2019 08:28:20 +0000 (09:28 +0100)
As the comments (here: almost, in the opcode table: fully) correctly
state - all register operands except MONITOR's address one are fixed
at 32 bit size. Don't print 64-bit registers there.

Also adjust x86-64-suffix.d's name such that it wouldn't be identical to
x86-64-rep-suffix.d's, but instead resemble that of its sibling
x86-64-suffix-intel.d.

14 files changed:
gas/ChangeLog
gas/testsuite/gas/i386/ilp32/x86-64-sse-noavx.d
gas/testsuite/gas/i386/ilp32/x86-64-sse3.d
gas/testsuite/gas/i386/x86-64-arch-3-znver1.d
gas/testsuite/gas/i386/x86-64-arch-3-znver2.d
gas/testsuite/gas/i386/x86-64-arch-3.d
gas/testsuite/gas/i386/x86-64-arch-3.s
gas/testsuite/gas/i386/x86-64-mwaitx-bdver4.d
gas/testsuite/gas/i386/x86-64-sse-noavx.d
gas/testsuite/gas/i386/x86-64-sse3.d
gas/testsuite/gas/i386/x86-64-sse3.s
gas/testsuite/gas/i386/x86-64-suffix.d
opcodes/ChangeLog
opcodes/i386-dis.c

index 185469fbfaa686996e79ac466f8e8629c448f7bc..0a05d16b37dc4513443cc2b5a1a74ac541954da8 100644 (file)
@@ -1,3 +1,22 @@
+2019-11-07  Jan Beulich  <jbeulich@suse.com>
+
+       * testsuite/gas/i386/x86-64-arch-3.s: Add monitorx/mwaitx cases
+       with canonical operand sizes.
+       * testsuite/gas/i386/x86-64-sse3.s: Add monitor/mwait cases with
+       canonical operand sizes.
+       * testsuite/gas/i386/x86-64-arch-3-znver1.d,
+       testsuite/gas/i386/x86-64-arch-3-znver2.d: Redirect expectations
+       to x86-64-arch-3.d.
+       * testsuite/gas/i386/ilp32/x86-64-sse-noavx.d: Redirect
+       expectations to parent dir's x86-64-sse-noavx.d.
+       * testsuite/gas/i386/ilp32/x86-64-sse3.d: Redirect expectations
+       to to parent dir's x86-64-sse3.d.
+       * testsuite/gas/i386/x86-64-arch-3.d,
+       testsuite/gas/i386/x86-64-mwaitx-bdver4.d,
+       testsuite/gas/i386/x86-64-sse-noavx.d,
+       testsuite/gas/i386/x86-64-sse3.d,
+       testsuite/gas/i386/x86-64-suffix.d: Adjust expectations.
+
 2019-11-04  Jan Beulich  <jbeulich@suse.com>
 
        * config/tc-i386.c (process_operands): Handle ShortForm insns
index 4a24c334435be635925881e47ddbb45dd0e400b0..1b2f099afce96335d0a47a4a810650403fe281d7 100644 (file)
@@ -2,68 +2,4 @@
 #as: -msse-check=error
 #objdump: -dw
 #name: x86-64 (ILP32) SSE without AVX equivalent
-
-.*:     file format .*
-
-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]+:    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
-[      ]*[a-f0-9]+:    0f 2d f7                cvtps2pi %xmm7,%mm6
-[      ]*[a-f0-9]+:    66 0f 2c dc             cvttpd2pi %xmm4,%mm3
-[      ]*[a-f0-9]+:    0f 2c dc                cvttps2pi %xmm4,%mm3
-[      ]*[a-f0-9]+:    df 08                   fisttps \(%rax\)
-[      ]*[a-f0-9]+:    df 08                   fisttps \(%rax\)
-[      ]*[a-f0-9]+:    db 08                   fisttpl \(%rax\)
-[      ]*[a-f0-9]+:    dd 08                   fisttpll \(%rax\)
-[      ]*[a-f0-9]+:    0f ae e8                lfence 
-[      ]*[a-f0-9]+:    0f f7 c7                maskmovq %mm7,%mm0
-[      ]*[a-f0-9]+:    0f ae f0                mfence 
-[      ]*[a-f0-9]+:    0f 01 c8                monitor %rax,%rcx,%rdx
-[      ]*[a-f0-9]+:    f2 0f d6 c8             movdq2q %xmm0,%mm1
-[      ]*[a-f0-9]+:    0f c3 00                movnti %eax,\(%rax\)
-[      ]*[a-f0-9]+:    0f e7 10                movntq %mm2,\(%rax\)
-[      ]*[a-f0-9]+:    f3 0f d6 c8             movq2dq %mm0,%xmm1
-[      ]*[a-f0-9]+:    0f 01 c9                mwait  %rax,%rcx
-[      ]*[a-f0-9]+:    0f 38 1c c1             pabsb  %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 38 1e c1             pabsd  %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 38 1d c1             pabsw  %mm1,%mm0
-[      ]*[a-f0-9]+:    0f d4 c1                paddq  %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 3a 0f c1 02          palignr \$0x2,%mm1,%mm0
-[      ]*[a-f0-9]+:    0f e0 c1                pavgb  %mm1,%mm0
-[      ]*[a-f0-9]+:    0f e3 d3                pavgw  %mm3,%mm2
-[      ]*[a-f0-9]+:    0f c5 c1 00             pextrw \$0x0,%mm1,%eax
-[      ]*[a-f0-9]+:    0f 38 02 c1             phaddd %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 38 03 c1             phaddsw %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 38 01 c1             phaddw %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 38 06 c1             phsubd %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 38 07 c1             phsubsw %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 38 05 c1             phsubw %mm1,%mm0
-[      ]*[a-f0-9]+:    0f c4 d2 02             pinsrw \$0x2,%edx,%mm2
-[      ]*[a-f0-9]+:    0f 38 04 c1             pmaddubsw %mm1,%mm0
-[      ]*[a-f0-9]+:    0f ee c1                pmaxsw %mm1,%mm0
-[      ]*[a-f0-9]+:    0f de d2                pmaxub %mm2,%mm2
-[      ]*[a-f0-9]+:    0f ea e5                pminsw %mm5,%mm4
-[      ]*[a-f0-9]+:    0f da f7                pminub %mm7,%mm6
-[      ]*[a-f0-9]+:    0f d7 c5                pmovmskb %mm5,%eax
-[      ]*[a-f0-9]+:    0f 38 0b c1             pmulhrsw %mm1,%mm0
-[      ]*[a-f0-9]+:    0f e4 e5                pmulhuw %mm5,%mm4
-[      ]*[a-f0-9]+:    0f f4 c8                pmuludq %mm0,%mm1
-[      ]*[a-f0-9]+:    f3 0f b8 cb             popcnt %ebx,%ecx
-[      ]*[a-f0-9]+:    0f 18 00                prefetchnta \(%rax\)
-[      ]*[a-f0-9]+:    0f 18 08                prefetcht0 \(%rax\)
-[      ]*[a-f0-9]+:    0f 18 10                prefetcht1 \(%rax\)
-[      ]*[a-f0-9]+:    0f 18 18                prefetcht2 \(%rax\)
-[      ]*[a-f0-9]+:    0f f6 f7                psadbw %mm7,%mm6
-[      ]*[a-f0-9]+:    0f 38 00 c1             pshufb %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 70 da 01             pshufw \$0x1,%mm2,%mm3
-[      ]*[a-f0-9]+:    0f 38 08 c1             psignb %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 38 0a c1             psignd %mm1,%mm0
-[      ]*[a-f0-9]+:    0f 38 09 c1             psignw %mm1,%mm0
-[      ]*[a-f0-9]+:    0f fb c1                psubq  %mm1,%mm0
-[      ]*[a-f0-9]+:    0f ae f8                sfence 
-#pass
+#dump: ../x86-64-sse-noavx.d
index 77b24447d11d57554e360dd128b66fd785666808..f6b56587b7abfac561cec62a68a04fdb23429fe0 100644 (file)
@@ -1,40 +1,4 @@
 #source: ../x86-64-sse3.s
 #objdump: -dw
 #name: x86-64 (ILP32) SSE3
-
-.*: +file format .*
-
-Disassembly of section .text:
-
-0+000 <foo>:
-   0:  66 0f d0 01 [   ]*addsubpd \(%rcx\),%xmm0
-   4:  66 0f d0 ca [   ]*addsubpd %xmm2,%xmm1
-   8:  f2 0f d0 13 [   ]*addsubps \(%rbx\),%xmm2
-   c:  f2 0f d0 dc [   ]*addsubps %xmm4,%xmm3
-  10:  df 88 90 90 90 00 [     ]*fisttps 0x909090\(%rax\)
-  16:  db 88 90 90 90 00 [     ]*fisttpl 0x909090\(%rax\)
-  1c:  dd 88 90 90 90 00 [     ]*fisttpll 0x909090\(%rax\)
-  22:  66 0f 7c 65 00 [        ]*haddpd 0x0\(%rbp\),%xmm4
-  27:  66 0f 7c ee [   ]*haddpd %xmm6,%xmm5
-  2b:  f2 0f 7c 37 [   ]*haddps \(%rdi\),%xmm6
-  2f:  f2 0f 7c f8 [   ]*haddps %xmm0,%xmm7
-  33:  66 0f 7d c1 [   ]*hsubpd %xmm1,%xmm0
-  37:  66 0f 7d 0a [   ]*hsubpd \(%rdx\),%xmm1
-  3b:  f2 0f 7d d2 [   ]*hsubps %xmm2,%xmm2
-  3f:  f2 0f 7d 1c 24 [        ]*hsubps \(%rsp\),%xmm3
-  44:  f2 0f f0 2e [   ]*lddqu  \(%rsi\),%xmm5
-  48:  0f 01 c8 [      ]*monitor %rax,%rcx,%rdx
-  4b:  0f 01 c8 [      ]*monitor %rax,%rcx,%rdx
-  4e:  f2 0f 12 f7 [   ]*movddup %xmm7,%xmm6
-  52:  f2 0f 12 38 [   ]*movddup \(%rax\),%xmm7
-  56:  f3 0f 16 01 [   ]*movshdup \(%rcx\),%xmm0
-  5a:  f3 0f 16 ca [   ]*movshdup %xmm2,%xmm1
-  5e:  f3 0f 12 13 [   ]*movsldup \(%rbx\),%xmm2
-  62:  f3 0f 12 dc [   ]*movsldup %xmm4,%xmm3
-  66:  0f 01 c9 [      ]*mwait  %rax,%rcx
-  69:  0f 01 c9 [      ]*mwait  %rax,%rcx
-  6c:  67 0f 01 c8 [   ]*monitor %eax,%rcx,%rdx
-  70:  67 0f 01 c8 [   ]*monitor %eax,%rcx,%rdx
-  74:  f2 0f 12 38 [   ]*movddup \(%rax\),%xmm7
-  78:  f2 0f 12 38 [   ]*movddup \(%rax\),%xmm7
-#pass
+#dump: ../x86-64-sse3.d
index 060ef6124985b73302ee53c6975ae9437fa81ece..e5a622856a9ba0bfd269647fe65a2a28e52c586e 100644 (file)
@@ -2,30 +2,4 @@
 #as: -march=znver1+rdpid+clwb+wbnoinvd
 #objdump: -dw
 #name: x86-64 arch 3 (znver1)
-
-.*:     file format .*
-
-Disassembly of section .text:
-
-0+ <.text>:
-[      ]*[a-f0-9]+:    0f 01 ca                clac   
-[      ]*[a-f0-9]+:    0f 01 cb                stac   
-[      ]*[a-f0-9]+:    66 0f 38 f6 ca          adcx   %edx,%ecx
-[      ]*[a-f0-9]+:    f3 0f 38 f6 ca          adox   %edx,%ecx
-[      ]*[a-f0-9]+:    0f c7 f8                rdseed %eax
-[      ]*[a-f0-9]+:    0f 01 fc                clzero 
-[      ]*[a-f0-9]+:    44 0f 38 c8 00          sha1nexte \(%rax\),%xmm8
-[      ]*[a-f0-9]+:    48 0f c7 21             xsavec64 \(%rcx\)
-[      ]*[a-f0-9]+:    48 0f c7 29             xsaves64 \(%rcx\)
-[      ]*[a-f0-9]+:    66 0f ae 39             clflushopt \(%rcx\)
-[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%rcx,%rdx
-[      ]*[a-f0-9]+:    67 0f 01 fa             monitorx %eax,%rcx,%rdx
-[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%rcx,%rdx
-[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %rax,%rcx,%rbx
-[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %rax,%rcx,%rbx
-[      ]*[a-f0-9]+:[   ]*66 0f ae 31[  ]*clwb   \(%rcx\)
-[      ]*[a-f0-9]+:[   ]*66 42 0f ae b4 f0 23 01 00 00[        ]*clwb   0x123\(%rax,%r14,8\)
-[      ]*[a-f0-9]+:[   ]*f3 0f c7 f8[  ]*rdpid  %rax
-[      ]*[a-f0-9]+:[   ]*f3 41 0f c7 fa[       ]*rdpid  %r10
-[      ]*[a-f0-9]+:[   ]*f3 0f 09[     ]*wbnoinvd[     ]*
-#pass
+#dump: x86-64-arch-3.d
index 07e6c02be295d3cff6cfe0ed314ba8c91b937874..6882da4faa13c633e64cd9977b058ce7a7ecfb83 100644 (file)
@@ -2,30 +2,4 @@
 #as: -march=znver2
 #objdump: -dw
 #name: x86-64 arch 3 (znver2)
-
-.*:     file format .*
-
-Disassembly of section .text:
-
-0+ <.text>:
-[      ]*[a-f0-9]+:    0f 01 ca                clac[ ]*
-[      ]*[a-f0-9]+:    0f 01 cb                stac[ ]*
-[      ]*[a-f0-9]+:    66 0f 38 f6 ca          adcx   %edx,%ecx
-[      ]*[a-f0-9]+:    f3 0f 38 f6 ca          adox   %edx,%ecx
-[      ]*[a-f0-9]+:    0f c7 f8                rdseed %eax
-[      ]*[a-f0-9]+:    0f 01 fc                clzero[ ]*
-[      ]*[a-f0-9]+:    44 0f 38 c8 00          sha1nexte \(%rax\),%xmm8
-[      ]*[a-f0-9]+:    48 0f c7 21             xsavec64 \(%rcx\)
-[      ]*[a-f0-9]+:    48 0f c7 29             xsaves64 \(%rcx\)
-[      ]*[a-f0-9]+:    66 0f ae 39             clflushopt \(%rcx\)
-[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%rcx,%rdx
-[      ]*[a-f0-9]+:    67 0f 01 fa             monitorx %eax,%rcx,%rdx
-[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%rcx,%rdx
-[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %rax,%rcx,%rbx
-[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %rax,%rcx,%rbx
-[      ]*[a-f0-9]+:[   ]*66 0f ae 31[  ]*clwb   \(%rcx\)
-[      ]*[a-f0-9]+:[   ]*66 42 0f ae b4 f0 23 01 00 00[        ]*clwb   0x123\(%rax,%r14,8\)
-[      ]*[a-f0-9]+:[   ]*f3 0f c7 f8[  ]*rdpid  %rax
-[      ]*[a-f0-9]+:[   ]*f3 41 0f c7 fa[       ]*rdpid  %r10
-[      ]*[a-f0-9]+:[   ]*f3 0f 09[     ]*wbnoinvd[     ]*
-#pass
+#dump: x86-64-arch-3.d
index e6bbb4b837e7ce8e84930627eea15ffa116c99af..9f5bd612a246cfd113a8720ae5b29c8d34f6beff 100644 (file)
@@ -17,11 +17,14 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    48 0f c7 21             xsavec64 \(%rcx\)
 [      ]*[a-f0-9]+:    48 0f c7 29             xsaves64 \(%rcx\)
 [      ]*[a-f0-9]+:    66 0f ae 39             clflushopt \(%rcx\)
-[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%rcx,%rdx
-[      ]*[a-f0-9]+:    67 0f 01 fa             monitorx %eax,%rcx,%rdx
-[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%rcx,%rdx
-[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %rax,%rcx,%rbx
-[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %rax,%rcx,%rbx
+[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%ecx,%edx
+[      ]*[a-f0-9]+:    67 0f 01 fa             monitorx %eax,%ecx,%edx
+[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%ecx,%edx
+[      ]*[a-f0-9]+:    67 0f 01 fa             monitorx %eax,%ecx,%edx
+[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%ecx,%edx
+[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %eax,%ecx,%ebx
+[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %eax,%ecx,%ebx
+[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %eax,%ecx,%ebx
 [      ]*[a-f0-9]+:[   ]*66 0f ae 31[  ]*clwb   \(%rcx\)
 [      ]*[a-f0-9]+:[   ]*66 42 0f ae b4 f0 23 01 00 00[        ]*clwb   0x123\(%rax,%r14,8\)
 [      ]*[a-f0-9]+:[   ]*f3 0f c7 f8[  ]*rdpid  %rax
index 6ae75c3c46d36499a157106284c1d23d7e91d703..1f5a0e6be10424faa08a1b013a791fadfa000c05 100644 (file)
        xsaves64        (%rcx)
 #CLFLUSHOPT
        clflushopt      (%rcx)
+       monitorx %rax,%ecx,%edx
+       monitorx %eax,%ecx,%edx
        monitorx %rax,%rcx,%rdx
        monitorx %eax,%rcx,%rdx
        monitorx
+       mwaitx %eax,%ecx,%ebx
        mwaitx %rax,%rcx,%rbx
        mwaitx
 # clwb instruction
index f35ad119edd3f2bcf3ec7be38ff575316497ee4d..41f5d7b355a212a3f0f150184a723c78c7bd76d3 100644 (file)
@@ -9,9 +9,9 @@
 Disassembly of section \.text:
 
 0000000000000000 <_start>:
-[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%rcx,%rdx
-[      ]*[a-f0-9]+:    67 0f 01 fa             monitorx %eax,%rcx,%rdx
-[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%rcx,%rdx
-[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %rax,%rcx,%rbx
-[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %rax,%rcx,%rbx
+[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%ecx,%edx
+[      ]*[a-f0-9]+:    67 0f 01 fa             monitorx %eax,%ecx,%edx
+[      ]*[a-f0-9]+:    0f 01 fa                monitorx %rax,%ecx,%edx
+[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %eax,%ecx,%ebx
+[      ]*[a-f0-9]+:    0f 01 fb                mwaitx %eax,%ecx,%ebx
 #pass
index 4d75f246cc178d56fad77e02e231390f7e7e1038..e15791642a7f940ffedde70889114a1632e3941b 100644 (file)
@@ -22,12 +22,12 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    0f ae e8                lfence 
 [      ]*[a-f0-9]+:    0f f7 c7                maskmovq %mm7,%mm0
 [      ]*[a-f0-9]+:    0f ae f0                mfence 
-[      ]*[a-f0-9]+:    0f 01 c8                monitor %rax,%rcx,%rdx
+[      ]*[a-f0-9]+:    0f 01 c8                monitor %rax,%ecx,%edx
 [      ]*[a-f0-9]+:    f2 0f d6 c8             movdq2q %xmm0,%mm1
 [      ]*[a-f0-9]+:    0f c3 00                movnti %eax,\(%rax\)
 [      ]*[a-f0-9]+:    0f e7 10                movntq %mm2,\(%rax\)
 [      ]*[a-f0-9]+:    f3 0f d6 c8             movq2dq %mm0,%xmm1
-[      ]*[a-f0-9]+:    0f 01 c9                mwait  %rax,%rcx
+[      ]*[a-f0-9]+:    0f 01 c9                mwait  %eax,%ecx
 [      ]*[a-f0-9]+:    0f 38 1c c1             pabsb  %mm1,%mm0
 [      ]*[a-f0-9]+:    0f 38 1e c1             pabsd  %mm1,%mm0
 [      ]*[a-f0-9]+:    0f 38 1d c1             pabsw  %mm1,%mm0
index e4bd3dfd0183ac3b1c2c8b2a46d27811e239c7c2..5b8b37db26076e7cb219a90a80b554086effa85a 100644 (file)
@@ -6,34 +6,37 @@
 Disassembly of section .text:
 
 0+000 <foo>:
-   0:  66 0f d0 01 [   ]*addsubpd \(%rcx\),%xmm0
-   4:  66 0f d0 ca [   ]*addsubpd %xmm2,%xmm1
-   8:  f2 0f d0 13 [   ]*addsubps \(%rbx\),%xmm2
-   c:  f2 0f d0 dc [   ]*addsubps %xmm4,%xmm3
-  10:  df 88 90 90 90 00 [     ]*fisttps 0x909090\(%rax\)
-  16:  db 88 90 90 90 00 [     ]*fisttpl 0x909090\(%rax\)
-  1c:  dd 88 90 90 90 00 [     ]*fisttpll 0x909090\(%rax\)
-  22:  66 0f 7c 65 00 [        ]*haddpd 0x0\(%rbp\),%xmm4
-  27:  66 0f 7c ee [   ]*haddpd %xmm6,%xmm5
-  2b:  f2 0f 7c 37 [   ]*haddps \(%rdi\),%xmm6
-  2f:  f2 0f 7c f8 [   ]*haddps %xmm0,%xmm7
-  33:  66 0f 7d c1 [   ]*hsubpd %xmm1,%xmm0
-  37:  66 0f 7d 0a [   ]*hsubpd \(%rdx\),%xmm1
-  3b:  f2 0f 7d d2 [   ]*hsubps %xmm2,%xmm2
-  3f:  f2 0f 7d 1c 24 [        ]*hsubps \(%rsp\),%xmm3
-  44:  f2 0f f0 2e [   ]*lddqu  \(%rsi\),%xmm5
-  48:  0f 01 c8 [      ]*monitor %rax,%rcx,%rdx
-  4b:  0f 01 c8 [      ]*monitor %rax,%rcx,%rdx
-  4e:  f2 0f 12 f7 [   ]*movddup %xmm7,%xmm6
-  52:  f2 0f 12 38 [   ]*movddup \(%rax\),%xmm7
-  56:  f3 0f 16 01 [   ]*movshdup \(%rcx\),%xmm0
-  5a:  f3 0f 16 ca [   ]*movshdup %xmm2,%xmm1
-  5e:  f3 0f 12 13 [   ]*movsldup \(%rbx\),%xmm2
-  62:  f3 0f 12 dc [   ]*movsldup %xmm4,%xmm3
-  66:  0f 01 c9 [      ]*mwait  %rax,%rcx
-  69:  0f 01 c9 [      ]*mwait  %rax,%rcx
-  6c:  67 0f 01 c8 [   ]*monitor %eax,%rcx,%rdx
-  70:  67 0f 01 c8 [   ]*monitor %eax,%rcx,%rdx
-  74:  f2 0f 12 38 [   ]*movddup \(%rax\),%xmm7
-  78:  f2 0f 12 38 [   ]*movddup \(%rax\),%xmm7
+[      ]*[a-f0-9]+:    66 0f d0 01 [   ]*addsubpd \(%rcx\),%xmm0
+[      ]*[a-f0-9]+:    66 0f d0 ca [   ]*addsubpd %xmm2,%xmm1
+[      ]*[a-f0-9]+:    f2 0f d0 13 [   ]*addsubps \(%rbx\),%xmm2
+[      ]*[a-f0-9]+:    f2 0f d0 dc [   ]*addsubps %xmm4,%xmm3
+[      ]*[a-f0-9]+:    df 88 90 90 90 00 [     ]*fisttps 0x909090\(%rax\)
+[      ]*[a-f0-9]+:    db 88 90 90 90 00 [     ]*fisttpl 0x909090\(%rax\)
+[      ]*[a-f0-9]+:    dd 88 90 90 90 00 [     ]*fisttpll 0x909090\(%rax\)
+[      ]*[a-f0-9]+:    66 0f 7c 65 00 [        ]*haddpd 0x0\(%rbp\),%xmm4
+[      ]*[a-f0-9]+:    66 0f 7c ee [   ]*haddpd %xmm6,%xmm5
+[      ]*[a-f0-9]+:    f2 0f 7c 37 [   ]*haddps \(%rdi\),%xmm6
+[      ]*[a-f0-9]+:    f2 0f 7c f8 [   ]*haddps %xmm0,%xmm7
+[      ]*[a-f0-9]+:    66 0f 7d c1 [   ]*hsubpd %xmm1,%xmm0
+[      ]*[a-f0-9]+:    66 0f 7d 0a [   ]*hsubpd \(%rdx\),%xmm1
+[      ]*[a-f0-9]+:    f2 0f 7d d2 [   ]*hsubps %xmm2,%xmm2
+[      ]*[a-f0-9]+:    f2 0f 7d 1c 24 [        ]*hsubps \(%rsp\),%xmm3
+[      ]*[a-f0-9]+:    f2 0f f0 2e [   ]*lddqu  \(%rsi\),%xmm5
+[      ]*[a-f0-9]+:    0f 01 c8 [      ]*monitor %rax,%ecx,%edx
+[      ]*[a-f0-9]+:    0f 01 c8 [      ]*monitor %rax,%ecx,%edx
+[      ]*[a-f0-9]+:    0f 01 c8 [      ]*monitor %rax,%ecx,%edx
+[      ]*[a-f0-9]+:    f2 0f 12 f7 [   ]*movddup %xmm7,%xmm6
+[      ]*[a-f0-9]+:    f2 0f 12 38 [   ]*movddup \(%rax\),%xmm7
+[      ]*[a-f0-9]+:    f3 0f 16 01 [   ]*movshdup \(%rcx\),%xmm0
+[      ]*[a-f0-9]+:    f3 0f 16 ca [   ]*movshdup %xmm2,%xmm1
+[      ]*[a-f0-9]+:    f3 0f 12 13 [   ]*movsldup \(%rbx\),%xmm2
+[      ]*[a-f0-9]+:    f3 0f 12 dc [   ]*movsldup %xmm4,%xmm3
+[      ]*[a-f0-9]+:    0f 01 c9 [      ]*mwait  %eax,%ecx
+[      ]*[a-f0-9]+:    0f 01 c9 [      ]*mwait  %eax,%ecx
+[      ]*[a-f0-9]+:    0f 01 c9 [      ]*mwait  %eax,%ecx
+[      ]*[a-f0-9]+:    67 0f 01 c8 [   ]*monitor %eax,%ecx,%edx
+[      ]*[a-f0-9]+:    67 0f 01 c8 [   ]*monitor %eax,%ecx,%edx
+[      ]*[a-f0-9]+:    67 0f 01 c8 [   ]*monitor %eax,%ecx,%edx
+[      ]*[a-f0-9]+:    f2 0f 12 38 [   ]*movddup \(%rax\),%xmm7
+[      ]*[a-f0-9]+:    f2 0f 12 38 [   ]*movddup \(%rax\),%xmm7
 #pass
index 6d04afddb8c7173d554fbdbe40b497e68b870111..60122832f54a3395048c5aa4a4471c2d4aabf636 100644 (file)
@@ -19,6 +19,7 @@ foo:
        hsubps          (%rsp,1),%xmm3
        lddqu           (%rsi),%xmm5
        monitor
+       monitor         %rax,%ecx,%edx
        monitor         %rax,%rcx,%rdx
        movddup         %xmm7,%xmm6
        movddup         (%rax),%xmm7
@@ -27,8 +28,10 @@ foo:
        movsldup        (%rbx),%xmm2
        movsldup        %xmm4,%xmm3
        mwait
+       mwait           %eax,%ecx
        mwait           %rax,%rcx
 
+       monitor         %eax,%ecx,%edx
        monitor         %eax,%rcx,%rdx
        addr32 monitor
 
index f0b645cfe7567e3e405ac8799ed1a965401b87e6..749a300ff9ae7b8bbc1ce66a08c21028b5aad6f6 100644 (file)
@@ -1,13 +1,13 @@
 #objdump: -dwMsuffix
-#name: x86-64 rep prefix (with suffixes)
+#name: x86-64 suffix (AT&T mode)
 
 .*: +file format .*
 
 Disassembly of section .text:
 
 0+ <foo>:
-[      ]*[a-f0-9]+:    0f 01 c8                monitor %rax,%rcx,%rdx
-[      ]*[a-f0-9]+:    0f 01 c9                mwait  %rax,%rcx
+[      ]*[a-f0-9]+:    0f 01 c8                monitor %rax,%ecx,%edx
+[      ]*[a-f0-9]+:    0f 01 c9                mwait  %eax,%ecx
 [      ]*[a-f0-9]+:    0f 01 c1                vmcall 
 [      ]*[a-f0-9]+:    0f 01 c2                vmlaunch 
 [      ]*[a-f0-9]+:    0f 01 c3                vmresume 
index df2987ae7976825b6220d606a88199d477c7572a..1d4ca7934c99c463b3d9f3b422af5286823088c1 100644 (file)
@@ -1,3 +1,11 @@
+2019-11-07  Jan Beulich  <jbeulich@suse.com>
+
+       * i386-dis.c (OP_Mwait): Drop local variable "names", use
+       "names32" instead.
+       (OP_Monitor): Drop local variable "op1_names", re-purpose
+       "names" for it instead, and replace former "names" uses by
+       "names32" ones.
+
 2019-11-07  Jan Beulich  <jbeulich@suse.com>
 
        PR/gas 25167
index 0f4a844dce78a3260f92514695126f77ea24eb3a..7f66b7f693e433c4f37b8297ba5d470209215bd2 100644 (file)
@@ -15520,12 +15520,10 @@ OP_Mwait (int bytemode, int sizeflag ATTRIBUTE_UNUSED)
   /* mwait %eax,%ecx / mwaitx %eax,%ecx,%ebx  */
   if (!intel_syntax)
     {
-      const char **names = (address_mode == mode_64bit
-                           ? names64 : names32);
-      strcpy (op_out[0], names[0]);
-      strcpy (op_out[1], names[1]);
+      strcpy (op_out[0], names32[0]);
+      strcpy (op_out[1], names32[1]);
       if (bytemode == eBX_reg)
-       strcpy (op_out[2], names[3]);
+       strcpy (op_out[2], names32[3]);
       two_source_ops = 1;
     }
   /* Skip mod/rm byte.  */
@@ -15537,27 +15535,25 @@ static void
 OP_Monitor (int bytemode ATTRIBUTE_UNUSED,
            int sizeflag ATTRIBUTE_UNUSED)
 {
-  /* monitor %eax,%ecx,%edx"  */
+  /* monitor %{e,r,}ax,%ecx,%edx"  */
   if (!intel_syntax)
     {
-      const char **op1_names;
       const char **names = (address_mode == mode_64bit
                            ? names64 : names32);
 
-      if (!(prefixes & PREFIX_ADDR))
-       op1_names = (address_mode == mode_16bit
-                    ? names16 : names);
-      else
+      if (prefixes & PREFIX_ADDR)
        {
          /* Remove "addr16/addr32".  */
          all_prefixes[last_addr_prefix] = 0;
-         op1_names = (address_mode != mode_32bit
-                      ? names32 : names16);
+         names = (address_mode != mode_32bit
+                  ? names32 : names16);
          used_prefixes |= PREFIX_ADDR;
        }
-      strcpy (op_out[0], op1_names[0]);
-      strcpy (op_out[1], names[1]);
-      strcpy (op_out[2], names[2]);
+      else if (address_mode == mode_16bit)
+       names = names16;
+      strcpy (op_out[0], names[0]);
+      strcpy (op_out[1], names32[1]);
+      strcpy (op_out[2], names32[2]);
       two_source_ops = 1;
     }
   /* Skip mod/rm byte.  */