diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-04-15 09:53:13 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-04-15 09:57:55 -0700 |
commit | f24bcbaa5a6e30556e2da20bfd78e7823741475a (patch) | |
tree | 1a56cd0b6f00c81f88800c767c226a0578a5c67a /gas | |
parent | 507bd32558eb1c0054b7989d52ac1ab25cc5b0ac (diff) | |
download | gdb-f24bcbaa5a6e30556e2da20bfd78e7823741475a.zip gdb-f24bcbaa5a6e30556e2da20bfd78e7823741475a.tar.gz gdb-f24bcbaa5a6e30556e2da20bfd78e7823741475a.tar.bz2 |
Handle invalid prefixes for rdrand and rdseed
This patch puts rdrand and rdseed in prefix_table so that invalid
prefixes for rdrand and rdseed are handled properly.
gas/testsuite/
PR binutils/17898
* gas/i386/prefix.s: Add rdrand/rdseed prefix tests.
* gas/i386/prefix.d: Updated.
opcodes/
PR binutils/17898
* i386-dis.c (PREFIX_0FC7_REG_6): Renamed to ...
(PREFIX_MOD_0_0FC7_REG_6): This.
(PREFIX_MOD_3_0FC7_REG_6): New.
(PREFIX_MOD_3_0FC7_REG_7): Likewise.
(prefix_table): Replace PREFIX_0FC7_REG_6 with
PREFIX_MOD_0_0FC7_REG_6. Add PREFIX_MOD_3_0FC7_REG_6 and
PREFIX_MOD_3_0FC7_REG_7.
(mod_table): Replace PREFIX_0FC7_REG_6 with
PREFIX_MOD_0_0FC7_REG_6. Use PREFIX_MOD_3_0FC7_REG_6 and
PREFIX_MOD_3_0FC7_REG_7.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/prefix.d | 11 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/prefix.s | 32 |
3 files changed, 49 insertions, 0 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index ea6a87a..5fa02ac 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2015-04-15 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/17898 + * gas/i386/prefix.s: Add rdrand/rdseed prefix tests. + * gas/i386/prefix.d: Updated. + 2015-04-15 Renlin Li <renlin.li@arm.com> * gas/arm/arch7em.d: Adjust required ssat and ssat16 immediate field. diff --git a/gas/testsuite/gas/i386/prefix.d b/gas/testsuite/gas/i386/prefix.d index a334ab8..7afb0c1 100644 --- a/gas/testsuite/gas/i386/prefix.d +++ b/gas/testsuite/gas/i386/prefix.d @@ -63,4 +63,15 @@ Disassembly of section .text: [ ]*[a-f0-9]+: f3 f0 66 3e 36 90 lock data16 ds ss pause [ ]*[a-f0-9]+: f3 f2 67 3e 36 90 repz repnz addr16 ds ss nop [ ]*[a-f0-9]+: f3 67 f2 66 3e 36 90 repz addr16 repnz ds ss xchg %ax,%ax +[ ]*[a-f0-9]+: f3 0f c7 \(bad\) +[ ]*[a-f0-9]+: f8 clc +[ ]*[a-f0-9]+: 90 nop +[ ]*[a-f0-9]+: f3 0f c7 \(bad\) +[ ]*[a-f0-9]+: f0 90 lock nop +[ ]*[a-f0-9]+: f2 0f c7 \(bad\) +[ ]*[a-f0-9]+: f8 clc +[ ]*[a-f0-9]+: 90 nop +[ ]*[a-f0-9]+: f2 0f c7 \(bad\) +[ ]*[a-f0-9]+: f0 90 lock nop + ... #pass diff --git a/gas/testsuite/gas/i386/prefix.s b/gas/testsuite/gas/i386/prefix.s index 9f90afa..12d8bbc 100644 --- a/gas/testsuite/gas/i386/prefix.s +++ b/gas/testsuite/gas/i386/prefix.s @@ -359,5 +359,37 @@ .byte 0x36 .byte 0x90 +# repz; rdseed %eax + .byte 0xf3 + .byte 0x0f + .byte 0xc7 + .byte 0xf8 + + nop + +# repz; rdrand %eax + .byte 0xf3 + .byte 0x0f + .byte 0xc7 + .byte 0xf0 + + nop + +# repnz; rdseed %eax + .byte 0xf2 + .byte 0x0f + .byte 0xc7 + .byte 0xf8 + + nop + +# repnz; rdrand %eax + .byte 0xf2 + .byte 0x0f + .byte 0xc7 + .byte 0xf0 + + nop + # Get a good alignment. .p2align 4,0 |