aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@rr.iij4u.or.jp>2014-08-01 19:17:47 +0900
committerKaz Kojima <kkojima@rr.iij4u.or.jp>2014-08-01 19:17:47 +0900
commit8c7840168031ab93432214580bf14ce63d638d22 (patch)
tree94157661b29029d97b79ca23c2b3bcfefe3e0291 /ld/testsuite
parentb131d1fcfa5978f105a9ac39057475f54bab9202 (diff)
downloadgdb-8c7840168031ab93432214580bf14ce63d638d22.zip
gdb-8c7840168031ab93432214580bf14ce63d638d22.tar.gz
gdb-8c7840168031ab93432214580bf14ce63d638d22.tar.bz2
Fix PR10373 which is SH relax bug.
Diffstat (limited to 'ld/testsuite')
-rw-r--r--ld/testsuite/ChangeLog6
-rw-r--r--ld/testsuite/ld-sh/sh.exp7
-rw-r--r--ld/testsuite/ld-sh/sh1.s5
3 files changed, 15 insertions, 3 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 773a638..9114c7d 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2014-08-01 Takashi Yoshii <yoshii.takashi@renesas.com>
+ PR 10373
+ * ld-sh/sh1.s: Add jmp relaxing test.
+ * ld-sh/sh.exp: Likewise.
+
+2014-08-01 Takashi Yoshii <yoshii.takashi@renesas.com>
+
PR 10378
* ld-sh/adjsw8.s: New.
* ld-sh/sh.exp: Add switch8 adjustment test.
diff --git a/ld/testsuite/ld-sh/sh.exp b/ld/testsuite/ld-sh/sh.exp
index a270400..417daf7 100644
--- a/ld/testsuite/ld-sh/sh.exp
+++ b/ld/testsuite/ld-sh/sh.exp
@@ -49,7 +49,7 @@ if ![ld_assemble $as "-relax $srcdir/$subdir/sh1.s" tmpdir/sh1.o] {
verbose "bad output from nm"
fail $testsimple
} else {
- if {$nm_output(bar) != $nm_output(foo) + 4} {
+ if {$nm_output(bar) != $nm_output(foo) + 0xc} {
send_log "foo == $nm_output(foo)\n"
verbose "foo == $nm_output(foo)"
send_log "bar == $nm_output(bar)\n"
@@ -149,7 +149,7 @@ if [istarget sh*-*linux*] {
}
if {![ld_assemble $as "-relax tmpdir/start.s" tmpdir/start.o] \
- || ![ld_compile $CC "-O -mrelax $srcdir/$subdir/sh2.c" tmpdir/sh2.o]} {
+ || ![ld_compile $CC "-O -mrelax -foptimize-sibling-calls $srcdir/$subdir/sh2.c" tmpdir/sh2.o]} {
unresolved $testlink
unresolved $testjsr
unresolved $testrun
@@ -168,7 +168,8 @@ pass $testlink
send_log "$objdump -d tmpdir/sh2\n"
verbose "$objdump -d tmpdir/sh2"
catch "exec $objdump -d tmpdir/sh2" exec_output
-if [string match "*jsr*" $exec_output] {
+if {[string match "*jsr*" $exec_output]
+ || [string match "*jmp*" $exec_output]} {
fail $testjsr
} else {
pass $testjsr
diff --git a/ld/testsuite/ld-sh/sh1.s b/ld/testsuite/ld-sh/sh1.s
index d18e439..b1f718d 100644
--- a/ld/testsuite/ld-sh/sh1.s
+++ b/ld/testsuite/ld-sh/sh1.s
@@ -4,7 +4,12 @@ L1:
mov.l L2,r0
.uses L1
jsr @r0
+ nop
+ .uses L1
+ jmp @r0
+ nop
rts
+ nop
.align 2
L2:
.long bar