mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-21 01:12:32 +08:00
gas/
* write.c (resolve_reloc_expr_symbols): On REL targets don't convert relocs who have no relocatable field either. Rephrase the conditional so that the PC-relative check is only applied for REL targets. gas/testsuite/ * gas/mips/jalr3.d: New test. * gas/mips/jalr3-n32.d: New test. * gas/mips/jalr3-n64.d: New test. * gas/mips/jalr3.s: New test source. * gas/mips/mips.exp: Run the new tests. ld/testsuite/ * ld-mips-elf/jalr3.dd: New test. * ld-mips-elf/jalr3.ld: New test linker script. * ld-mips-elf/mips-elf.exp: Run the new test.
This commit is contained in:
parent
95e34fb4f4
commit
d6101ac200
@ -1,3 +1,10 @@
|
||||
2013-05-29 Maciej W. Rozycki <macro@codesourcery.com>
|
||||
|
||||
* write.c (resolve_reloc_expr_symbols): On REL targets don't
|
||||
convert relocs who have no relocatable field either. Rephrase
|
||||
the conditional so that the PC-relative check is only applied
|
||||
for REL targets.
|
||||
|
||||
2013-05-28 Chao-ying Fu <Chao-ying.Fu@imgtec.com>
|
||||
|
||||
* config/tc-mips.c (macro) <ld>: Don't use $zero for address
|
||||
|
@ -1,3 +1,11 @@
|
||||
2013-05-29 Maciej W. Rozycki <macro@codesourcery.com>
|
||||
|
||||
* gas/mips/jalr3.d: New test.
|
||||
* gas/mips/jalr3-n32.d: New test.
|
||||
* gas/mips/jalr3-n64.d: New test.
|
||||
* gas/mips/jalr3.s: New test source.
|
||||
* gas/mips/mips.exp: Run the new tests.
|
||||
|
||||
2013-05-28 Cary Coutant <ccoutant@google.com>
|
||||
|
||||
* gas/cris/rd-dw2-1.d: Adjust expected output.
|
||||
|
5
gas/testsuite/gas/mips/jalr3-n32.d
Normal file
5
gas/testsuite/gas/mips/jalr3-n32.d
Normal file
@ -0,0 +1,5 @@
|
||||
#objdump: -r -j .text
|
||||
#name: MIPS JALR reloc (n32)
|
||||
#as: -n32
|
||||
#source: jalr3.s
|
||||
#dump: jalr3.d
|
15
gas/testsuite/gas/mips/jalr3-n64.d
Normal file
15
gas/testsuite/gas/mips/jalr3-n64.d
Normal file
@ -0,0 +1,15 @@
|
||||
#objdump: -r -j .text
|
||||
#name: MIPS JALR reloc (n64)
|
||||
#as: -64
|
||||
#source: jalr3.s
|
||||
|
||||
.*: +file format .*mips.*
|
||||
|
||||
RELOCATION RECORDS FOR \[\.text\]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000000 R_MIPS_JALR \$bar
|
||||
0000000000000000 R_MIPS_NONE \*ABS\*
|
||||
0000000000000000 R_MIPS_NONE \*ABS\*
|
||||
0000000000000008 R_MIPS_JALR \$bar
|
||||
0000000000000008 R_MIPS_NONE \*ABS\*
|
||||
0000000000000008 R_MIPS_NONE \*ABS\*
|
11
gas/testsuite/gas/mips/jalr3.d
Normal file
11
gas/testsuite/gas/mips/jalr3.d
Normal file
@ -0,0 +1,11 @@
|
||||
#objdump: -r -j .text
|
||||
#name: MIPS JALR reloc (o32)
|
||||
#as: -32
|
||||
#source: jalr3.s
|
||||
|
||||
.*: +file format .*mips.*
|
||||
|
||||
RELOCATION RECORDS FOR \[\.text\]:
|
||||
OFFSET TYPE VALUE
|
||||
00000000 R_MIPS_JALR \$bar
|
||||
00000008 R_MIPS_JALR \$bar
|
21
gas/testsuite/gas/mips/jalr3.s
Normal file
21
gas/testsuite/gas/mips/jalr3.s
Normal file
@ -0,0 +1,21 @@
|
||||
.text
|
||||
|
||||
.set $bar, bar
|
||||
|
||||
.globl foo
|
||||
.ent foo
|
||||
foo:
|
||||
.reloc 1f, R_MIPS_JALR, $bar
|
||||
1: jalr $25
|
||||
.reloc 1f, R_MIPS_JALR, $bar
|
||||
1: jr $25
|
||||
.end foo
|
||||
|
||||
.ent bar
|
||||
bar:
|
||||
j $31
|
||||
.end bar
|
||||
|
||||
# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
|
||||
.align 4, 0
|
||||
.space 16
|
@ -974,6 +974,16 @@ if { [istarget mips*-*-vxworks*] } {
|
||||
run_dump_test "tls-o32"
|
||||
run_dump_test "tls-relw"
|
||||
run_dump_test "jalr2"
|
||||
run_dump_test_arches "jalr3" [mips_arch_list_matching mips1 \
|
||||
!micromips]
|
||||
if $has_newabi {
|
||||
run_dump_test_arches "jalr3-n32" \
|
||||
[mips_arch_list_matching mips3 \
|
||||
!micromips]
|
||||
run_dump_test_arches "jalr3-n64" \
|
||||
[mips_arch_list_matching mips3 \
|
||||
!micromips]
|
||||
}
|
||||
|
||||
run_dump_test_arches "aent" [mips_arch_list_matching mips1]
|
||||
|
||||
|
@ -722,9 +722,10 @@ resolve_reloc_expr_symbols (void)
|
||||
unless it has enough bits to cover the whole address
|
||||
space. */
|
||||
if (S_IS_LOCAL (sym) && !symbol_section_p (sym)
|
||||
&& !(howto->partial_inplace
|
||||
&& howto->pc_relative
|
||||
&& howto->src_mask != addr_mask))
|
||||
&& (sec->use_rela_p
|
||||
|| (howto->partial_inplace
|
||||
&& (!howto->pc_relative
|
||||
|| howto->src_mask == addr_mask))))
|
||||
{
|
||||
asection *symsec = S_GET_SEGMENT (sym);
|
||||
if (!(((symsec->flags & SEC_MERGE) != 0
|
||||
|
@ -1,3 +1,9 @@
|
||||
2013-05-29 Maciej W. Rozycki <macro@codesourcery.com>
|
||||
|
||||
* ld-mips-elf/jalr3.dd: New test.
|
||||
* ld-mips-elf/jalr3.ld: New test linker script.
|
||||
* ld-mips-elf/mips-elf.exp: Run the new test.
|
||||
|
||||
2013-05-21 Alan Modra <amodra@gmail.com>
|
||||
|
||||
PR ld/12982
|
||||
|
14
ld/testsuite/ld-mips-elf/jalr3.dd
Normal file
14
ld/testsuite/ld-mips-elf/jalr3.dd
Normal file
@ -0,0 +1,14 @@
|
||||
.*: +file format .*mips.*
|
||||
|
||||
Disassembly of section \.text:
|
||||
|
||||
0+000000 <foo>:
|
||||
0: 04110003 bal 10 <\$bar>
|
||||
4: 00000000 nop
|
||||
8: 10000001 b 10 <\$bar>
|
||||
c: 00000000 nop
|
||||
|
||||
0+000010 <\$bar>:
|
||||
10: 03e00008 jr ra
|
||||
14: 00000000 nop
|
||||
\.\.\.
|
5
ld/testsuite/ld-mips-elf/jalr3.ld
Normal file
5
ld/testsuite/ld-mips-elf/jalr3.ld
Normal file
@ -0,0 +1,5 @@
|
||||
ENTRY(foo)
|
||||
SECTIONS
|
||||
{
|
||||
.text : { *(.text) }
|
||||
}
|
@ -734,3 +734,16 @@ foreach { abi } $abis {
|
||||
[list "readelf -s ehdr_start-2.nd"] \
|
||||
"ehdr_start-2-${abi}"]]
|
||||
}
|
||||
|
||||
# R_MIPS_JALR reloc tests.
|
||||
set abis [concat o32 [expr {$has_newabi ? "n32 n64" : ""}]]
|
||||
foreach { abi } $abis {
|
||||
run_ld_link_tests [list \
|
||||
[list \
|
||||
"MIPS JALR reloc test ($abi)" \
|
||||
"$abi_ldflags($abi) -T jalr3.ld" "" \
|
||||
"$abi_asflags($abi)" \
|
||||
[list ../../../gas/testsuite/gas/mips/jalr3.s] \
|
||||
[list "objdump -d jalr3.dd"] \
|
||||
"jalr3-${abi}"]]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user