diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2002-02-08 06:50:02 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@redhat.com> | 2002-02-08 06:50:02 +0000 |
commit | 1b19eb81ea43bc04b78e4190d59ffccfed4cbef5 (patch) | |
tree | 84b77982d1a9c621e8c6586299c2439f7abe0460 /ld/testsuite/ld-sh/sh64/relax.exp | |
parent | 3c74c164ab22de0030a992fee9b41846dfc14d35 (diff) | |
download | binutils-gdb-1b19eb81ea43bc04b78e4190d59ffccfed4cbef5.tar.gz |
Contribute sh64-elf.
2002-02-02 Alexandre Oliva <aoliva@redhat.com>
* ld-sh/sh64/crange3-cmpct.rd: Adjust offsets.
* ld-sh/sh64/crange3-media.rd: Likewise.
* ld-sh/sh64/crange3.rd: Likewise.
* ld-sh/sh64/crangerel1.rd: Likewise.
* ld-sh/sh64/crangerel2.rd: Likewise.
* ld-sh/sh64/reldl32.rd: Likewise.
* ld-sh/sh64/reldl64.rd: Likewise.
2002-01-28 Alexandre Oliva <aoliva@redhat.com>
* ld-sh/sh64/abi32.xd: Formatting changes to match the current
output of objdump.
* ld-sh/sh64/cmpct1.xd: Likewise.
* ld-sh/sh64/crange1.rd: Likewise.
* ld-sh/sh64/crange2.rd: Likewise.
* ld-sh/sh64/crange3-cmpct.rd: Likewise.
* ld-sh/sh64/crange3-media.rd: Likewise.
* ld-sh/sh64/crange3.rd: Likewise.
* ld-sh/sh64/crangerel1.rd: Likewise.
* ld-sh/sh64/crangerel2.rd: Likewise.
* ld-sh/sh64/mix1.xd: Likewise.
* ld-sh/sh64/mix2.xd: Likewise.
* ld-sh/sh64/rel32.xd: Likewise.
* ld-sh/sh64/reldl32.rd: Likewise.
* ld-sh/sh64/reldl64.rd: Likewise.
* ld-sh/sh64/sh64.exp: Likewise. Reordered cranges and stack
sessions, to match changes in the linker script.
2001-06-14 Alexandre Oliva <aoliva@redhat.com>
* ld-sh/sh64/reldl32.rd, ld-sh/sh64/reldl64.rd: Adjust relocation
info to reflect renumbering of relocation types.
2001-03-14 DJ Delorie <dj@redhat.com>
* ld-sh/sh64/endian.dbd: New file, endian tests.
* ld-sh/sh64/endian.dld: Ditto.
* ld-sh/sh64/endian.ld: Ditto.
* ld-sh/sh64/endian.s: Ditto.
* ld-sh/sh64/endian.sbd: Ditto.
* ld-sh/sh64/endian.sld: Ditto.
* ld-sh/sh64/sh64.exp: Add above tests. Add -L option to ld.
2001-03-12 DJ Delorie <dj@redhat.com>
* ld-sh/sh64/relax.exp: New file, test disabling relaxing.
* ld-sh/sh64/relax1.s: Ditto.
* ld-sh/sh64/relax2.s: Ditto.
* ld-sh/sh64/relax3.s: Ditto.
* ld-sh/sh64/relax4.s: Ditto.
* ld-sh/sh64/relfail.exp: New file, test for bogus relocs.
* ld-sh/sh64/relfail.s: Ditto.
2001-03-12 DJ Delorie <dj@redhat.com>
* ld-sh/sh.exp: This test isn't appropriate for SH64 since it
uses SH32 assembler files.
2001-03-07 DJ Delorie <dj@redhat.com>
* ld-selective/selective.exp: Pass "-e _start" for sh64 to
accomodate expected start symbol in test.
2001-03-06 DJ Delorie <dj@redhat.com>
* ld-scripts/crossref.exp: Pass -mshelf32 to the linker for sh64,
to match what gcc passes to the linker by default.
* ld-selective/selective.exp: Ditto.
* ld-srec/srec.exp: Ditto, plus XFAIL for sh64.
* ld-undefined/undefined.exp: Add XFAIL for sh64 (it's dwarf2).
2001-03-06 DJ Delorie <dj@redhat.com>
* ld-sh/sh64/abi32.xd (stack): Adjust for new default stack layout.
* ld-sh/sh64/abi64.xd (stack): Ditto.
* ld-sh/sh64/cmpct1.xd (stack): Ditto.
* ld-sh/sh64/crange1.rd (stack): Ditto.
* ld-sh/sh64/crange2.rd (stack): Ditto.
* ld-sh/sh64/crange3-cmpct.rd (stack): Ditto.
* ld-sh/sh64/crange3-media.rd (stack): Ditto.
* ld-sh/sh64/crange3.rd (stack): Ditto.
* ld-sh/sh64/mix1.xd (stack): Ditto.
* ld-sh/sh64/mix2.xd (stack): Ditto.
* ld-sh/sh64/shdl32.xd (stack): Ditto.
* ld-sh/sh64/shdl64.xd (stack): Ditto.
2001-01-14 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/mix1.xd: Add SORT_ENTRIES for .cranges section.
* ld-sh/sh64/mix2.xd: Ditto.
2001-01-08 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/abi32.xd: Adjust for bit 0 set on an entry address
being SHmedia.
* ld-sh/sh64/shdl64.xd: Ditto.
* ld-sh/sh64/shdl32.xd: Ditto.
* ld-sh/sh64/mix2.xd: Ditto.
* ld-sh/sh64/crange3-media.rd: Ditto.
* ld-sh/sh64/abi64.xd: Ditto.
2001-01-06 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/crange-2a.s (diversion2): New global symbol.
* ld-sh/sh64/crange1.rd: Adjust to presence of new symbol.
Adjust section type for .cranges; expect sorted contents.
* ld-sh/sh64/crange2.rd: Ditto.
* ld-sh/sh64/crange3.dd, ld-sh/sh64/crange3.rd: Ditto.
* ld-sh/sh64/crangerel1.rd: Adjust to presence of new symbol.
* ld-sh/sh64/crangerel2.rd: Ditto.
* ld-sh/sh64/mix1.xd: Adjust to DEBUGGING being set for .cranges.
* ld-sh/sh64/mix2.xd: Ditto.
* ld-sh/sh64/crange3-cmpct.rd, ld-sh/sh64/crange3-media.rd: New
tests.
* ld-sh/sh64/sh64.exp: Tweak test message. Run new tests.
2001-01-05 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/shmix-1.s (start2): Add a NOP to provide a valid
target for (unexpanded) PTB. Add an .align 2 to SHmedia code to
keep properly aligned.
* ld-sh/sh64/mix1.sd, ld-sh/sh64/mix1.xd: Adjust accordingly.
* ld-sh/sh64/mix1-noexp.sd, ld-sh/sh64/mix2-noexp.sd,
ld-sh/sh64/abixx-noexp.sd: New tests for GAS -no-expand and
R_SH_PT_16 relocation.
* ld-sh/sh64/sh64.exp: Run new tests.
2000-12-30 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/crange-2f.s, ld-sh/sh64/crange-2g.s,
ld-sh/sh64/crange-2h.s, ld-sh/sh64/crange-2i.s,
ld-sh/sh64/crange3.dd, ld-sh/sh64/crange3.rd: New tests.
* ld-sh/sh64/sh64.exp: Run new tests.
* ld-sh/sh64/crange1.rd: Correct section flags.
* ld-sh/sh64/crange2.rd: Ditto.
* ld-sh/sh64/crangerel1.rd: Ditto.
2000-12-18 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/crange-1.s, ld-sh/sh64/crange-2a.s,
ld-sh/sh64/crange-2b.s, ld-sh/sh64/crange-2c.s,
ld-sh/sh64/crange-2d.s, ld-sh/sh64/crange-2e.s,
ld-sh/sh64/crange1.rd, ld-sh/sh64/crange2.rd,
ld-sh/sh64/crangerel1.rd, ld-sh/sh64/crangerel2.rd: New tests for
handling .cranges section.
* ld-sh/sh64/sh64.exp: Run new tests.
* ld-sh/sh64/mix1.sd, ld-sh/sh64/mix1.xd, ld-sh/sh64/mix2.sd,
ld-sh/sh64/mix2.xd: Adjust for .cranges section.
2000-12-15 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/abi32.sd, ld-sh/sh64/abi32.xd, ld-sh/sh64/abi64.sd,
ld-sh/sh64/abi64.xd, ld-sh/sh64/cmpct1.xd, ld-sh/sh64/mix1.sd,
ld-sh/sh64/mix1.xd, ld-sh/sh64/mix2.sd, ld-sh/sh64/mix2.xd,
ld-sh/sh64/shdl32.xd, ld-sh/sh64/shdl64.xd: Adjust to .bss and
.data individually 8-byte aligned.
2000-12-09 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/rel-1.s, ld-sh/sh64/rel-2.s, ld-sh/sh64/rel32.xd,
ld-sh/sh64/rel64.xd, ld-sh/sh64/reldl-1.s, ld-sh/sh64/reldl-2.s,
ld-sh/sh64/reldl32.rd, ld-sh/sh64/reldl64.rd: New tests.
* ld-sh/sh64/sh64.exp: Make it possible to use readelf as
inspection tool. Run new tests.
2000-12-07 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/abi64.sd, ld-sh/sh64/abi32.sd, ld-sh/sh64/mix1.sd,
ld-sh/sh64/mix2.sd: Correct offsets in PT/PTA/PTB expansions.
* ld-sh/sh64/shdl-1.s, ld-sh/sh64/shdl-2.s, ld-sh/sh64/shdl64.sd,
ld-sh/sh64/shdl64.xd, ld-sh/sh64/shdl32.xd: New tests.
* ld-sh/sh64/sh64.exp: Run new tests.
2000-12-01 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/cmpct1.sd, ld-sh/sh64/cmpct1.xd,
ld-sh/sh64/shcmp-1.s: New test.
* ld-sh/sh64/sh64.exp: Add new test to sh64tests. Reformat.
2000-11-30 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/sh64.exp: Use linker option -mshelf64 for 64-bit ABI
test.
* ld-sh/sh64/abi64.xd: Tweak for 64-bit ELF.
2000-11-29 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/sh64.exp (sh64tests): Use linker option -mshelf32 for
tests.
2000-11-27 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64/abi32.sd, ld-sh/sh64/abi64.sd: Correct MOVI
registers.
* ld-sh/sh64/mix1.sd, ld-sh/sh64/mix1.xd, ld-sh/sh64/shmix-1.s:
New test.
* ld-sh/sh64/mix2.sd, ld-sh/sh64/mix2.xd, ld-sh/sh64/shmix-2.s,
ld-sh/sh64/shmix-3.s: New test.
* ld-sh/sh64/sh64.exp: Add new tests to sh64tests.
2000-11-26 Hans-Peter Nilsson <hpn@cygnus.com>
* ld-sh/sh64: New testsuite.
Diffstat (limited to 'ld/testsuite/ld-sh/sh64/relax.exp')
-rw-r--r-- | ld/testsuite/ld-sh/sh64/relax.exp | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/ld/testsuite/ld-sh/sh64/relax.exp b/ld/testsuite/ld-sh/sh64/relax.exp new file mode 100644 index 00000000000..18cafea9d23 --- /dev/null +++ b/ld/testsuite/ld-sh/sh64/relax.exp @@ -0,0 +1,143 @@ +# Expect script for ld-sh tests +# Copyright (C) 2001 Free Software Foundation +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + +# Test SH relaxing - that is, that it's disabled when SHmedia sections +# are present. + +if ![istarget sh64-*-*] { + return +} + +# There are four source files: the first is SHcompact only, the second +# is SHmedia only, the third has both, and the fourth has only a +# .cranges section. The table below has: +# Title +# as flags for first source (else "n/a" to skip) +# ditto, other three files +# ld flags +# 1/0 whether relaxing should have been done or not, or -1 if we expect +# the linker to not produce an output file. + +set sh64relaxtests { + {"SH64 not relaxing, shcompact" + {"-relax -isa shcompact" "n/a" "n/a" "n/a"} "-mshelf32" 0} + {"SH64 relaxing, shcompact" + {"-relax -isa shcompact" "n/a" "n/a" "n/a"} "-relax -mshelf32" 1} + {"SH64 relaxing, shcompacts" + {"-relax -isa shcompact" "-isa shcompact" "n/a" "n/a"} "-relax -mshelf32" 1} + {"SH64 relaxing disabled, shmedia" + {"-relax -isa shcompact" "-isa shmedia -no-mix" "n/a" "n/a"} "-relax -mshelf32" 0} + {"SH64 relaxing disabled, mixed" + {"-relax -isa shcompact" "n/a" "-isa shcompact" "n/a"} "-relax -mshelf32" 0} + {"SH64 relaxing disabled, cranges" + {"-relax -isa shcompact" "n/a" "n/a" ""} "-relax -mshelf32" 0} +} + +proc run_sh64relaxtest {sh64relaxtests} { + global ld + global as + global nm + global objdump + global readelf + global srcdir + global subdir + + set testindex 0 + + set sh64relaxfiles { + "relax1.s" "relax2.s" "relax3.s" "relax4.s" + } + + foreach testentry $sh64relaxtests { + set testname [lindex $testentry 0] + set as_options [lindex $testentry 1] + set ld_options [lindex $testentry 2] + set expect_relaxed [lindex $testentry 3] + + set is_unresolved 0 + set objfiles {} + + incr testindex + + # Assemble each file in the test. + for {set i 0} {$i < 4} {incr i} { + set as_file [lindex $sh64relaxfiles $i] + set as_opt [lindex $as_options $i] + if { [string compare $as_opt "n/a"] != 0 } { + set objfile "tmpdir/[file rootname $as_file]-$testindex.o" + lappend objfiles $objfile + + if ![ld_assemble $as "$as_opt $srcdir/$subdir/$as_file" $objfile] { + set is_unresolved 1 + break + } + } + } + + # Catch assembler errors. + if { $is_unresolved != 0 } { + unresolved $testname + continue + } + + set binfile "tmpdir/relax-$testindex.x" + + # We're not interested in the pass/fail of the linker as much + # as we're interested in whether or not relaxing got properly + # disabled. Hence the lax checking here. + + file delete $binfile + set result [ld_simple_link $ld $binfile " --no-warn-mismatch $ld_options $objfiles"] + if ![file exists $binfile] { + + if {$expect_relaxed == -1} { + pass $testname + continue; + } + + verbose "$testname: file $binfile doesn't exist" 1 + fail $testname + continue + } + + catch "exec $objdump -d $binfile" objdump_output + + regexp "\[ \t](jsr|bsr)\[ \t]" $objdump_output ignore calltype + + if [string match $calltype "bsr"] { + set relaxed 1 + } elseif [string match $calltype "jsr"] { + set relaxed 0 + } else { + verbose "$testname: neither jsr nor bsr found" 1 + verbose $objdump_output 2 + fail $testname + continue + } + + if {$relaxed != $expect_relaxed} { + verbose $objdump_output 2 + fail $testname + exit + } else { + pass $testname + } + } +} + +run_sh64relaxtest $sh64relaxtests |