* config/ia64.c (enum reloc_func): Add FUNC_LT_RELATIVE_X.
(ia64_gen_real_reloc_type): Handle it. (pseudo_func): Add @ltoffx. (md_begin): Build .<ltoffx>. (ia64_force_relocation): True for LTOFF22X and LDXMOV. * gas/ia64/ltoff22x-1.[ds]: New. * gas/ia64/ia64.exp: Run it.
This commit is contained in:
parent
a9a9bd0f66
commit
fa2c7effe7
6 changed files with 45 additions and 0 deletions
|
@ -1,3 +1,11 @@
|
|||
2002-12-05 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* config/ia64.c (enum reloc_func): Add FUNC_LT_RELATIVE_X.
|
||||
(ia64_gen_real_reloc_type): Handle it.
|
||||
(pseudo_func): Add @ltoffx.
|
||||
(md_begin): Build .<ltoffx>.
|
||||
(ia64_force_relocation): True for LTOFF22X and LDXMOV.
|
||||
|
||||
2002-12-05 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* config/tc-arm.c (arm_force_relocation): Move out of #if OBJ_ELF.
|
||||
|
|
|
@ -82,6 +82,7 @@ enum reloc_func
|
|||
FUNC_FPTR_RELATIVE,
|
||||
FUNC_GP_RELATIVE,
|
||||
FUNC_LT_RELATIVE,
|
||||
FUNC_LT_RELATIVE_X,
|
||||
FUNC_PC_RELATIVE,
|
||||
FUNC_PLT_RELATIVE,
|
||||
FUNC_SEC_RELATIVE,
|
||||
|
@ -487,6 +488,7 @@ pseudo_func[] =
|
|||
{ "fptr", PSEUDO_FUNC_RELOC, { 0 } },
|
||||
{ "gprel", PSEUDO_FUNC_RELOC, { 0 } },
|
||||
{ "ltoff", PSEUDO_FUNC_RELOC, { 0 } },
|
||||
{ "ltoffx", PSEUDO_FUNC_RELOC, { 0 } },
|
||||
{ "pcrel", PSEUDO_FUNC_RELOC, { 0 } },
|
||||
{ "pltoff", PSEUDO_FUNC_RELOC, { 0 } },
|
||||
{ "secrel", PSEUDO_FUNC_RELOC, { 0 } },
|
||||
|
@ -6544,6 +6546,10 @@ md_begin ()
|
|||
symbol_new (".<ltoff>", undefined_section, FUNC_LT_RELATIVE,
|
||||
&zero_address_frag);
|
||||
|
||||
pseudo_func[FUNC_LT_RELATIVE_X].u.sym =
|
||||
symbol_new (".<ltoffx>", undefined_section, FUNC_LT_RELATIVE_X,
|
||||
&zero_address_frag);
|
||||
|
||||
pseudo_func[FUNC_PC_RELATIVE].u.sym =
|
||||
symbol_new (".<pcrel>", undefined_section, FUNC_PC_RELATIVE,
|
||||
&zero_address_frag);
|
||||
|
@ -10000,6 +10006,9 @@ ia64_force_relocation (fix)
|
|||
case BFD_RELOC_IA64_PLTOFF64I:
|
||||
case BFD_RELOC_IA64_PLTOFF64MSB:
|
||||
case BFD_RELOC_IA64_PLTOFF64LSB:
|
||||
|
||||
case BFD_RELOC_IA64_LTOFF22X:
|
||||
case BFD_RELOC_IA64_LDXMOV:
|
||||
return 1;
|
||||
|
||||
default:
|
||||
|
@ -10160,6 +10169,14 @@ ia64_gen_real_reloc_type (sym, r_type)
|
|||
}
|
||||
break;
|
||||
|
||||
case FUNC_LT_RELATIVE_X:
|
||||
switch (r_type)
|
||||
{
|
||||
case BFD_RELOC_IA64_IMM22: new = BFD_RELOC_IA64_LTOFF22X; break;
|
||||
default: break;
|
||||
}
|
||||
break;
|
||||
|
||||
case FUNC_PC_RELATIVE:
|
||||
switch (r_type)
|
||||
{
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2002-12-05 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* gas/ia64/ltoff22x-1.[ds]: New.
|
||||
* gas/ia64/ia64.exp: Run it.
|
||||
|
||||
2002-12-05 Jim Wilson <wilson@redhat.com>
|
||||
|
||||
* gas/ia64/opc-x.d: Regenerate.
|
||||
|
|
|
@ -38,4 +38,5 @@ if [istarget "ia64-*"] then {
|
|||
run_dump_test "tls"
|
||||
run_dump_test "ldxmov-1"
|
||||
run_list_test "ldxmov-2" ""
|
||||
run_dump_test "ltoff22x-1"
|
||||
}
|
||||
|
|
10
gas/testsuite/gas/ia64/ltoff22x-1.d
Normal file
10
gas/testsuite/gas/ia64/ltoff22x-1.d
Normal file
|
@ -0,0 +1,10 @@
|
|||
# objdump: -r
|
||||
# name: ia64 ltoff22x-1
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
RELOCATION RECORDS FOR \[\.text\]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000000 LTOFF22X foo
|
||||
|
||||
|
4
gas/testsuite/gas/ia64/ltoff22x-1.s
Normal file
4
gas/testsuite/gas/ia64/ltoff22x-1.s
Normal file
|
@ -0,0 +1,4 @@
|
|||
.text
|
||||
addl r3 = @ltoffx(foo#), gp
|
||||
nop.i 0
|
||||
nop.i 0
|
Loading…
Add table
Reference in a new issue