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.
This commit is contained in:
H.J. Lu 2010-07-03 22:15:58 +00:00
parent 0acf065b19
commit c64efb4be7
8 changed files with 54 additions and 1 deletions

View file

@ -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.

View file

@ -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;

View file

@ -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)

View file

@ -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"

View file

@ -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

View file

@ -0,0 +1,7 @@
.text
.intel_syntax noprefix
_start:
mov edx, [x1@GOTOFF + x2]
ret
.equ x2, 4

View file

@ -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

View file

@ -0,0 +1,8 @@
.text
.intel_syntax noprefix
_start:
movabs eax, [x1@GOTOFF + x2]
push [rip + x1@GOTPCREL + x2]
ret
.equ x2, 8