aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-04-15 09:53:13 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-04-15 09:57:55 -0700
commitf24bcbaa5a6e30556e2da20bfd78e7823741475a (patch)
tree1a56cd0b6f00c81f88800c767c226a0578a5c67a /gas
parent507bd32558eb1c0054b7989d52ac1ab25cc5b0ac (diff)
downloadgdb-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/ChangeLog6
-rw-r--r--gas/testsuite/gas/i386/prefix.d11
-rw-r--r--gas/testsuite/gas/i386/prefix.s32
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