aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2009-11-13 23:13:48 +0000
committerH.J. Lu <hjl.tools@gmail.com>2009-11-13 23:13:48 +0000
commit2a70cca486d4f175b25db1d484c7c560d14b8216 (patch)
treea68ce845d7b01b7d97c3d519f48491e16f99411b
parent4e48512954ed27c1c1e1cf873e01f9028dcb2b3b (diff)
downloadgdb-2a70cca486d4f175b25db1d484c7c560d14b8216.zip
gdb-2a70cca486d4f175b25db1d484c7c560d14b8216.tar.gz
gdb-2a70cca486d4f175b25db1d484c7c560d14b8216.tar.bz2
Check rex_ignored.
gas/testsuite/ 2009-11-13 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/rex.s: Add a test for VEX insn. * gas/i386/rex.d: Updated. opcodes/ 2009-11-13 H.J. Lu <hongjiu.lu@intel.com> * i386-dis.c (print_insn): Check rex_ignored.
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/i386/rex.d1
-rw-r--r--gas/testsuite/gas/i386/rex.s3
-rw-r--r--opcodes/ChangeLog4
-rw-r--r--opcodes/i386-dis.c2
5 files changed, 14 insertions, 1 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 832894d..2c55bd5 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2009-11-13 H.J. Lu <hongjiu.lu@intel.com>
+ * gas/i386/rex.s: Add a test for VEX insn.
+ * gas/i386/rex.d: Updated.
+
+2009-11-13 H.J. Lu <hongjiu.lu@intel.com>
+
* gas/i386/i386.exp: Run long-1, long-1-intel, x86-64-long-1,
and x86-64-long-1-intel.
diff --git a/gas/testsuite/gas/i386/rex.d b/gas/testsuite/gas/i386/rex.d
index 9023b49..ed59033 100644
--- a/gas/testsuite/gas/i386/rex.d
+++ b/gas/testsuite/gas/i386/rex.d
@@ -14,6 +14,7 @@ Disassembly of section .text:
[ ]*[0-9a-f]+:[ ]+4a 0f ae 04 05 00 00 00 00[ ]+(rex.WX? )?fxsaveq?[ ]+(0x0)?\(,%r8(,1)?\)
[ ]*[0-9a-f]+:[ ]+43 0f ae 04 00[ ]+fxsavel?[ ]+\(%r8,%r8(,1)?\)
[ ]*[0-9a-f]+:[ ]+4b 0f ae 04 00[ ]+(rex.W(XB)? )?fxsaveq?[ ]+\(%r8,%r8(,1)?\)
+[ ]*[0-9a-f]+:[ ]+40 c5 f9 28 00[ ]+rex vmovapd \(%rax\),%xmm0
[ ]*[0-9a-f]+:[ ]+40[ ]+rex
[ ]*[0-9a-f]+:[ ]+41[ ]+rex.B
[ ]*[0-9a-f]+:[ ]+42[ ]+rex.X
diff --git a/gas/testsuite/gas/i386/rex.s b/gas/testsuite/gas/i386/rex.s
index a0736c4..055edb7 100644
--- a/gas/testsuite/gas/i386/rex.s
+++ b/gas/testsuite/gas/i386/rex.s
@@ -10,6 +10,9 @@ _start:
rex/fxsave (%r8,%r8)
rex64/fxsave (%r8,%r8)
+ .byte 0x40
+ vmovapd (%rax),%xmm0
+
# Test prefixes family.
rex
rex.B
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index ae0166a..82e5f8a 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,5 +1,9 @@
2009-11-13 H.J. Lu <hongjiu.lu@intel.com>
+ * i386-dis.c (print_insn): Check rex_ignored.
+
+2009-11-13 H.J. Lu <hongjiu.lu@intel.com>
+
* i386-dis.c (ckprefix): Updated to return 0 if number of
prefixes > 14 and record the last position for each prefix.
(lock_prefix): Removed.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 4d71a00..2b5718f 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -10491,7 +10491,7 @@ print_insn (bfd_vma pc, disassemble_info *info)
}
/* Check if the REX prefix used. */
- if ((rex ^ rex_used) == 0)
+ if (rex_ignored == 0 && (rex ^ rex_used) == 0)
all_prefixes[last_rex_prefix] = 0;
/* Check if the SEG prefix used. */