2005-05-19  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (dot_endp): Don't use global symbol for unwind
	relocations in unwind section.

gas/testsuite/
2005-05-19  Jan Beulich  <jbeulich@novell.com>

	* gas/ia64/reloc-uw.s: New.
	* gas/ia64/reloc-uw.d: New.
	* gas/ia64/reloc-uw-ilp32.d: New.
	* gas/ia64/ia64.exp: Run new test.
This commit is contained in:
Jan Beulich 2005-05-19 06:32:01 +00:00
parent abb333a4ed
commit 4600db4835
7 changed files with 62 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2005-05-19 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (dot_endp): Don't use global symbol for unwind
relocations in unwind section.
2005-05-18 Nick Clifton <nickc@redhat.com>
* config/tc-v850.c (md_apply_fix3): Only use the insertion routine

View File

@ -4442,7 +4442,13 @@ dot_endp (dummy)
e.X_op = O_pseudo_fixup;
e.X_op_symbol = pseudo_func[FUNC_SEG_RELATIVE].u.sym;
e.X_add_number = 0;
e.X_add_symbol = unwind.proc_start;
if (!S_IS_LOCAL (unwind.proc_start)
&& S_IS_DEFINED (unwind.proc_start))
e.X_add_symbol = symbol_temp_new (S_GET_SEGMENT (unwind.proc_start),
S_GET_VALUE (unwind.proc_start),
symbol_get_frag (unwind.proc_start));
else
e.X_add_symbol = unwind.proc_start;
ia64_cons_fix_new (frag_now, where, bytes_per_address, &e);
e.X_op = O_pseudo_fixup;

View File

@ -1,3 +1,10 @@
2005-05-19 Jan Beulich <jbeulich@novell.com>
* gas/ia64/reloc-uw.s: New.
* gas/ia64/reloc-uw.d: New.
* gas/ia64/reloc-uw-ilp32.d: New.
* gas/ia64/ia64.exp: Run new test.
2005-05-18 Jan Beulich <jbeulich@novell.com>
* gas/all/altmacro.s: Parenthesize operand of %.

View File

@ -65,11 +65,13 @@ if [istarget "ia64-*"] then {
run_dump_test "unwind-ilp32"
run_dump_test "alias-ilp32"
run_dump_test "xdata-ilp32"
run_dump_test "reloc-uw-ilp32"
} else {
run_dump_test "secname"
run_dump_test "unwind"
run_dump_test "alias"
run_dump_test "xdata"
run_dump_test "reloc-uw"
run_dump_test "group-1"
run_dump_test "group-2"
}

View File

@ -0,0 +1,15 @@
#objdump: -r
#name: ia64 unwind relocations (ilp32)
#as: -milp32
#source: reloc-uw.s
.*: +file format .*
RELOCATION RECORDS FOR \[\.IA_64\.unwind\]:
OFFSET[[:space:]]+TYPE[[:space:]]+VALUE[[:space:]]*
0*00 SEGREL32[ML]SB[[:space:]]+\.text(\+0x[[:xdigit:]]*0)?
0*04 SEGREL32[ML]SB[[:space:]]+\.text(\+0x[[:xdigit:]]*0)?
0*08 SEGREL32[ML]SB[[:space:]]+\.IA_64\.unwind_info(\+0x[[:xdigit:]]*[048c])?
0*0c SEGREL32[ML]SB[[:space:]]+\.text(\+0x[[:xdigit:]]*0)?
0*10 SEGREL32[ML]SB[[:space:]]+\.text(\+0x[[:xdigit:]]*0)?
0*14 SEGREL32[ML]SB[[:space:]]+\.IA_64\.unwind_info(\+0x[[:xdigit:]]*[048c])?

View File

@ -0,0 +1,13 @@
# objdump: -r
# name: ia64 unwind relocations
.*: +file format .*
RELOCATION RECORDS FOR \[\.IA_64\.unwind\]:
OFFSET[[:space:]]+TYPE[[:space:]]+VALUE[[:space:]]*
0*00 SEGREL64[ML]SB[[:space:]]+\.text(\+0x[[:xdigit:]]*0)?
0*08 SEGREL64[ML]SB[[:space:]]+\.text(\+0x[[:xdigit:]]*0)?
0*10 SEGREL64[ML]SB[[:space:]]+\.IA_64\.unwind_info(\+0x[[:xdigit:]]*[08])?
0*18 SEGREL64[ML]SB[[:space:]]+\.text(\+0x[[:xdigit:]]*0)?
0*20 SEGREL64[ML]SB[[:space:]]+\.text(\+0x[[:xdigit:]]*0)?
0*28 SEGREL64[ML]SB[[:space:]]+\.IA_64\.unwind_info(\+0x[[:xdigit:]]*[08])?

View File

@ -0,0 +1,13 @@
.text
.macro uw, type
.proc uw\type
.\type uw\type
uw\type:
.unwentry
br.ret.sptk rp
.endp uw\type
.endm
uw global
uw weak