* [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes
@ 2021-02-15 13:35 Jan Beulich
2021-02-15 13:37 ` [PATCH 1/4] x86: make common property tests common Jan Beulich
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Jan Beulich @ 2021-02-15 13:35 UTC (permalink / raw)
To: Binutils
There are more quirks afaict, but I wanted to start somewhere.
1: make common property tests common
2: record register use for SIMD insns without respective explicit operands
3: honor template rather than actual operands when updating i.xstate
4: CVTPI2PD has special behavior
Jan
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/4] x86: make common property tests common
2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
@ 2021-02-15 13:37 ` Jan Beulich
2021-02-15 13:37 ` [PATCH 2/4] x86: record register use for SIMD insns without respective explicit operands Jan Beulich
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Jan Beulich @ 2021-02-15 13:37 UTC (permalink / raw)
To: Binutils
There's no need to run the exact same test twice. Move the tests which
don't differ between 32- and 64-bit to the "Common tests" section.
gas/
2021-02-XX Jan Beulich <jbeulich@suse.com>
* testsuite/gas/i386/i386.exp: Move bitness-independent property
tests to bitness independent section.
* testsuite/gas/i386/x86-64-property-2.d,
testsuite/gas/i386/x86-64-property-3.d,
testsuite/gas/i386/x86-64-property-4.d,
testsuite/gas/i386/x86-64-property-5.d,
testsuite/gas/i386/x86-64-property-6.d,
testsuite/gas/i386/x86-64-property-10.d,
testsuite/gas/i386/x86-64-property-11.d,
testsuite/gas/i386/x86-64-property-12.d,
testsuite/gas/i386/x86-64-property-13.d: Delete.
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -655,15 +655,6 @@ if [gas_32_check] then {
run_dump_test "unique"
run_dump_test "property-1"
- run_dump_test "property-2"
- run_dump_test "property-3"
- run_dump_test "property-4"
- run_dump_test "property-5"
- run_dump_test "property-6"
- run_dump_test "property-10"
- run_dump_test "property-11"
- run_dump_test "property-12"
- run_dump_test "property-13"
if {[istarget "*-*-linux*"]} then {
run_dump_test "align-branch-3"
@@ -725,6 +716,16 @@ if {[is_elf_format] || [istarget "*-*-vx
run_dump_test "dw2-compressed-3a"
run_dump_test "dw2-compressed-3b"
+ run_dump_test "property-2"
+ run_dump_test "property-3"
+ run_dump_test "property-4"
+ run_dump_test "property-5"
+ run_dump_test "property-6"
+ run_dump_test "property-10"
+ run_dump_test "property-11"
+ run_dump_test "property-12"
+ run_dump_test "property-13"
+
if {![istarget "*-*-dragonfly*"]
&& ![istarget "*-*-gnu*"]
&& ![istarget "*-*-freebsd*"]
@@ -1274,18 +1275,9 @@ if [gas_64_check] then {
run_dump_test "x86-64-unique"
run_dump_test "x86-64-property-1"
- run_dump_test "x86-64-property-2"
- run_dump_test "x86-64-property-3"
- run_dump_test "x86-64-property-4"
- run_dump_test "x86-64-property-5"
- run_dump_test "x86-64-property-6"
run_dump_test "x86-64-property-7"
run_dump_test "x86-64-property-8"
run_dump_test "x86-64-property-9"
- run_dump_test "x86-64-property-10"
- run_dump_test "x86-64-property-11"
- run_dump_test "x86-64-property-12"
- run_dump_test "x86-64-property-13"
run_dump_test "x86-64-property-14"
if {[istarget "*-*-linux*"]} then {
--- a/gas/testsuite/gas/i386/x86-64-property-2.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 2
-#source: property-2.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-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 feature used: x86
--- a/gas/testsuite/gas/i386/x86-64-property-3.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 3
-#source: property-3.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-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-v2
- x86 feature used: x86, XMM
--- a/gas/testsuite/gas/i386/x86-64-property-4.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 4
-#source: property-4.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-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
--- a/gas/testsuite/gas/i386/x86-64-property-5.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 5
-#source: property-5.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-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
--- a/gas/testsuite/gas/i386/x86-64-property-6.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 6
-#source: property-6.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-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, MASK
--- a/gas/testsuite/gas/i386/x86-64-property-10.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 10
-#source: property-10.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-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 feature used: x86, XMM
--- a/gas/testsuite/gas/i386/x86-64-property-11.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 11
-#source: property-11.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-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
--- a/gas/testsuite/gas/i386/x86-64-property-12.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 12
-#source: property-12.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-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
--- a/gas/testsuite/gas/i386/x86-64-property-13.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#name: x86-64 property 13
-#source: property-13.s
-#as: -mx86-used-note=yes --generate-missing-build-notes=no
-#readelf: -n
-
-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 feature used: x86, XMM, YMM, ZMM, MASK
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/4] x86: record register use for SIMD insns without respective explicit operands
2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
2021-02-15 13:37 ` [PATCH 1/4] x86: make common property tests common Jan Beulich
@ 2021-02-15 13:37 ` Jan Beulich
2021-02-15 13:38 ` [PATCH 3/4] x86: honor template rather than actual operands when updating i.xstate Jan Beulich
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Jan Beulich @ 2021-02-15 13:37 UTC (permalink / raw)
To: Binutils
VZERO{ALL,UPPER} modify YMM registers despite having no operands.
While {,V}{LD,ST}MXCSR don't modify XMM registers, MXCSR and XMMn
collectively form underlying machine state.
gas/
2021-02-XX 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,
testsuite/gas/i386/property-ldmxcsr.d,
testsuite/gas/i386/property-vldmxcsr.s,
testsuite/gas/i386/property-vldmxcsr.d,
testsuite/gas/i386/property-vzeroall.s,
testsuite/gas/i386/property-vzeroall.d: New.
* testsuite/gas/i386/i386.exp: Run new tests.
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -9208,10 +9208,12 @@ output_insn (void)
|| i.tm.cpu_flags.bitfield.cpu687
|| i.tm.cpu_flags.bitfield.cpufisttp)
x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_X87;
+
if ((i.xstate & xstate_mmx)
|| i.tm.base_opcode == 0xf77 /* emms */
|| i.tm.base_opcode == 0xf0e /* femms */)
x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_MMX;
+
if (i.index_reg)
{
if (i.index_reg->reg_type.bitfield.zmmword)
@@ -9221,10 +9223,20 @@ output_insn (void)
else if (i.index_reg->reg_type.bitfield.xmmword)
i.xstate |= xstate_xmm;
}
+
+ /* vzeroall / vzeroupper */
+ if (i.tm.base_opcode == 0x77 && i.tm.cpu_flags.bitfield.cpuavx)
+ i.xstate |= xstate_ymm;
+
if ((i.xstate & xstate_xmm)
+ /* ldmxcsr / stmxcsr */
+ || (i.tm.base_opcode == 0xfae && i.tm.cpu_flags.bitfield.cpusse)
+ /* vldmxcsr / vstmxcsr */
+ || (i.tm.base_opcode == 0xae && i.tm.cpu_flags.bitfield.cpuavx)
|| i.tm.cpu_flags.bitfield.cpuwidekl
|| i.tm.cpu_flags.bitfield.cpukl)
x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XMM;
+
if ((i.xstate & xstate_ymm) == xstate_ymm)
x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_YMM;
if ((i.xstate & xstate_zmm) == xstate_zmm)
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -725,6 +725,9 @@ if {[is_elf_format] || [istarget "*-*-vx
run_dump_test "property-11"
run_dump_test "property-12"
run_dump_test "property-13"
+ run_dump_test "property-ldmxcsr"
+ run_dump_test "property-vldmxcsr"
+ run_dump_test "property-vzeroall"
if {![istarget "*-*-dragonfly*"]
&& ![istarget "*-*-gnu*"]
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-ldmxcsr.d
@@ -0,0 +1,9 @@
+#name: i386 property ldmxcsr
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+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 feature used: x86, XMM
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-ldmxcsr.s
@@ -0,0 +1,2 @@
+ .text
+ ldmxcsr (%eax)
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-vldmxcsr.d
@@ -0,0 +1,9 @@
+#name: i386 property vldmxcsr
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+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
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-vldmxcsr.s
@@ -0,0 +1,2 @@
+ .text
+ vldmxcsr (%eax)
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-vzeroall.d
@@ -0,0 +1,9 @@
+#name: i386 property vzeroall
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+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, YMM
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-vzeroall.s
@@ -0,0 +1,2 @@
+ .text
+ vzeroall
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/4] x86: honor template rather than actual operands when updating i.xstate
2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
2021-02-15 13:37 ` [PATCH 1/4] x86: make common property tests common Jan Beulich
2021-02-15 13:37 ` [PATCH 2/4] x86: record register use for SIMD insns without respective explicit operands Jan Beulich
@ 2021-02-15 13:38 ` Jan Beulich
2021-02-15 13:38 ` [PATCH 4/4] x86: CVTPI2PD has special behavior Jan Beulich
2021-02-15 14:52 ` [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes H.J. Lu
4 siblings, 0 replies; 6+ messages in thread
From: Jan Beulich @ 2021-02-15 13:38 UTC (permalink / raw)
To: Binutils
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.
gas/
2021-02-XX 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.
--- 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;
}
--- 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.pro
[ ]+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
--- 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.pro
[ ]+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
--- 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.pro
[ ]+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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 4/4] x86: CVTPI2PD has special behavior
2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
` (2 preceding siblings ...)
2021-02-15 13:38 ` [PATCH 3/4] x86: honor template rather than actual operands when updating i.xstate Jan Beulich
@ 2021-02-15 13:38 ` Jan Beulich
2021-02-15 14:52 ` [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes H.J. Lu
4 siblings, 0 replies; 6+ messages in thread
From: Jan Beulich @ 2021-02-15 13:38 UTC (permalink / raw)
To: Binutils
CVTPI2PD with a memory operand, unlike CVTPI2PS, doesn't engage MMX
logic. Therefore it
- has a proper AVX equivalent (CVTDQ2PD) and hence can be subject to
SSE2AVX translation and SSE checking,
- should not record MMX use in the respective ELF note.
gas/
2021-02-XX Jan Beulich <jbeulich@suse.com>
* testsuite/gas/i386/sse-check.s,
testsuite/gas/i386/sse2avx.s,
testsuite/gas/i386/x86-64-sse2avx.s: Add CVTPI2PD cases.
* testsuite/gas/i386/sse-check-error.l,
testsuite/gas/i386/sse-check-warn.e,
testsuite/gas/i386/sse-check.d,
testsuite/gas/i386/sse2avx.d,
testsuite/gas/i386/x86-64-sse-check-error.l,
testsuite/gas/i386/x86-64-sse2avx.d: Adjust expecations.
* testsuite/gas/i386/property-cvtpi2pd.s,
testsuite/gas/i386/property-cvtpi2pd.d,
testsuite/gas/i386/property-cvtpi2ps.s,
testsuite/gas/i386/property-cvtpi2ps.d: New.
* testsuite/gas/i386/i386.exp: Run new tests.
opcodes/
2021-02-XX Jan Beulich <jbeulich@suse.com>
* i386-opc.tbl: Split CVTPI2PD template. Add SSE2AVX variant.
* i386-tbl.h: Re-generate.
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -725,6 +725,8 @@ if {[is_elf_format] || [istarget "*-*-vx
run_dump_test "property-11"
run_dump_test "property-12"
run_dump_test "property-13"
+ run_dump_test "property-cvtpi2pd"
+ run_dump_test "property-cvtpi2ps"
run_dump_test "property-ldmxcsr"
run_dump_test "property-vldmxcsr"
run_dump_test "property-vzeroall"
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2pd.d
@@ -0,0 +1,9 @@
+#name: i386 property cvtpi2pd
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+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 feature used: x86, XMM
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2pd.s
@@ -0,0 +1,2 @@
+ .text
+ cvtpi2pd (%eax), %xmm0
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2ps.d
@@ -0,0 +1,9 @@
+#name: i386 property cvtpi2ps
+#as: -mx86-used-note=yes --generate-missing-build-notes=no
+#readelf: -n
+
+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 feature used: x86, MMX, XMM
--- /dev/null
+++ b/gas/testsuite/gas/i386/property-cvtpi2ps.s
@@ -0,0 +1,2 @@
+ .text
+ cvtpi2ps (%eax), %xmm0
--- a/gas/testsuite/gas/i386/sse-check-error.l
+++ b/gas/testsuite/gas/i386/sse-check-error.l
@@ -1,14 +1,15 @@
.*: Assembler messages:
.*:7: Error: .*
.*:10: Error: .*
-.*:13: Error: .*
-.*:16: Error: .*
-.*:19: Error: .*
+.*:14: Error: .*
+.*:17: Error: .*
.*:20: Error: .*
-.*:26: Error: .*
-.*:29: Error: .*
-.*:32: Error: .*
-.*:35: Error: .*
+.*:23: Error: .*
+.*:24: Error: .*
+.*:30: Error: .*
+.*:33: Error: .*
+.*:36: Error: .*
+.*:39: Error: .*
GAS LISTING .*
@@ -26,49 +27,55 @@ GAS LISTING .*
[ ]*10[ ]+\?\?\?\? 660F58CA addpd %xmm2,%xmm1
.* Error: SSE instruction `addpd' is used
[ ]*11[ ]+
-[ ]*12[ ]+\# SSE3 instruction
-[ ]*13[ ]+\?\?\?\? 660FD0CA addsubpd %xmm2,%xmm1
+[ ]*[0-9]+[ ]+# special case SSE2 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F2ACA cvtpi2pd %mm2,%xmm1
+[ ]*[0-9]+[ ]+\?\?\?\? 660F2A0A cvtpi2pd \(%edx\),%xmm1
+.* Error: SSE instruction `cvtpi2pd' is used
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE3 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660FD0CA addsubpd %xmm2,%xmm1
.* Error: SSE instruction `addsubpd' is used
-[ ]*14[ ]+
-[ ]*15[ ]+\# SSSE3 instruction
-[ ]*16[ ]+\?\?\?\? 660F3801 phaddw %xmm2,%xmm1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSSE3 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3801 phaddw %xmm2,%xmm1
.* Error: SSE instruction `phaddw' is used
-[ ]*16[ ]+CA
-[ ]*17[ ]+
-[ ]*18[ ]+\# SSE4 instructions
-[ ]*19[ ]+\?\?\?\? 660F3815 blendvpd %xmm0,%xmm1,%xmm0
+[ ]*[0-9]+[ ]+CA
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE4 instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3815 blendvpd %xmm0,%xmm1,%xmm0
.* Error: SSE instruction `blendvpd' is used
-[ ]*19[ ]+C1
-[ ]*20[ ]+\?\?\?\? 660F3837 pcmpgtq %xmm1,%xmm0
+[ ]*[0-9]+[ ]+C1
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3837 pcmpgtq %xmm1,%xmm0
.* Error: SSE instruction `pcmpgtq' is used
-[ ]*20[ ]+C1
-[ ]*21[ ]+
-[ ]*22[ ]+\# SSE4a instruction.*
-[ ]*23[ ]+\?\?\?\? 660F78C0 extrq \$0, \$0, %xmm0
-[ ]*23[ ]+0000
-[ ]*24[ ]+
-[ ]*25[ ]+\# PCMUL instruction
-[ ]*26[ ]+\?\?\?\? 660F3A44 pclmulqdq \$-1,%xmm1,%xmm2
+[ ]*[0-9]+[ ]+C1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE4a instruction.*
+[ ]*[0-9]+[ ]+\?\?\?\? 660F78C0 extrq \$0, \$0, %xmm0
+[ ]*[0-9]+[ ]+0000
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# PCMUL instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3A44 pclmulqdq \$-1,%xmm1,%xmm2
.* Error: SSE instruction `pclmulqdq' is used
-[ ]*26[ ]+D1FF
-[ ]*27[ ]+
-[ ]*28[ ]+\# AES instructions
-[ ]*29[ ]+\?\?\?\? 660F38DE aesdec %xmm1,%xmm2
+[ ]*[0-9]+[ ]+D1FF
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# AES instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F38DE aesdec %xmm1,%xmm2
.* Error: SSE instruction `aesdec' is used
-[ ]*29[ ]+D1
-[ ]*30[ ]+
-[ ]*31[ ]+\# SHA instruction
-[ ]*32[ ]+\?\?\?\? 0F38C8C0 sha1nexte %xmm0, %xmm0
+[ ]*[0-9]+[ ]+D1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SHA instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 0F38C8C0 sha1nexte %xmm0, %xmm0
.* Error: SSE instruction `sha1nexte' is used
-[ ]*33[ ]+
-[ ]*34[ ]+\# GFNI instructions
-[ ]*35[ ]+\?\?\?\? 660F38CF gf2p8mulb %xmm1,%xmm2
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# GFNI instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F38CF gf2p8mulb %xmm1,%xmm2
.* Error: SSE instruction `gf2p8mulb' is used
-[ ]*35[ ]+D1
-[ ]*36[ ]+\?\?\?\? 62F27D09 vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
-[ ]*36[ ]+CFC0
-[ ]*37[ ]+\?\?\?\? 62F27D48 vgf2p8mulb %zmm0, %zmm0, %zmm0
-[ ]*37[ ]+CFC0
\fGAS LISTING .*
+[ ]*[0-9]+[ ]+D1
+[ ]*[0-9]+[ ]+\?\?\?\? 62F27D09 vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
+[ ]*[0-9]+[ ]+CFC0
+[ ]*[0-9]+[ ]+\?\?\?\? 62F27D48 vgf2p8mulb %zmm0, %zmm0, %zmm0
+[ ]*[0-9]+[ ]+CFC0
+
--- a/gas/testsuite/gas/i386/sse-check-warn.e
+++ b/gas/testsuite/gas/i386/sse-check-warn.e
@@ -1,11 +1,12 @@
.*: Assembler messages:
.*:7: Warning: SSE instruction `addps' is used
.*:10: Warning: SSE instruction `addpd' is used
-.*:13: Warning: SSE instruction `addsubpd' is used
-.*:16: Warning: SSE instruction `phaddw' is used
-.*:19: Warning: SSE instruction `blendvpd' is used
-.*:20: Warning: SSE instruction `pcmpgtq' is used
-.*:26: Warning: SSE instruction `pclmulqdq' is used
-.*:29: Warning: SSE instruction `aesdec' is used
-.*:32: Warning: SSE instruction `sha1nexte' is used
-.*:35: Warning: SSE instruction `gf2p8mulb' is used
+.*:14: Warning: SSE instruction `cvtpi2pd' is used
+.*:17: Warning: SSE instruction `addsubpd' is used
+.*:20: Warning: SSE instruction `phaddw' is used
+.*:23: Warning: SSE instruction `blendvpd' is used
+.*:24: Warning: SSE instruction `pcmpgtq' is used
+.*:30: Warning: SSE instruction `pclmulqdq' is used
+.*:33: Warning: SSE instruction `aesdec' is used
+.*:36: Warning: SSE instruction `sha1nexte' is used
+.*:39: Warning: SSE instruction `gf2p8mulb' is used
--- a/gas/testsuite/gas/i386/sse-check.d
+++ b/gas/testsuite/gas/i386/sse-check.d
@@ -9,6 +9,8 @@ Disassembly of section .text:
0+ <_start>:
[ ]*[a-f0-9]+: 0f 58 ca addps %xmm2,%xmm1
[ ]*[a-f0-9]+: 66 0f 58 ca addpd %xmm2,%xmm1
+[ ]*[a-f0-9]+: 66 0f 2a ca cvtpi2pd %mm2,%xmm1
+[ ]*[a-f0-9]+: (67 )?66 0f 2a 0a( )? cvtpi2pd \(%edx\),%xmm1
[ ]*[a-f0-9]+: 66 0f d0 ca addsubpd %xmm2,%xmm1
[ ]*[a-f0-9]+: 66 0f 38 01 ca phaddw %xmm2,%xmm1
[ ]*[a-f0-9]+: 66 0f 38 15 c1 blendvpd %xmm0,%xmm1,%xmm0
--- a/gas/testsuite/gas/i386/sse-check.s
+++ b/gas/testsuite/gas/i386/sse-check.s
@@ -9,6 +9,10 @@ _start:
# SSE2 instruction
addpd %xmm2,%xmm1
+# special case SSE2 instruction
+ cvtpi2pd %mm2,%xmm1
+ cvtpi2pd (%edx),%xmm1
+
# SSE3 instruction
addsubpd %xmm2,%xmm1
--- a/gas/testsuite/gas/i386/sse2avx.d
+++ b/gas/testsuite/gas/i386/sse2avx.d
@@ -408,6 +408,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: c5 f9 2f 21 vcomisd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 fa e6 f4 vcvtdq2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%ecx\),%xmm4
+[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 f8 5a f4 vcvtps2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 f8 5a 21 vcvtps2pd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 fb 12 f4 vmovddup %xmm4,%xmm6
@@ -986,6 +987,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: c5 f9 2f 21 vcomisd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 fa e6 f4 vcvtdq2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%ecx\),%xmm4
+[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 f8 5a f4 vcvtps2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 f8 5a 21 vcvtps2pd \(%ecx\),%xmm4
[ ]*[a-f0-9]+: c5 fb 12 f4 vmovddup %xmm4,%xmm6
--- a/gas/testsuite/gas/i386/sse2avx.s
+++ b/gas/testsuite/gas/i386/sse2avx.s
@@ -425,6 +425,7 @@ _start:
comisd (%ecx),%xmm4
cvtdq2pd %xmm4,%xmm6
cvtdq2pd (%ecx),%xmm4
+ cvtpi2pd (%ecx),%xmm4
cvtps2pd %xmm4,%xmm6
cvtps2pd (%ecx),%xmm4
movddup %xmm4,%xmm6
@@ -1086,6 +1087,7 @@ _start:
comisd xmm4,QWORD PTR [ecx]
cvtdq2pd xmm6,xmm4
cvtdq2pd xmm4,QWORD PTR [ecx]
+ cvtpi2pd xmm4,QWORD PTR [ecx]
cvtps2pd xmm6,xmm4
cvtps2pd xmm4,QWORD PTR [ecx]
movddup xmm6,xmm4
--- a/gas/testsuite/gas/i386/x86-64-sse-check-error.l
+++ b/gas/testsuite/gas/i386/x86-64-sse-check-error.l
@@ -1,14 +1,15 @@
.*: Assembler messages:
.*:7: Error: .*
.*:10: Error: .*
-.*:13: Error: .*
-.*:16: Error: .*
-.*:19: Error: .*
+.*:14: Error: .*
+.*:17: Error: .*
.*:20: Error: .*
-.*:26: Error: .*
-.*:29: Error: .*
-.*:32: Error: .*
-.*:35: Error: .*
+.*:23: Error: .*
+.*:24: Error: .*
+.*:30: Error: .*
+.*:33: Error: .*
+.*:36: Error: .*
+.*:39: Error: .*
GAS LISTING .*
@@ -26,49 +27,56 @@ GAS LISTING .*
[ ]*10[ ]+\?\?\?\? 660F58CA addpd %xmm2,%xmm1
.* Error: SSE instruction `addpd' is used
[ ]*11[ ]+
-[ ]*12[ ]+\# SSE3 instruction
-[ ]*13[ ]+\?\?\?\? 660FD0CA addsubpd %xmm2,%xmm1
+[ ]*[0-9]+[ ]+# special case SSE2 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F2ACA cvtpi2pd %mm2,%xmm1
+[ ]*[0-9]+[ ]+\?\?\?\? 67660F2A cvtpi2pd \(%edx\),%xmm1
+.* Error: SSE instruction `cvtpi2pd' is used
+[ ]*[0-9]+[ ]+0A
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE3 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660FD0CA addsubpd %xmm2,%xmm1
.* Error: SSE instruction `addsubpd' is used
-[ ]*14[ ]+
-[ ]*15[ ]+\# SSSE3 instruction
-[ ]*16[ ]+\?\?\?\? 660F3801 phaddw %xmm2,%xmm1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSSE3 instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3801 phaddw %xmm2,%xmm1
.* Error: SSE instruction `phaddw' is used
-[ ]*16[ ]+CA
-[ ]*17[ ]+
-[ ]*18[ ]+\# SSE4 instructions
-[ ]*19[ ]+\?\?\?\? 660F3815 blendvpd %xmm0,%xmm1,%xmm0
+[ ]*[0-9]+[ ]+CA
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE4 instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3815 blendvpd %xmm0,%xmm1,%xmm0
.* Error: SSE instruction `blendvpd' is used
-[ ]*19[ ]+C1
-[ ]*20[ ]+\?\?\?\? 660F3837 pcmpgtq %xmm1,%xmm0
+[ ]*[0-9]+[ ]+C1
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3837 pcmpgtq %xmm1,%xmm0
.* Error: SSE instruction `pcmpgtq' is used
-[ ]*20[ ]+C1
-[ ]*21[ ]+
-[ ]*22[ ]+\# SSE4a instruction.*
-[ ]*23[ ]+\?\?\?\? 660F78C0 extrq \$0, \$0, %xmm0
-[ ]*23[ ]+0000
-[ ]*24[ ]+
-[ ]*25[ ]+\# PCMUL instruction
-[ ]*26[ ]+\?\?\?\? 660F3A44 pclmulqdq \$-1,%xmm1,%xmm2
+[ ]*[0-9]+[ ]+C1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SSE4a instruction.*
+[ ]*[0-9]+[ ]+\?\?\?\? 660F78C0 extrq \$0, \$0, %xmm0
+[ ]*[0-9]+[ ]+0000
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# PCMUL instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 660F3A44 pclmulqdq \$-1,%xmm1,%xmm2
.* Error: SSE instruction `pclmulqdq' is used
-[ ]*26[ ]+D1FF
-[ ]*27[ ]+
-[ ]*28[ ]+\# AES instructions
-[ ]*29[ ]+\?\?\?\? 660F38DE aesdec %xmm1,%xmm2
+[ ]*[0-9]+[ ]+D1FF
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# AES instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F38DE aesdec %xmm1,%xmm2
.* Error: SSE instruction `aesdec' is used
-[ ]*29[ ]+D1
-[ ]*30[ ]+
-[ ]*31[ ]+\# SHA instruction
-[ ]*32[ ]+\?\?\?\? 0F38C8C0 sha1nexte %xmm0, %xmm0
+[ ]*[0-9]+[ ]+D1
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# SHA instruction
+[ ]*[0-9]+[ ]+\?\?\?\? 0F38C8C0 sha1nexte %xmm0, %xmm0
.* Error: SSE instruction `sha1nexte' is used
-[ ]*33[ ]+
-[ ]*34[ ]+\# GFNI instructions
-[ ]*35[ ]+\?\?\?\? 660F38CF gf2p8mulb %xmm1,%xmm2
-.* Error: SSE instruction `gf2p8mulb' is used
-[ ]*35[ ]+D1
-[ ]*36[ ]+\?\?\?\? 62F27D09 vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
-[ ]*36[ ]+CFC0
-[ ]*37[ ]+\?\?\?\? 62F27D48 vgf2p8mulb %zmm0, %zmm0, %zmm0
-[ ]*37[ ]+CFC0
+[ ]*[0-9]+[ ]+
+[ ]*[0-9]+[ ]+\# GFNI instructions
+[ ]*[0-9]+[ ]+\?\?\?\? 660F38CF gf2p8mulb %xmm1,%xmm2
\fGAS LISTING .*
+.* Error: SSE instruction `gf2p8mulb' is used
+[ ]*[0-9]+[ ]+D1
+[ ]*[0-9]+[ ]+\?\?\?\? 62F27D09 vgf2p8mulb %xmm0, %xmm0, %xmm0\{%k1\}
+[ ]*[0-9]+[ ]+CFC0
+[ ]*[0-9]+[ ]+\?\?\?\? 62F27D48 vgf2p8mulb %zmm0, %zmm0, %zmm0
+[ ]*[0-9]+[ ]+CFC0
+
--- a/gas/testsuite/gas/i386/x86-64-sse2avx.d
+++ b/gas/testsuite/gas/i386/x86-64-sse2avx.d
@@ -474,6 +474,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: c5 f9 2f 21 vcomisd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 fa e6 f4 vcvtdq2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%rcx\),%xmm4
+[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 f8 5a f4 vcvtps2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 f8 5a 21 vcvtps2pd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 fb 12 f4 vmovddup %xmm4,%xmm6
@@ -1137,6 +1138,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: c5 f9 2f 21 vcomisd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 fa e6 f4 vcvtdq2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%rcx\),%xmm4
+[ ]*[a-f0-9]+: c5 fa e6 21 vcvtdq2pd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 f8 5a f4 vcvtps2pd %xmm4,%xmm6
[ ]*[a-f0-9]+: c5 f8 5a 21 vcvtps2pd \(%rcx\),%xmm4
[ ]*[a-f0-9]+: c5 fb 12 f4 vmovddup %xmm4,%xmm6
--- a/gas/testsuite/gas/i386/x86-64-sse2avx.s
+++ b/gas/testsuite/gas/i386/x86-64-sse2avx.s
@@ -489,6 +489,7 @@ _start:
comisd (%rcx),%xmm4
cvtdq2pd %xmm4,%xmm6
cvtdq2pd (%rcx),%xmm4
+ cvtpi2pd (%rcx),%xmm4
cvtps2pd %xmm4,%xmm6
cvtps2pd (%rcx),%xmm4
movddup %xmm4,%xmm6
@@ -1260,6 +1261,7 @@ _start:
comisd xmm4,QWORD PTR [rcx]
cvtdq2pd xmm6,xmm4
cvtdq2pd xmm4,QWORD PTR [rcx]
+ cvtpi2pd xmm4,QWORD PTR [rcx]
cvtps2pd xmm6,xmm4
cvtps2pd xmm4,QWORD PTR [rcx]
movddup xmm6,xmm4
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -1310,7 +1310,9 @@ cmpsd, 3, 0xf2c2, None, 1, CpuAVX, Modrm
cmpsd, 3, 0x0fc2, None, 2, CpuSSE2, Prefix_0XF2|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
comisd, 2, 0x662f, None, 1, CpuAVX, Modrm|Vex=3|OpcodePrefix=0|VexW0|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
comisd, 2, 0x0f2f, None, 2, CpuSSE2, Prefix_0X66|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
-cvtpi2pd, 2, 0x0f2a, None, 2, CpuSSE2, Prefix_0X66|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|NoAVX, { Qword|Unspecified|BaseIndex|RegMMX, RegXMM }
+cvtpi2pd, 2, 0x0f2a, None, 2, CpuSSE2, Prefix_0X66|Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64|NoAVX, { RegMMX, RegXMM }
+cvtpi2pd, 2, 0xf3e6, None, 1, CpuAVX, Modrm|Vex|OpcodePrefix=0|VexW0|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM }
+cvtpi2pd, 2, 0x0f2a, None, 2, CpuSSE2, Prefix_0X66|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Qword|Unspecified|BaseIndex, RegXMM }
cvtsi2sd, 2, 0xf22a, None, 1, CpuAVX|CpuNo64, Modrm|Vex=3|OpcodePrefix=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Reg32|Dword|Unspecified|BaseIndex, RegXMM }
cvtsi2sd, 2, 0xf22a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|OpcodePrefix=0|VexVVVV=1|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX|ATTSyntax, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM }
cvtsi2sd, 2, 0xf22a, None, 1, CpuAVX|Cpu64, Modrm|Vex=3|OpcodePrefix=0|VexVVVV=1|No_bSuf|No_wSuf|No_sSuf|No_ldSuf|SSE2AVX|IntelSyntax, { Reg32|Reg64|Dword|Qword|Unspecified|BaseIndex, RegXMM }
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes
2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
` (3 preceding siblings ...)
2021-02-15 13:38 ` [PATCH 4/4] x86: CVTPI2PD has special behavior Jan Beulich
@ 2021-02-15 14:52 ` H.J. Lu
4 siblings, 0 replies; 6+ messages in thread
From: H.J. Lu @ 2021-02-15 14:52 UTC (permalink / raw)
To: Jan Beulich; +Cc: Binutils
On Mon, Feb 15, 2021 at 5:35 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> There are more quirks afaict, but I wanted to start somewhere.
>
> 1: make common property tests common
> 2: record register use for SIMD insns without respective explicit operands
> 3: honor template rather than actual operands when updating i.xstate
> 4: CVTPI2PD has special behavior
>
> Jan
OK to all.
Thanks.
--
H.J.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-02-15 14:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-15 13:35 [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes Jan Beulich
2021-02-15 13:37 ` [PATCH 1/4] x86: make common property tests common Jan Beulich
2021-02-15 13:37 ` [PATCH 2/4] x86: record register use for SIMD insns without respective explicit operands Jan Beulich
2021-02-15 13:38 ` [PATCH 3/4] x86: honor template rather than actual operands when updating i.xstate Jan Beulich
2021-02-15 13:38 ` [PATCH 4/4] x86: CVTPI2PD has special behavior Jan Beulich
2021-02-15 14:52 ` [PATCH 0/4] x86: some adjustments to handling of -mx86-used-note=yes H.J. Lu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).