diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index fa691771b8..a84293ea75 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2007-09-26 Jan Beulich + + * gas/i386/x86-64-addr32.d: Adjust expectations. + 2007-09-26 Jan Beulich * gas/i386/reloc64.s: Adjust for %eip-relative addressing no diff --git a/gas/testsuite/gas/i386/x86-64-addr32.d b/gas/testsuite/gas/i386/x86-64-addr32.d index c08f382553..82b3575bc4 100644 --- a/gas/testsuite/gas/i386/x86-64-addr32.d +++ b/gas/testsuite/gas/i386/x86-64-addr32.d @@ -7,9 +7,9 @@ Disassembly of section .text: 0+000 <.text>: -[ ]*0:[ ]+67 48 8d 80 00 00 00 00[ ]+addr32[ ]+lea[ ]+0x0\(%[re]ax\),%rax.* -[ ]*8:[ ]+67 49 8d 80 00 00 00 00[ ]+addr32[ ]+lea[ ]+0x0\(%r8d?\),%rax.* -[ ]*10:[ ]+67 48 8d 05 00 00 00 00[ ]+addr32[ ]+lea[ ]+0x0\(%[re]ip\),%rax.* +[ ]*0:[ ]+67 48 8d 80 00 00 00 00[ ]+(addr32[ ]+)?lea[ ]+0x0\(%eax\),%rax.* +[ ]*8:[ ]+67 49 8d 80 00 00 00 00[ ]+(addr32[ ]+)?lea[ ]+0x0\(%r8d\),%rax.* +[ ]*10:[ ]+67 48 8d 05 00 00 00 00[ ]+(addr32[ ]+)?lea[ ]+0x0\(%eip\),%rax.* [ ]*18:[ ]+67 48 8d 04 25 00 00 00 00[ ]+addr32[ ]+lea[ ]+0x0,%rax.* [ ]*21:[ ]+67 a0 98 08 60 00[ ]+addr32[ ]+mov[ ]+0x600898,%al [ ]*27:[ ]+67 66 a1 98 08 60 00[ ]+addr32[ ]+mov[ ]+0x600898,%ax diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index cada41096f..c8e55e8a6c 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2007-09-26 Jan Beulich + + * i386-dis.c (OP_E_extended): Distinguish rip- and eip- + relative addressing. Update used_prefixes based on whether any + base or index register was printed. + 2007-09-26 Jan Beulich * i386-opc.h (RegEip): Define. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index ecb428fd8f..e66875e44c 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -6390,17 +6390,20 @@ OP_E_extended (int bytemode, int sizeflag, int has_drex) if (riprel) { set_op (disp, 1); - oappend ("(%rip)"); + oappend (sizeflag & AFLAG ? "(%rip)" : "(%eip)"); } } + if (havebase || haveindex || riprel) + used_prefixes |= PREFIX_ADDR; + if (havedisp || (intel_syntax && riprel)) { *obufp++ = open_char; if (intel_syntax && riprel) { set_op (disp, 1); - oappend ("rip"); + oappend (sizeflag & AFLAG ? "rip" : "eip"); } *obufp = '\0'; if (havebase)