2002-09-27 Kaz Kojima <kkojima@rr.iij4u.or.jp>

* config/tc-sh.c (sh_force_relocation): Return 0 for
        some PC relative relocations when not relaxing.
        * testsuite/gas/sh/pcrel2.s: New.
        * testsuite/gas/sh/pcrel2.d: New.
        * testsuite/gas/sh/basic.exp: Add pcrel2 test.
This commit is contained in:
Daniel Jacobowitz 2002-09-28 00:41:27 +00:00
parent 613d38b830
commit 8ba4dac030
6 changed files with 47 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2002-09-27 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* config/tc-sh.c (sh_force_relocation): Return 0 for
some PC relative relocations when not relaxing.
2002-09-26 Jakub Jelinek <jakub@redhat.com>
* config/tc-i386.c (tc_i386_fix_adjustable): Add x86-64 TLS relocs.

View File

@ -3219,6 +3219,18 @@ int
sh_force_relocation (fix)
fixS *fix;
{
/* These relocations can't make it into a DSO, so no use forcing
them for global symbols. */
if (! sh_relax
&& (fix->fx_r_type == BFD_RELOC_SH_PCDISP8BY2
|| fix->fx_r_type == BFD_RELOC_SH_PCDISP12BY2
|| fix->fx_r_type == BFD_RELOC_SH_PCRELIMM8BY2
|| fix->fx_r_type == BFD_RELOC_SH_PCRELIMM8BY4
|| fix->fx_r_type == BFD_RELOC_8_PCREL
|| fix->fx_r_type == BFD_RELOC_SH_SWITCH16
|| fix->fx_r_type == BFD_RELOC_SH_SWITCH32))
return 0;
if (fix->fx_r_type == BFD_RELOC_VTABLE_INHERIT
|| fix->fx_r_type == BFD_RELOC_VTABLE_ENTRY
|| fix->fx_r_type == BFD_RELOC_SH_LOOP_START

View File

@ -1,3 +1,9 @@
2002-09-27 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* gas/sh/pcrel2.s: New.
* gas/sh/pcrel2.d: New.
* gas/sh/basic.exp: Add pcrel2 test.
2002-09-27 Jason Thorpe <thorpej@wasabisystems.com>
* gas/vax/elf-rel.[ds]: New test.

View File

@ -129,6 +129,8 @@ if [istarget sh*-*-*] then {
run_dump_test "dsp"
run_dump_test "pcrel"
run_dump_test "pcrel2"
}
if {[istarget sh*-*elf] || [istarget sh*-linux*]} then {

View File

@ -0,0 +1,5 @@
#as: -big
#objdump: -r
#name: PC-relative loads
.*: file format .*sh.*

View File

@ -0,0 +1,17 @@
.text
.p2align 2
code:
bf foo
mov.l bar, r0
mov.w bar, r0
.globl foo
foo:
bra foo
nop
.align 2
.globl bar
bar:
.long . - foo
.word . - foo
.byte . - foo