From c8866e3ec5e23b394d1258d623ff337abc4cd41d Mon Sep 17 00:00:00 2001 From: "Cui, Lili" Date: Tue, 23 Apr 2024 15:24:42 +0800 Subject: 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. --- gas/config/tc-i386.c | 9 +++------ gas/testsuite/gas/i386/x86-64-sse2avx.d | 7 +++++++ gas/testsuite/gas/i386/x86-64-sse2avx.s | 7 +++++++ 3 files changed, 17 insertions(+), 6 deletions(-) (limited to 'gas') 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 -- cgit v1.1