diff options
author | Cui, Lili <lili.cui@intel.com> | 2024-04-23 15:24:42 +0800 |
---|---|---|
committer | Cui, Lili <lili.cui@intel.com> | 2024-05-06 18:33:45 +0800 |
commit | c8866e3ec5e23b394d1258d623ff337abc4cd41d (patch) | |
tree | 26fabf166a0ff289e8627f1cf0d55cf28a76195c /gas | |
parent | 0820c9f5fc13047b4b25361d6d3bb0ceb2a611d8 (diff) | |
download | binutils-c8866e3ec5e23b394d1258d623ff337abc4cd41d.zip binutils-c8866e3ec5e23b394d1258d623ff337abc4cd41d.tar.gz binutils-c8866e3ec5e23b394d1258d623ff337abc4cd41d.tar.bz2 |
x86: Drop using extension_opcode to encode vvvv register
gas/ChangeLog:
* config/tc-i386.c (build_modrm_byte): Dropped the use of
extension_opcode to encode the vvvv register.
* testsuite/gas/i386/x86-64-sse2avx.d: Added new testcases.
* testsuite/gas/i386/x86-64-sse2avx.s: Diito.
opcodes/ChangeLog:
* i386-opc.tbl: Added DstVVVV to some extension_opcode instructions.
* i386-tbl.h: Regenerated.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/config/tc-i386.c | 9 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-sse2avx.d | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-sse2avx.s | 7 |
3 files changed, 17 insertions, 6 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 9d50752..339e849 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -10463,12 +10463,9 @@ build_modrm_byte (void) break; } - if (i.tm.extension_opcode != None) - { - if (dest != source) - v = dest; - dest = ~0; - } + if (dest == source) + dest = ~0; + gas_assert (source < dest); if (v < MAX_OPERANDS) diff --git a/gas/testsuite/gas/i386/x86-64-sse2avx.d b/gas/testsuite/gas/i386/x86-64-sse2avx.d index a652ef6..e1c79ff 100644 --- a/gas/testsuite/gas/i386/x86-64-sse2avx.d +++ b/gas/testsuite/gas/i386/x86-64-sse2avx.d @@ -728,6 +728,13 @@ Disassembly of section .text: [ ]*[a-f0-9]+: c5 72 11 c1 vmovss %xmm8,%xmm1,%xmm1 [ ]*[a-f0-9]+: c4 c1 32 11 c1 vmovss %xmm0,%xmm9,%xmm9 [ ]*[a-f0-9]+: c4 c1 39 71 f0 00 vpsllw \$(0x)?0,%xmm8,%xmm8 +[ ]*[a-f0-9]+: c4 c1 39 72 f0 00 vpslld \$(0x)?0,%xmm8,%xmm8 +[ ]*[a-f0-9]+: c4 c1 39 73 f0 00 vpsllq \$(0x)?0,%xmm8,%xmm8 +[ ]*[a-f0-9]+: c4 c1 39 71 e0 00 vpsraw \$(0x)?0,%xmm8,%xmm8 +[ ]*[a-f0-9]+: c4 c1 39 72 e0 00 vpsrad \$(0x)?0,%xmm8,%xmm8 +[ ]*[a-f0-9]+: c4 c1 39 71 d0 00 vpsrlw \$(0x)?0,%xmm8,%xmm8 +[ ]*[a-f0-9]+: c4 c1 39 72 d0 00 vpsrld \$(0x)?0,%xmm8,%xmm8 +[ ]*[a-f0-9]+: c4 c1 39 73 d0 00 vpsrlq \$(0x)?0,%xmm8,%xmm8 [ ]*[a-f0-9]+: c5 79 c5 c8 00 vpextrw \$(0x)?0,%xmm0,%r9d [ ]*[a-f0-9]+: c4 c1 79 c5 c8 00 vpextrw \$(0x)?0,%xmm8,%ecx [ ]*[a-f0-9]+: c4 63 79 14 c1 00 vpextrb \$(0x)?0,%xmm8,%ecx diff --git a/gas/testsuite/gas/i386/x86-64-sse2avx.s b/gas/testsuite/gas/i386/x86-64-sse2avx.s index 4de8118..f08115a 100644 --- a/gas/testsuite/gas/i386/x86-64-sse2avx.s +++ b/gas/testsuite/gas/i386/x86-64-sse2avx.s @@ -822,6 +822,13 @@ _start: {store} rexz movss %xmm0, %xmm1 rexz psllw $0, %xmm0 + rexz pslld $0, %xmm0 + rexz psllq $0, %xmm0 + rexz psraw $0, %xmm0 + rexz psrad $0, %xmm0 + rexz psrlw $0, %xmm0 + rexz psrld $0, %xmm0 + rexz psrlq $0, %xmm0 rexx pextrw $0, %xmm0, %ecx rexz pextrw $0, %xmm0, %ecx |