diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2010-07-03 22:15:58 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2010-07-03 22:15:58 +0000 |
commit | c64efb4be7d6e005f3768494ff671a075225b010 (patch) | |
tree | f7232fc62797412511060975161002aeebe17903 | |
parent | 0acf065b19253e02ea32188ea0cbdf4e80e3c42d (diff) | |
download | gdb-c64efb4be7d6e005f3768494ff671a075225b010.zip gdb-c64efb4be7d6e005f3768494ff671a075225b010.tar.gz gdb-c64efb4be7d6e005f3768494ff671a075225b010.tar.bz2 |
Don't call section_symbol() with expr_section.
gas/
2010-07-03 Jan Beulich <jbeulich@novell.com>
PR gas/11732
* config/tc-i386.c (i386_finalize_displacement): Don't call
section_symbol() with expr_section.
gas/testsuite/
2010-07-03 Jan Beulich <jbeulich@novell.com>
PR gas/11732
* gas/i386/i386.exp: Run new tests.
* gas/i386/intel-got{32,64}.{s,d}: New.
-rw-r--r-- | gas/ChangeLog | 6 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 3 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intel-got32.d | 11 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intel-got32.s | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intel-got64.d | 12 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/intel-got64.s | 8 |
8 files changed, 54 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 50dd6c1..32769f7 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2010-07-03 Jan Beulich <jbeulich@novell.com> + + PR gas/11732 + * config/tc-i386.c (i386_finalize_displacement): Don't call + section_symbol() with expr_section. + 2010-07-03 Cary Coutant <ccoutant@google.com> * Makefile.am: Add compress-debug.c and compress-debug.h. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index d065b90..281faaa 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6878,7 +6878,8 @@ i386_finalize_displacement (segT exp_seg ATTRIBUTE_UNUSED, expressionS *exp, goto inv_disp; if (S_IS_LOCAL (exp->X_add_symbol) - && S_GET_SEGMENT (exp->X_add_symbol) != undefined_section) + && S_GET_SEGMENT (exp->X_add_symbol) != undefined_section + && S_GET_SEGMENT (exp->X_add_symbol) != expr_section) section_symbol (S_GET_SEGMENT (exp->X_add_symbol)); exp->X_op = O_subtract; exp->X_op_symbol = GOT_symbol; diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index c5f4325..c8c5e2b 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-07-03 Jan Beulich <jbeulich@novell.com> + + PR gas/11732 + * gas/i386/i386.exp: Run new tests. + * gas/i386/intel-got{32,64}.{s,d}: New. + 2010-07-01 H.J. Lu <hongjiu.lu@intel.com> AVX Programming Reference (June, 2010) diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index ccda6f5..ecddc38 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -37,6 +37,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "intel16" run_list_test "intelbad" "" run_dump_test "intelok" + run_dump_test "intel-got32" run_dump_test "prefix" run_dump_test "amd" run_dump_test "katmai" @@ -321,6 +322,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_dump_test "x86-64-opcode-inval-intel" } run_dump_test "rexw" + run_dump_test "intel-got64" run_dump_test "x86-64-fxsave" run_dump_test "x86-64-fxsave-intel" run_dump_test "x86-64-arch-1" diff --git a/gas/testsuite/gas/i386/intel-got32.d b/gas/testsuite/gas/i386/intel-got32.d new file mode 100644 index 0000000..8e5c797 --- /dev/null +++ b/gas/testsuite/gas/i386/intel-got32.d @@ -0,0 +1,11 @@ +#objdump: -dwMintel +#name: i386 intel-got + +.*: +file format .* + +Disassembly of section .text: + +0+000 <_start>: +[ ]*[0-9a-f]+:[ ]+8b 15 04 00 00 00[ ]+mov[ ]+edx,(DWORD PTR )?(ds:)?0x4 +[ ]*[0-9a-f]+:[ ]+c3[ ]+ret[ ]* +#pass diff --git a/gas/testsuite/gas/i386/intel-got32.s b/gas/testsuite/gas/i386/intel-got32.s new file mode 100644 index 0000000..af1caa9 --- /dev/null +++ b/gas/testsuite/gas/i386/intel-got32.s @@ -0,0 +1,7 @@ +.text +.intel_syntax noprefix +_start: + mov edx, [x1@GOTOFF + x2] + ret + +.equ x2, 4 diff --git a/gas/testsuite/gas/i386/intel-got64.d b/gas/testsuite/gas/i386/intel-got64.d new file mode 100644 index 0000000..e16f552 --- /dev/null +++ b/gas/testsuite/gas/i386/intel-got64.d @@ -0,0 +1,12 @@ +#objdump: -dwMintel +#name: x86-64 intel-got + +.*: +file format .* + +Disassembly of section .text: + +0+000 <_start>: +[ ]*[0-9a-f]+:[ ]+a1 00 00 00 00 00 00 00 00[ ]+movabs[ ]+eax,(ds:)?0x0 +[ ]*[0-9a-f]+:[ ]+ff 35 00 00 00 00[ ]+push[ ]+(QWORD PTR )?\[rip(\+(0x)?0)?\]([ ]+#.*)? +[ ]*[0-9a-f]+:[ ]+c3[ ]+ret[ ]* +#pass diff --git a/gas/testsuite/gas/i386/intel-got64.s b/gas/testsuite/gas/i386/intel-got64.s new file mode 100644 index 0000000..82988c9 --- /dev/null +++ b/gas/testsuite/gas/i386/intel-got64.s @@ -0,0 +1,8 @@ +.text +.intel_syntax noprefix +_start: + movabs eax, [x1@GOTOFF + x2] + push [rip + x1@GOTPCREL + x2] + ret + +.equ x2, 8 |