From: Richard Sandiford Date: Mon, 12 Jan 2004 09:30:49 +0000 (+0000) Subject: gas/ X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cc3d92a51a68cbf2af232c598821e1b40630be77;p=binutils-gdb.git gas/ * config/tc-mips.c (macro_build_jalr): When adding an R_MIPS_JALR reloc, reserve space for the delay slot as well as the jalr itself. gas/testsuite/ * gas/mips/elf-rel18.[sd]: New test. * gas/mips/mips.exp: Run it. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 1f0aa97cafe..0a6f41aea1f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2004-01-12 Richard Sandiford + + * config/tc-mips.c (macro_build_jalr): When adding an R_MIPS_JALR + reloc, reserve space for the delay slot as well as the jalr itself. + 2004-01-09 Paul Brook * config/tc-arm.c (do_vfp_reg2_from_sp2): Rename from do_vfp_sp_reg2. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index da0ea769970..fcf0a79fdfa 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -3169,7 +3169,7 @@ macro_build_jalr (int icnt, expressionS *ep) if (HAVE_NEWABI) { - frag_grow (4); + frag_grow (8); f = frag_more (0); } macro_build (NULL, &icnt, NULL, "jalr", "d,s", RA, PIC_CALL_REG); diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 24d56e144bf..d96b7ba9bb1 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-01-12 Richard Sandiford + + * gas/mips/elf-rel18.[sd]: New test. + * gas/mips/mips.exp: Run it. + 2004-01-09 Paul Brook * gas/arm/vfp2.s, gas/arm/vfp2.d: New test. diff --git a/gas/testsuite/gas/mips/elf-rel18.d b/gas/testsuite/gas/mips/elf-rel18.d new file mode 100644 index 00000000000..fa467a42cd4 --- /dev/null +++ b/gas/testsuite/gas/mips/elf-rel18.d @@ -0,0 +1,9 @@ +#readelf: --relocs +#as: -mabi=n32 -KPIC + +Relocation section '\.rela\.text' at offset .* contains 4 entries: + Offset Info Type Sym.Value Sym. Name \+ Addend +00000ed0 .* R_MIPS_CALL16 00000000 foo \+ 0 +00000ed4 .* R_MIPS_JALR 00000000 foo \+ 0 +00000edc .* R_MIPS_CALL16 00000000 foo \+ 0 +00000ee0 .* R_MIPS_JALR 00000000 foo \+ 0 diff --git a/gas/testsuite/gas/mips/elf-rel18.s b/gas/testsuite/gas/mips/elf-rel18.s new file mode 100644 index 00000000000..b0193319450 --- /dev/null +++ b/gas/testsuite/gas/mips/elf-rel18.s @@ -0,0 +1,5 @@ + .rept 0x3b4 + nop + .endr + jal foo + jal foo diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp index 2d515a96b69..124df794751 100644 --- a/gas/testsuite/gas/mips/mips.exp +++ b/gas/testsuite/gas/mips/mips.exp @@ -671,6 +671,9 @@ if { [istarget mips*-*-*] } then { run_dump_test "elf-rel-xgot-n64" } run_dump_test "elf-rel17" + if $has_newabi { + run_dump_test "elf-rel18" + } run_dump_test "${tmips}${el}empic" run_dump_test "empic2"