aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorMichael Zolotukhin <michael.v.zolotukhin@gmail.com>2013-12-17 09:06:57 -0800
committerH.J. Lu <hjl.tools@gmail.com>2013-12-17 09:06:57 -0800
commit4a357820add595557dcd08d275288a4bcf43cbcb (patch)
treea073102f7de16dc39360f098a1d63cb6b91ca8f0 /gas
parent5879bb8fc592e4aea85bdc2a84381d89850e5770 (diff)
downloadgdb-4a357820add595557dcd08d275288a4bcf43cbcb.zip
gdb-4a357820add595557dcd08d275288a4bcf43cbcb.tar.gz
gdb-4a357820add595557dcd08d275288a4bcf43cbcb.tar.bz2
Properly handle ljmp/lcall with invalid MODRM byte
gas/testsuite/ 2013-12-17 Michael Zolotukhin <michael.v.zolotukhin@gmail.com> * gas/i386/disassem.s: New. * gas/i386/disassem.d: Likewise. * gas/i386/x86-64-disassem.s: Likewise. * gas/i386/x86-64-disassem.d: Likewise. * gas/i386/i386.exp: Run disassem and x86-64-disassem. opcodes/ 2013-12-17 Michael Zolotukhin <michael.v.zolotukhin@gmail.com> * i386-dis.c (MOD_FF_REG_3): New. (MOD_FF_REG_5): Likewise. (mod_table): Add MOD_FF_REG_3 and MOD_FF_REG_5. (reg_table): Use MOD_FF_REG_3 and MOD_FF_REG_5.
Diffstat (limited to 'gas')
-rw-r--r--gas/testsuite/ChangeLog8
-rw-r--r--gas/testsuite/gas/i386/disassem.d14
-rw-r--r--gas/testsuite/gas/i386/disassem.s3
-rw-r--r--gas/testsuite/gas/i386/i386.exp2
-rw-r--r--gas/testsuite/gas/i386/x86-64-disassem.d14
-rw-r--r--gas/testsuite/gas/i386/x86-64-disassem.s3
6 files changed, 44 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index be61299..194a47a 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2013-12-17 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
+
+ * gas/i386/disassem.s: New.
+ * gas/i386/disassem.d: Likewise.
+ * gas/i386/x86-64-disassem.s: Likewise.
+ * gas/i386/x86-64-disassem.d: Likewise.
+ * gas/i386/i386.exp: Run disassem and x86-64-disassem.
+
2013-12-16 Andrew Bennett <andrew.bennett@imgtec.com>
* gas/mips/mips.exp: Add CP1 register name tests.
diff --git a/gas/testsuite/gas/i386/disassem.d b/gas/testsuite/gas/i386/disassem.d
new file mode 100644
index 0000000..d8c6d61
--- /dev/null
+++ b/gas/testsuite/gas/i386/disassem.d
@@ -0,0 +1,14 @@
+#objdump: -drw
+#name: opcodes with invalid modrm byte
+
+.*: +file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+[ ]*[a-f0-9]+:[ ]*ff[ ]*\(bad\)
+[ ]*[a-f0-9]+:[ ]*ef[ ]*out %eax,\(%dx\)
+[ ]*[a-f0-9]+:[ ]*ff[ ]*\(bad\)
+[ ]*[a-f0-9]+:[ ]*d8[ ]*\.byte 0xd8
+#pass
diff --git a/gas/testsuite/gas/i386/disassem.s b/gas/testsuite/gas/i386/disassem.s
new file mode 100644
index 0000000..81b0ef3
--- /dev/null
+++ b/gas/testsuite/gas/i386/disassem.s
@@ -0,0 +1,3 @@
+.text
+.byte 0xFF, 0xEF
+.byte 0xFF, 0xD8
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index 1fb2795..4326838 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -269,6 +269,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_list_test "mpx-inval-1" "-al"
run_dump_test "mpx-add-bnd-prefix"
run_dump_test "sha"
+ run_dump_test "disassem"
# These tests require support for 8 and 16 bit relocs,
# so we only run them for ELF and COFF targets.
@@ -557,6 +558,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
run_dump_test "x86-64-mpx-addr32"
run_dump_test "x86-64-mpx-add-bnd-prefix"
run_dump_test "x86-64-sha"
+ run_dump_test "x86-64-disassem"
if { ![istarget "*-*-aix*"]
&& ![istarget "*-*-beos*"]
diff --git a/gas/testsuite/gas/i386/x86-64-disassem.d b/gas/testsuite/gas/i386/x86-64-disassem.d
new file mode 100644
index 0000000..8662af9
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-disassem.d
@@ -0,0 +1,14 @@
+#objdump: -drw
+#name: x86-64 opcodes with invalid modrm byte
+
+.*: +file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+[ ]*[a-f0-9]+:[ ]*ff[ ]*\(bad\)
+[ ]*[a-f0-9]+:[ ]*ef[ ]*out %eax,\(%dx\)
+[ ]*[a-f0-9]+:[ ]*ff[ ]*\(bad\)
+[ ]*[a-f0-9]+:[ ]*d8[ ]*\.byte 0xd8
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-disassem.s b/gas/testsuite/gas/i386/x86-64-disassem.s
new file mode 100644
index 0000000..81b0ef3
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-disassem.s
@@ -0,0 +1,3 @@
+.text
+.byte 0xFF, 0xEF
+.byte 0xFF, 0xD8