diff options
author | Michael Zolotukhin <michael.v.zolotukhin@gmail.com> | 2013-12-17 09:06:57 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2013-12-17 09:06:57 -0800 |
commit | 4a357820add595557dcd08d275288a4bcf43cbcb (patch) | |
tree | a073102f7de16dc39360f098a1d63cb6b91ca8f0 /gas | |
parent | 5879bb8fc592e4aea85bdc2a84381d89850e5770 (diff) | |
download | gdb-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/ChangeLog | 8 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/disassem.d | 14 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/disassem.s | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-disassem.d | 14 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-disassem.s | 3 |
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 |