aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2017-11-15 08:51:03 +0100
committerJan Beulich <jbeulich@suse.com>2017-11-15 08:51:03 +0100
commit3a2430e05b1503653ae09cb21feb2a0d4ea51ec7 (patch)
tree1ca884a972fcb08063cd9462d0d68556ecfacb6a /gas
parent0645f0a2a75ad77d9786595978591d3f302f9647 (diff)
downloadfsf-binutils-gdb-3a2430e05b1503653ae09cb21feb2a0d4ea51ec7.zip
fsf-binutils-gdb-3a2430e05b1503653ae09cb21feb2a0d4ea51ec7.tar.gz
fsf-binutils-gdb-3a2430e05b1503653ae09cb21feb2a0d4ea51ec7.tar.bz2
x86: drop VEXI4_Fixup()
The low four bits of an immediate being set when the high bits specify a fourth register operand is not a problem: CPUs ignore these bits rather than raising #UD. Take care of incrementing codep in OP_EX_VexW() instead.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/testsuite/gas/i386/i386.exp1
-rw-r--r--gas/testsuite/gas/i386/noextreg.d12
-rw-r--r--gas/testsuite/gas/i386/noextreg.s10
4 files changed, 28 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 66bc034..3624da7 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,10 @@
2017-11-15 Jan Beulich <jbeulich@suse.com>
+ * testsuite/gas/i386/noextreg.{s,d}: New.
+ * testsuite/gas/i386/i386.exp: Run new test.
+
+2017-11-15 Jan Beulich <jbeulich@suse.com>
+
* testsuite/gas/i386/x86-64-reg.s: Add extended byte reg tests.
* testsuite/gas/i386/x86-64-reg.d,
testsuite/gas/i386/x86-64-reg-intel.d,
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 7a8b642..a053676 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -182,6 +182,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_dump_test "noavx-4"
run_list_test "noavx512-1" "-al"
run_list_test "noavx512-2" "-al"
+ run_dump_test "noextreg"
run_dump_test "xsave"
run_dump_test "xsave-intel"
run_dump_test "aes"
diff --git a/gas/testsuite/gas/i386/noextreg.d b/gas/testsuite/gas/i386/noextreg.d
new file mode 100644
index 0000000..cb181b1
--- /dev/null
+++ b/gas/testsuite/gas/i386/noextreg.d
@@ -0,0 +1,12 @@
+#objdump: -dw
+#name: ix86 no extended registers
+
+.*: file format .*
+
+Disassembly of section .text:
+
+0+ <ix86>:
+[ ]*[a-f0-9]+: c4 e3 79 68 00 00 vfmaddps %xmm0,\(%eax\),%xmm0,%xmm0
+[ ]*[a-f0-9]+: c4 e3 79 68 00 0f vfmaddps %xmm0,\(%eax\),%xmm0,%xmm0
+[ ]*[a-f0-9]+: c3 ret[ ]*
+#pass
diff --git a/gas/testsuite/gas/i386/noextreg.s b/gas/testsuite/gas/i386/noextreg.s
new file mode 100644
index 0000000..229b994
--- /dev/null
+++ b/gas/testsuite/gas/i386/noextreg.s
@@ -0,0 +1,10 @@
+ .intel_syntax noprefix
+ .text
+ix86:
+ vfmaddps xmm0, xmm0, [eax], xmm0
+ .byte 0xc4, 0xe3, 0x79, 0x68, 0x00, 0x0f # vfmaddps xmm0, xmm0, [eax], xmm0
+
+ ret
+
+ .type ix86, @function
+ .size ix86, . - ix86