From 2a70cca486d4f175b25db1d484c7c560d14b8216 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 13 Nov 2009 23:13:48 +0000 Subject: [PATCH] Check rex_ignored. gas/testsuite/ 2009-11-13 H.J. Lu * gas/i386/rex.s: Add a test for VEX insn. * gas/i386/rex.d: Updated. opcodes/ 2009-11-13 H.J. Lu * i386-dis.c (print_insn): Check rex_ignored. --- gas/testsuite/ChangeLog | 5 +++++ gas/testsuite/gas/i386/rex.d | 1 + gas/testsuite/gas/i386/rex.s | 3 +++ opcodes/ChangeLog | 4 ++++ opcodes/i386-dis.c | 2 +- 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 832894d21bc..2c55bd5b5d1 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-11-13 H.J. Lu + + * gas/i386/rex.s: Add a test for VEX insn. + * gas/i386/rex.d: Updated. + 2009-11-13 H.J. Lu * gas/i386/i386.exp: Run long-1, long-1-intel, x86-64-long-1, diff --git a/gas/testsuite/gas/i386/rex.d b/gas/testsuite/gas/i386/rex.d index 9023b49ace4..ed59033fe02 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 a0736c44bc5..055edb725e9 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 ae0166ab41c..82e5f8ab016 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2009-11-13 H.J. Lu + + * i386-dis.c (print_insn): Check rex_ignored. + 2009-11-13 H.J. Lu * i386-dis.c (ckprefix): Updated to return 0 if number of diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 4d71a00909d..2b5718f1647 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. */ -- 2.30.2