diff options
author | Jan Beulich <jbeulich@suse.com> | 2020-06-16 10:34:55 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2020-06-16 10:34:55 +0200 |
commit | 2106ed9baf1098a5d76469ecde30813065c46c68 (patch) | |
tree | ec8c017bc51e49ab5880cf91810399c71921840a | |
parent | a435742a7fb32f6320ce0e6074e2500e28378104 (diff) | |
download | gdb-2106ed9baf1098a5d76469ecde30813065c46c68.zip gdb-2106ed9baf1098a5d76469ecde30813065c46c68.tar.gz gdb-2106ed9baf1098a5d76469ecde30813065c46c68.tar.bz2 |
x86: drop SSE4a from SSE check again
Upon re-consideration in commit 569d50f1c611 ("x86: further refine SSE
check (SSE4a, SHA, GFNI)") I went too far: Mixing of SSE and AVX insns
doesn't suffer as bad a penalty on AMD CPUs as on Intel ones. SSE4a
being an AMD-only extension, it shouldn't be part of the ISA extensions
set for which the diagnostic may get issued. Undo that part.
-rw-r--r-- | gas/ChangeLog | 10 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/sse-check-error.l | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/sse-check-warn.e | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/sse-check.s | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-sse-check-error.l | 6 |
6 files changed, 15 insertions, 11 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index ef4eb8f..4c31ecf 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,13 @@ +2020-06-16 Jan Beulich <jbeulich@suse.com> + + * config/tc-i386.c (md_assemble): Drop SSE4a from SSE check + conditional. + * testsuite/gas/i386/sse-check.s: Adjust comment. + * testsuite/gas/i386/sse-check-error.l, + testsuite/gas/i386/sse-check-warn.e, + testsuite/gas/i386/x86-64-sse-check-error.l: Adjust + expectations. + 2020-06-16 Alan Modra <amodra@gmail.com> * config/tc-tic30.h: Remove OBJ_AOUT support. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index a5b9061..b5d7e1c 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -4753,7 +4753,6 @@ md_assemble (char *line) || i.tm.cpu_flags.bitfield.cpussse3 || i.tm.cpu_flags.bitfield.cpusse4_1 || i.tm.cpu_flags.bitfield.cpusse4_2 - || i.tm.cpu_flags.bitfield.cpusse4a || i.tm.cpu_flags.bitfield.cpupclmul || i.tm.cpu_flags.bitfield.cpuaes || i.tm.cpu_flags.bitfield.cpusha diff --git a/gas/testsuite/gas/i386/sse-check-error.l b/gas/testsuite/gas/i386/sse-check-error.l index 30498b7..782e50b 100644 --- a/gas/testsuite/gas/i386/sse-check-error.l +++ b/gas/testsuite/gas/i386/sse-check-error.l @@ -5,7 +5,6 @@ .*:16: Error: .* .*:19: Error: .* .*:20: Error: .* -.*:23: Error: .* .*:26: Error: .* .*:29: Error: .* .*:32: Error: .* @@ -44,9 +43,8 @@ GAS LISTING .* .* Error: SSE instruction `pcmpgtq' is used [ ]*20[ ]+C1 [ ]*21[ ]+ -[ ]*22[ ]+\# SSE4a instruction +[ ]*22[ ]+\# SSE4a instruction.* [ ]*23[ ]+\?\?\?\? 660F78C0 extrq \$0, \$0, %xmm0 -.* Error: SSE instruction `extrq' is used [ ]*23[ ]+0000 [ ]*24[ ]+ [ ]*25[ ]+\# PCMUL instruction @@ -70,7 +68,7 @@ GAS LISTING .* [ ]*36[ ]+\?\?\?\? 62F27D09 vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\} [ ]*36[ ]+CFC0 [ ]*37[ ]+\?\?\?\? 62F27D48 vgf2p8mulb %zmm0, %zmm0, %zmm0 +[ ]*37[ ]+CFC0 GAS LISTING .* -[ ]*37[ ]+CFC0 diff --git a/gas/testsuite/gas/i386/sse-check-warn.e b/gas/testsuite/gas/i386/sse-check-warn.e index 33f07b2..b8dba94 100644 --- a/gas/testsuite/gas/i386/sse-check-warn.e +++ b/gas/testsuite/gas/i386/sse-check-warn.e @@ -5,7 +5,6 @@ .*:16: Warning: SSE instruction `phaddw' is used .*:19: Warning: SSE instruction `blendvpd' is used .*:20: Warning: SSE instruction `pcmpgtq' is used -.*:23: Warning: SSE instruction `extrq' is used .*:26: Warning: SSE instruction `pclmulqdq' is used .*:29: Warning: SSE instruction `aesdec' is used .*:32: Warning: SSE instruction `sha1nexte' is used diff --git a/gas/testsuite/gas/i386/sse-check.s b/gas/testsuite/gas/i386/sse-check.s index a76d1ef..43a3514 100644 --- a/gas/testsuite/gas/i386/sse-check.s +++ b/gas/testsuite/gas/i386/sse-check.s @@ -19,7 +19,7 @@ _start: blendvpd %xmm0,%xmm1,%xmm0 pcmpgtq %xmm1,%xmm0 -# SSE4a instruction +# SSE4a instruction (no diagnostic) extrq $0, $0, %xmm0 # PCMUL instruction diff --git a/gas/testsuite/gas/i386/x86-64-sse-check-error.l b/gas/testsuite/gas/i386/x86-64-sse-check-error.l index 30498b7..782e50b 100644 --- a/gas/testsuite/gas/i386/x86-64-sse-check-error.l +++ b/gas/testsuite/gas/i386/x86-64-sse-check-error.l @@ -5,7 +5,6 @@ .*:16: Error: .* .*:19: Error: .* .*:20: Error: .* -.*:23: Error: .* .*:26: Error: .* .*:29: Error: .* .*:32: Error: .* @@ -44,9 +43,8 @@ GAS LISTING .* .* Error: SSE instruction `pcmpgtq' is used [ ]*20[ ]+C1 [ ]*21[ ]+ -[ ]*22[ ]+\# SSE4a instruction +[ ]*22[ ]+\# SSE4a instruction.* [ ]*23[ ]+\?\?\?\? 660F78C0 extrq \$0, \$0, %xmm0 -.* Error: SSE instruction `extrq' is used [ ]*23[ ]+0000 [ ]*24[ ]+ [ ]*25[ ]+\# PCMUL instruction @@ -70,7 +68,7 @@ GAS LISTING .* [ ]*36[ ]+\?\?\?\? 62F27D09 vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\} [ ]*36[ ]+CFC0 [ ]*37[ ]+\?\?\?\? 62F27D48 vgf2p8mulb %zmm0, %zmm0, %zmm0 +[ ]*37[ ]+CFC0 GAS LISTING .* -[ ]*37[ ]+CFC0 |