From 27ac72083be347b60c80b8b9daaf77d0243cde5f Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sat, 15 Sep 2007 22:06:42 +0000 Subject: [PATCH] gas/ 2007-09-15 H.J. Lu PR gas/5034 * config/tc-i386.c (intel_e04): Return 1 if cur_token.code is T_NIL. gas/testsuite/ 2007-09-15 H.J. Lu PR gas/5034 * gas/i386/x86-64-rip.s: Add Intel mode testcases. * gas/i386/x86-64-rip-intel.d: Updated. * gas/i386/x86-64-rip.d: Likewise. --- gas/ChangeLog | 6 ++++++ gas/config/tc-i386.c | 3 +++ gas/testsuite/ChangeLog | 7 +++++++ gas/testsuite/gas/i386/x86-64-rip-intel.d | 14 +++++++++----- gas/testsuite/gas/i386/x86-64-rip.d | 14 +++++++++----- gas/testsuite/gas/i386/x86-64-rip.s | 5 +++++ 6 files changed, 39 insertions(+), 10 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 232640abbcb..b846caeb067 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2007-09-15 H.J. Lu + + PR gas/5034 + * config/tc-i386.c (intel_e04): Return 1 if cur_token.code is + T_NIL. + 2007-09-14 H.J. Lu * config/tc-i386.c (build_modrm_byte): Adjust comment line diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 5453a00b316..1a6d3452e81 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -7913,6 +7913,9 @@ intel_e04 (void) if (!intel_e05()) return 0; + if (cur_token.code == T_NIL) + return 1; + if (nregs >= 0 && NUM_ADDRESS_REGS > nregs) i.base_reg = i386_regtab + REGNAM_AL; /* al is invalid as base */ diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 540fca1d8f5..f8ff093f165 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2007-09-15 H.J. Lu + + PR gas/5034 + * gas/i386/x86-64-rip.s: Add Intel mode testcases. + * gas/i386/x86-64-rip-intel.d: Updated. + * gas/i386/x86-64-rip.d: Likewise. + 2007-09-14 Michael Meissner Dwarakanath Rajagopal Tony Linthicum diff --git a/gas/testsuite/gas/i386/x86-64-rip-intel.d b/gas/testsuite/gas/i386/x86-64-rip-intel.d index 162f654c556..24c9299f78f 100644 --- a/gas/testsuite/gas/i386/x86-64-rip-intel.d +++ b/gas/testsuite/gas/i386/x86-64-rip-intel.d @@ -7,9 +7,13 @@ Disassembly of section .text: -0+000 <.text>: -[ ]*0:[ ]+8d 05 00 00 00 00[ ]+lea[ ]+eax,\[rip\+0x0\][ ]*(#.*)? -[ ]*6:[ ]+8d 05 11 11 11 11[ ]+lea[ ]+eax,\[rip\+0x11111111\][ ]*(#.*)? -[ ]*c:[ ]+8d 05 01 00 00 00[ ]+lea[ ]+eax,\[rip\+0x1\][ ]*(#.*)? -[ ]*12:[ ]+8d 05 00 00 00 00[ ]+lea[ ]+eax,\[rip\+0x0\][ ]*(#.*)? +0+ <.text>: +[ ]*[a-f0-9]+: 8d 05 00 00 00 00 lea eax,\[rip\+0x0\][ ]*#[ ]*0x[a-f0-9]+[ ]+[a-f0-9]+: R_X86_64_PC32 symbol-0x4 +[ ]*[a-f0-9]+: 8d 05 11 11 11 11 lea eax,\[rip\+0x11111111\] # 0x1111111d +[ ]*[a-f0-9]+: 8d 05 01 00 00 00 lea eax,\[rip\+0x1\] # 0x13 +[ ]*[a-f0-9]+: 8d 05 00 00 00 00 lea eax,\[rip\+0x0\] # 0x18 +[ ]*[a-f0-9]+: 48 8b 05 00 00 00 00 mov rax,QWORD PTR \[rip\+0x0\][ ]*#[ ]*0x[a-f0-9]+[ ]+[a-f0-9]+: R_X86_64_PC32 __CTOR_END__-0xc +[ ]*[a-f0-9]+: 48 8b 05 00 00 00 00 mov rax,QWORD PTR \[rip\+0x0\][ ]*#[ ]*0x[a-f0-9]+[ ]+[a-f0-9]+: R_X86_64_PC32 __CTOR_END__-0xc +[ ]*[a-f0-9]+: 48 8b 05 00 00 00 00 mov rax,QWORD PTR \[rip\+0x0\][ ]*#[ ]*0x[a-f0-9]+[ ]+[a-f0-9]+: R_X86_64_PC32 __CTOR_END__-0xc +[ ]*[a-f0-9]+: 48 8b 05 00 00 00 00 mov rax,QWORD PTR \[rip\+0x0\][ ]*#[ ]*0x[a-f0-9]+[ ]+[a-f0-9]+: R_X86_64_PC32 __CTOR_END__-0xc #pass diff --git a/gas/testsuite/gas/i386/x86-64-rip.d b/gas/testsuite/gas/i386/x86-64-rip.d index 66fe771b960..aea7faa3801 100644 --- a/gas/testsuite/gas/i386/x86-64-rip.d +++ b/gas/testsuite/gas/i386/x86-64-rip.d @@ -6,9 +6,13 @@ Disassembly of section .text: -0+000 <.text>: -[ ]*0:[ ]+8d 05 00 00 00 00[ ]+lea[ ]+0x0\(%rip\),%eax[ ]*(#.*)? -[ ]*6:[ ]+8d 05 11 11 11 11[ ]+lea[ ]+0x11111111\(%rip\),%eax[ ]*(#.*)? -[ ]*c:[ ]+8d 05 01 00 00 00[ ]+lea[ ]+0x1\(%rip\),%eax[ ]*(#.*)? -[ ]*12:[ ]+8d 05 00 00 00 00[ ]+lea[ ]+0x0\(%rip\),%eax[ ]*(#.*)? +0+ <.text>: +[ ]*[a-f0-9]+: 8d 05 00 00 00 00 lea 0x0\(%rip\),%eax[ ]*#[ ]*0x[a-f0-9]+[ ]+[a-f0-9]+: R_X86_64_PC32 symbol-0x4 +[ ]*[a-f0-9]+: 8d 05 11 11 11 11 lea 0x11111111\(%rip\),%eax # 0x1111111d +[ ]*[a-f0-9]+: 8d 05 01 00 00 00 lea 0x1\(%rip\),%eax # 0x13 +[ ]*[a-f0-9]+: 8d 05 00 00 00 00 lea 0x0\(%rip\),%eax # 0x18 +[ ]*[a-f0-9]+: 48 8b 05 00 00 00 00 mov 0x0\(%rip\),%rax[ ]*#[ ]*0x[a-f0-9]+[ ]+[a-f0-9]+: R_X86_64_PC32 __CTOR_END__-0xc +[ ]*[a-f0-9]+: 48 8b 05 00 00 00 00 mov 0x0\(%rip\),%rax[ ]*#[ ]*0x[a-f0-9]+[ ]+[a-f0-9]+: R_X86_64_PC32 __CTOR_END__-0xc +[ ]*[a-f0-9]+: 48 8b 05 00 00 00 00 mov 0x0\(%rip\),%rax[ ]*#[ ]*0x[a-f0-9]+[ ]+[a-f0-9]+: R_X86_64_PC32 __CTOR_END__-0xc +[ ]*[a-f0-9]+: 48 8b 05 00 00 00 00 mov 0x0\(%rip\),%rax[ ]*#[ ]*0x[a-f0-9]+[ ]+[a-f0-9]+: R_X86_64_PC32 __CTOR_END__-0xc #pass diff --git a/gas/testsuite/gas/i386/x86-64-rip.s b/gas/testsuite/gas/i386/x86-64-rip.s index c6ac1954b21..8ba88c4d102 100644 --- a/gas/testsuite/gas/i386/x86-64-rip.s +++ b/gas/testsuite/gas/i386/x86-64-rip.s @@ -3,3 +3,8 @@ leal 0x11111111(%rip), %eax leal 1(%rip), %eax leal (%rip), %eax +.intel_syntax noprefix +mov rax, QWORD PTR __CTOR_END__-8[rip] +mov rax, QWORD PTR __CTOR_END__+-8[rip] +mov rax, QWORD PTR -8+__CTOR_END__[rip] +mov rax, QWORD PTR __CTOR_END__[rip-8] -- 2.30.2