diff options
author | Jan Beulich <jbeulich@suse.com> | 2021-02-16 11:33:04 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2021-02-16 11:33:04 +0100 |
commit | 3d70986f2181a3aa4b9660729a8e1313e5ece4e0 (patch) | |
tree | 575b26c167206c674245dfb38efc16f854139fcc /gas | |
parent | 014d61ea14540cc524a6f75d2b925e7bb1a6d289 (diff) | |
download | gdb-3d70986f2181a3aa4b9660729a8e1313e5ece4e0.zip gdb-3d70986f2181a3aa4b9660729a8e1313e5ece4e0.tar.gz gdb-3d70986f2181a3aa4b9660729a8e1313e5ece4e0.tar.bz2 |
x86: honor template rather than actual operands when updating i.xstate
This undoes a change to md_assemble() that 32930e4edbc0 ("x86: Support
GNU_PROPERTY_X86_ISA_1_V[234] marker") did without any explanation. This
broke a CVTPI2PS property test that a subsequent test will add, and the
updates to existing tests also demonstrate what was wrong: For example,
AVX insns update the full YMM, even if a Vex128 variant is in use.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 8 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/property-12.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/property-4.d | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/property-5.d | 2 |
5 files changed, 16 insertions, 8 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index a269303..443511f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,13 @@ 2021-02-16 Jan Beulich <jbeulich@suse.com> + * config/tc-i386.c (md_assemble): Use template rather than + actuals when updating i.xstate. + * testsuite/gas/i386/property-4.d, + testsuite/gas/i386/property-5.d, + testsuite/gas/i386/property-12.d: Adjust expectations. + +2021-02-16 Jan Beulich <jbeulich@suse.com> + * config/tc-i386.c (output_insn): Handle ldmxcsr, stmxcsr, vldmxcsr, vstmxcsr, vzeroall, and vzeroupper. * testsuite/gas/i386/property-ldmxcsr.s, diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 94783f5..2aaffff 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -4874,7 +4874,7 @@ md_assemble (char *line) for (j = 0; j < i.operands; j++) { i.types[j] = operand_type_and (i.types[j], i.tm.operand_types[j]); - switch (i.types[j].bitfield.class) + switch (i.tm.operand_types[j].bitfield.class) { default: break; @@ -4885,13 +4885,13 @@ md_assemble (char *line) i.xstate |= xstate_mask; break; case RegSIMD: - if (i.types[j].bitfield.tmmword) + if (i.tm.operand_types[j].bitfield.tmmword) i.xstate |= xstate_tmm; - else if (i.types[j].bitfield.zmmword) + else if (i.tm.operand_types[j].bitfield.zmmword) i.xstate |= xstate_zmm; - else if (i.types[j].bitfield.ymmword) + else if (i.tm.operand_types[j].bitfield.ymmword) i.xstate |= xstate_ymm; - else if (i.types[j].bitfield.xmmword) + else if (i.tm.operand_types[j].bitfield.xmmword) i.xstate |= xstate_xmm; break; } diff --git a/gas/testsuite/gas/i386/property-12.d b/gas/testsuite/gas/i386/property-12.d index 1a5c297..1cb010a 100644 --- a/gas/testsuite/gas/i386/property-12.d +++ b/gas/testsuite/gas/i386/property-12.d @@ -6,4 +6,4 @@ Displaying notes found in: .note.gnu.property [ ]+Owner[ ]+Data size[ ]+Description GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 Properties: x86 ISA used: x86-64-baseline, x86-64-v4 - x86 feature used: x86, XMM, MASK + x86 feature used: x86, XMM, YMM, ZMM, MASK diff --git a/gas/testsuite/gas/i386/property-4.d b/gas/testsuite/gas/i386/property-4.d index 46450c8..3345c17 100644 --- a/gas/testsuite/gas/i386/property-4.d +++ b/gas/testsuite/gas/i386/property-4.d @@ -6,4 +6,4 @@ Displaying notes found in: .note.gnu.property [ ]+Owner[ ]+Data size[ ]+Description GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 Properties: x86 ISA used: x86-64-baseline, x86-64-v3 - x86 feature used: x86, XMM + x86 feature used: x86, XMM, YMM diff --git a/gas/testsuite/gas/i386/property-5.d b/gas/testsuite/gas/i386/property-5.d index c04a6b8..cad4a4d 100644 --- a/gas/testsuite/gas/i386/property-5.d +++ b/gas/testsuite/gas/i386/property-5.d @@ -6,4 +6,4 @@ Displaying notes found in: .note.gnu.property [ ]+Owner[ ]+Data size[ ]+Description GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0 Properties: x86 ISA used: x86-64-baseline, x86-64-v4 - x86 feature used: x86, XMM + x86 feature used: x86, XMM, YMM, ZMM |