Check rex_ignored.
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 13 Nov 2009 23:13:48 +0000 (23:13 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 13 Nov 2009 23:13:48 +0000 (23:13 +0000)
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.

gas/testsuite/ChangeLog
gas/testsuite/gas/i386/rex.d
gas/testsuite/gas/i386/rex.s
opcodes/ChangeLog
opcodes/i386-dis.c

index 832894d..2c55bd5 100644 (file)
@@ -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.
 
index 9023b49..ed59033 100644 (file)
@@ -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
index a0736c4..055edb7 100644 (file)
@@ -10,6 +10,9 @@ _start:
        rex/fxsave (%r8,%r8)
        rex64/fxsave (%r8,%r8)
 
+       .byte 0x40
+       vmovapd (%rax),%xmm0
+
 # Test prefixes family.
        rex
        rex.B
index ae0166a..82e5f8a 100644 (file)
@@ -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.
index 4d71a00..2b5718f 100644 (file)
@@ -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.  */