summaryrefslogtreecommitdiffstats
path: root/binutils-2.21/ld/testsuite/ld-h8300
diff options
context:
space:
mode:
Diffstat (limited to 'binutils-2.21/ld/testsuite/ld-h8300')
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/gcsection.d27
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/gcsection.s43
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/h8300.exp44
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-2.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-2.s8
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-3-coff.d36
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-3.d35
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-3.s32
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-4-coff.d76
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-4.d51
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-4.s72
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-5-coff.d50
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-5.d50
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-5.s66
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-6-coff.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-6.d11
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax-6.s5
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax.d21
-rw-r--r--binutils-2.21/ld/testsuite/ld-h8300/relax.s10
19 files changed, 659 insertions, 0 deletions
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/gcsection.d b/binutils-2.21/ld/testsuite/ld-h8300/gcsection.d
new file mode 100644
index 0000000..638d985
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/gcsection.d
@@ -0,0 +1,27 @@
+# name: H8300 GCC section test case
+# ld: --gc-sections -m h8300helf
+# objdump: -d --no-show-raw-insn
+.*: file format .*-h8300
+
+Disassembly of section .text:
+
+00000100 <_functionWeUse>:
+ 100: mov.l er6,@-er7
+ 104: mov.l er7,er6
+ 106: subs #4,er7
+ 108: mov.w r0,@\(0xfffe:16,er6\)
+ 10c: mov.w @\(0xfffe:16,er6\),r2
+ 110: mov.w r2,r0
+ 112: adds #4,er7
+ 114: mov.l @er7\+,er6
+ 118: rts
+
+0000011a <_start>:
+ 11a: mov.l er6,@-er7
+ 11e: mov.l er7,er6
+ 120: mov.w #0x4b,r0
+ 124: jsr @0x100:24
+ 128: mov.w r0,r2
+ 12a: mov.w r2,r0
+ 12c: mov.l @er7\+,er6
+ 130: rts
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/gcsection.s b/binutils-2.21/ld/testsuite/ld-h8300/gcsection.s
new file mode 100644
index 0000000..2149ee9
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/gcsection.s
@@ -0,0 +1,43 @@
+ .h8300h
+ .section .text.functionWeUse,"ax",@progbits
+ .align 1
+ .global _functionWeUse
+_functionWeUse:
+ mov.l er6,@-er7
+ mov.l er7,er6
+ subs #4,er7
+ mov.w r0,@(-2,er6)
+ mov.w @(-2,er6),r2
+ mov.w r2,r0
+ adds #4,er7
+ mov.l @er7+,er6
+ rts
+ .size _functionWeUse, .-_functionWeUse
+ .section .text.functionWeDontUse,"ax",@progbits
+ .align 1
+ .global _functionWeDontUse
+_functionWeDontUse:
+ mov.l er6,@-er7
+ mov.l er7,er6
+ subs #4,er7
+ mov.w r0,@(-2,er6)
+ mov.w @(-2,er6),r2
+ mov.w r2,r0
+ adds #4,er7
+ mov.l @er7+,er6
+ rts
+ .size _functionWeDontUse, .-_functionWeDontUse
+ .section .text.start,"ax",@progbits
+ .align 1
+ .global _start
+_start:
+ mov.l er6,@-er7
+ mov.l er7,er6
+ mov.w #75,r0
+ jsr @_functionWeUse
+ mov.w r0,r2
+ mov.w r2,r0
+ mov.l @er7+,er6
+ rts
+ .size _start, .-_start
+ .end
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/h8300.exp b/binutils-2.21/ld/testsuite/ld-h8300/h8300.exp
new file mode 100644
index 0000000..3604dfa
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/h8300.exp
@@ -0,0 +1,44 @@
+# Expect script for ld-h8300 tests
+# Copyright 2002, 2003, 2004, 2005, 2007, 2010 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+# Written by Nick Clifton <nickc@redhat.com>
+#
+
+# Test h8300
+
+if ![istarget h8300-*-*] {
+ return
+}
+
+run_dump_test relax
+
+if [is_elf_format] {
+ run_dump_test relax-2
+ run_dump_test relax-3
+ run_dump_test relax-4
+ run_dump_test relax-5
+ run_dump_test relax-6
+ run_dump_test gcsection
+} else {
+ run_dump_test relax-3-coff
+ run_dump_test relax-4-coff
+ run_dump_test relax-5-coff
+ run_dump_test relax-6-coff
+}
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-2.d b/binutils-2.21/ld/testsuite/ld-h8300/relax-2.d
new file mode 100644
index 0000000..963139d
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-2.d
@@ -0,0 +1,11 @@
+# name: H8300 Relaxation Test 2
+# ld: --relax -m h8300helf
+# objdump: -d --no-show-raw-insn
+
+.*: file format .*-h8300
+
+Disassembly of section .text:
+
+00000100 <_start>:
+ *100: mov.b @0x67:8,r0l
+ *102: mov.b @0x4321:16,r0l
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-2.s b/binutils-2.21/ld/testsuite/ld-h8300/relax-2.s
new file mode 100644
index 0000000..aa82dba
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-2.s
@@ -0,0 +1,8 @@
+ .h8300h
+ .globl _start
+_start:
+ mov.b @foo:16,r0l
+ mov.b @bar:32,r0l
+
+ .equ foo,0xffff67
+ .equ bar,0x4321
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-3-coff.d b/binutils-2.21/ld/testsuite/ld-h8300/relax-3-coff.d
new file mode 100644
index 0000000..0384398
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-3-coff.d
@@ -0,0 +1,36 @@
+# name: H8300 Relaxation Test 3 (for COFF)
+# source: relax-3.s
+# ld: --relax -m h8300s
+# objdump: -d
+
+.*: file format .*-h8300
+
+Disassembly of section .text:
+
+00000100 <_start>:
+#
+# Relaxation of aa:16
+#
+.*: 6a 08 00 00.*mov.b @0x0:16,r0l
+.*: 6a 08 7f ff.*mov.b @0x7fff:16,r0l
+.*: 6a 08 80 00.*mov.b @0x8000:16,r0l
+.*: 6a 08 fe ff.*mov.b @0xfeff:16,r0l
+.*: 28 00 .*mov.b @0x0:8,r0l
+.*: 28 ff .*mov.b @0xff:8,r0l
+#
+# Relaxation of aa:32
+#
+.*: 6a 08 00 00.*mov.b @0x0:16,r0l
+.*: 6a 08 7f ff.*mov.b @0x7fff:16,r0l
+.*: 6a 28 00 00.*mov.b @0x8000:32,r0l
+.*: 80 00
+.*: 6a 28 00 00.*mov.b @0xff00:32,r0l
+.*: ff 00
+.*: 6a 28 00 ff.*mov.b @0xffff00:32,r0l
+.*: ff 00
+.*: 6a 28 ff ff.*mov.b @0xffff7fff:32,r0l
+.*: 7f ff
+.*: 6a 08 80 00.*mov.b @0x8000:16,r0l
+.*: 6a 08 fe ff.*mov.b @0xfeff:16,r0l
+.*: 28 00 .*mov.b @0x0:8,r0l
+.*: 28 ff .*mov.b @0xff:8,r0l
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-3.d b/binutils-2.21/ld/testsuite/ld-h8300/relax-3.d
new file mode 100644
index 0000000..b9eded2
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-3.d
@@ -0,0 +1,35 @@
+# name: H8300 Relaxation Test 3
+# ld: --relax -m h8300self
+# objdump: -d
+
+.*: file format .*-h8300
+
+Disassembly of section .text:
+
+00000100 <_start>:
+#
+# Relaxation of aa:16
+#
+.*: 6a 08 00 00 mov.b @0x0:16,r0l
+.*: 6a 08 7f ff mov.b @0x7fff:16,r0l
+.*: 6a 08 80 00 mov.b @0x8000:16,r0l
+.*: 6a 08 fe ff mov.b @0xfeff:16,r0l
+.*: 28 00 * mov.b @0x0:8,r0l
+.*: 28 ff * mov.b @0xff:8,r0l
+#
+# Relaxation of aa:32
+#
+.*: 6a 08 00 00 mov.b @0x0:16,r0l
+.*: 6a 08 7f ff mov.b @0x7fff:16,r0l
+.*: 6a 28 00 00 mov.b @0x8000:32,r0l
+.*: 80 00
+.*: 6a 28 00 00 mov.b @0xff00:32,r0l
+.*: ff 00
+.*: 6a 28 00 ff mov.b @0xffff00:32,r0l
+.*: ff 00
+.*: 6a 28 ff ff mov.b @0xffff7fff:32,r0l
+.*: 7f ff
+.*: 6a 08 80 00 mov.b @0x8000:16,r0l
+.*: 6a 08 fe ff mov.b @0xfeff:16,r0l
+.*: 28 00 * mov.b @0x0:8,r0l
+.*: 28 ff * mov.b @0xff:8,r0l
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-3.s b/binutils-2.21/ld/testsuite/ld-h8300/relax-3.s
new file mode 100644
index 0000000..f4a2346
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-3.s
@@ -0,0 +1,32 @@
+ .h8300s
+ .globl _start
+_start:
+ # s3-s6 aren't valid 16-bit addresses.
+ mov.b @s1:16,r0l
+ mov.b @s2:16,r0l
+ mov.b @s7:16,r0l
+ mov.b @s8:16,r0l
+ mov.b @s9:16,r0l
+ mov.b @s10:16,r0l
+
+ mov.b @s1:32,r0l
+ mov.b @s2:32,r0l
+ mov.b @s3:32,r0l
+ mov.b @s4:32,r0l
+ mov.b @s5:32,r0l
+ mov.b @s6:32,r0l
+ mov.b @s7:32,r0l
+ mov.b @s8:32,r0l
+ mov.b @s9:32,r0l
+ mov.b @s10:32,r0l
+
+ .equ s1,0
+ .equ s2,0x7fff
+ .equ s3,0x8000
+ .equ s4,0xff00
+ .equ s5,0xffff00
+ .equ s6,0xffff7fff
+ .equ s7,0xffff8000
+ .equ s8,0xfffffeff
+ .equ s9,0xffffff00
+ .equ s10,0xffffffff
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-4-coff.d b/binutils-2.21/ld/testsuite/ld-h8300/relax-4-coff.d
new file mode 100644
index 0000000..d6417ac
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-4-coff.d
@@ -0,0 +1,76 @@
+# name: H8300 Relaxation Test 4 (for COFF)
+# source: relax-4.s
+# ld: --relax -m h8300s
+# objdump: -d
+
+.*: file format .*-h8300
+
+Disassembly of section .text:
+
+00000100 <_start>:
+ 100: f8 03.*mov.b #0x3,r0l
+ 102: fa 05.*mov.b #0x5,r2l
+ 104: 7f ff 60 80.*bset r0l,@0xff:8
+ 108: 7f 00 60 a0.*bset r2l,@0x0:8
+ 10c: 7e ff 63 a0.*btst r2l,@0xff:8
+ 110: 7e 00 63 80.*btst r0l,@0x0:8
+ 114: 6a 18 00 00.*bset #0x5,@0x0:16
+ 118: 70 50
+ 11a: 6a 18 7f ff.*bset #0x5,@0x7fff:16
+ 11e: 70 50
+ 120: 6a 18 80 00.*bset #0x5,@0x8000:16
+ 124: 70 50
+ 126: 6a 18 fe ff.*bset #0x5,@0xfeff:16
+ 12a: 70 50
+ 12c: 7f 00 70 50.*bset #0x5,@0x0:8
+ 130: 7f ff 70 50.*bset #0x5,@0xff:8
+ 134: 6a 10 00 00.*band #0x5,@0x0:16
+ 138: 76 50
+ 13a: 6a 10 7f ff.*band #0x5,@0x7fff:16
+ 13e: 76 50
+ 140: 6a 10 80 00.*band #0x5,@0x8000:16
+ 144: 76 50
+ 146: 6a 10 fe ff.*band #0x5,@0xfeff:16
+ 14a: 76 50
+ 14c: 7e 00 76 50.*band #0x5,@0x0:8
+ 150: 7e ff 76 50.*band #0x5,@0xff:8
+ 154: 7f ff 60 a0.*bset r2l,@0xff:8
+ 158: 7f 00 60 80.*bset r0l,@0x0:8
+ 15c: 7e ff 63 80.*btst r0l,@0xff:8
+ 160: 7e 00 63 a0.*btst r2l,@0x0:8
+ 164: 6a 18 00 00.*bset #0x6,@0x0:16
+ 168: 70 60
+ 16a: 6a 18 7f ff.*bset #0x6,@0x7fff:16
+ 16e: 70 60
+ 170: 6a 38 00 00.*bset #0x6,@0x8000:32
+ 174: 80 00 70 60
+ 178: 6a 38 00 00.*bset #0x6,@0xff00:32
+ 17c: ff 00 70 60
+ 180: 6a 38 00 ff.*bset #0x6,@0xffff00:32
+ 184: ff 00 70 60
+ 188: 6a 38 ff ff.*bset #0x6,@0xffff7fff:32
+ 18c: 7f ff 70 60
+ 190: 6a 18 80 00.*bset #0x6,@0x8000:16
+ 194: 70 60
+ 196: 6a 18 fe ff.*bset #0x6,@0xfeff:16
+ 19a: 70 60
+ 19c: 7f 00 70 60.*bset #0x6,@0x0:8
+ 1a0: 7f ff 70 60.*bset #0x6,@0xff:8
+ 1a4: 6a 10 00 00.*band #0x6,@0x0:16
+ 1a8: 76 60
+ 1aa: 6a 10 7f ff.*band #0x6,@0x7fff:16
+ 1ae: 76 60
+ 1b0: 6a 30 00 00.*band #0x6,@0x8000:32
+ 1b4: 80 00 76 60
+ 1b8: 6a 30 00 00.*band #0x6,@0xff00:32
+ 1bc: ff 00 76 60
+ 1c0: 6a 30 00 ff.*band #0x6,@0xffff00:32
+ 1c4: ff 00 76 60
+ 1c8: 6a 30 ff ff.*band #0x6,@0xffff7fff:32
+ 1cc: 7f ff 76 60
+ 1d0: 6a 10 80 00.*band #0x6,@0x8000:16
+ 1d4: 76 60
+ 1d6: 6a 10 fe ff.*band #0x6,@0xfeff:16
+ 1da: 76 60
+ 1dc: 7e 00 76 60.*band #0x6,@0x0:8
+ 1e0: 7e ff 76 60.*band #0x6,@0xff:8
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-4.d b/binutils-2.21/ld/testsuite/ld-h8300/relax-4.d
new file mode 100644
index 0000000..b8d38ce
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-4.d
@@ -0,0 +1,51 @@
+# name: H8300 Relaxation Test 4
+# ld: --relax -m h8300self
+# objdump: -d --no-show-raw-insn
+
+.*: file format .*-h8300
+
+Disassembly of section .text:
+
+00000100 <_start>:
+ 100: mov.b #0x3,r0l
+ 102: mov.b #0x5,r2l
+ 104: bset r0l,@0xff:8
+ 108: bset r2l,@0x0:8
+ 10c: btst r2l,@0xff:8
+ 110: btst r0l,@0x0:8
+ 114: bset #0x5,@0x0:16
+ 11a: bset #0x5,@0x7fff:16
+ 120: bset #0x5,@0x8000:16
+ 126: bset #0x5,@0xfeff:16
+ 12c: bset #0x5,@0x0:8
+ 130: bset #0x5,@0xff:8
+ 134: band #0x5,@0x0:16
+ 13a: band #0x5,@0x7fff:16
+ 140: band #0x5,@0x8000:16
+ 146: band #0x5,@0xfeff:16
+ 14c: band #0x5,@0x0:8
+ 150: band #0x5,@0xff:8
+ 154: bset r2l,@0xff:8
+ 158: bset r0l,@0x0:8
+ 15c: btst r0l,@0xff:8
+ 160: btst r2l,@0x0:8
+ 164: bset #0x6,@0x0:16
+ 16a: bset #0x6,@0x7fff:16
+ 170: bset #0x6,@0x8000:32
+ 178: bset #0x6,@0xff00:32
+ 180: bset #0x6,@0xffff00:32
+ 188: bset #0x6,@0xffff7fff:32
+ 190: bset #0x6,@0x8000:16
+ 196: bset #0x6,@0xfeff:16
+ 19c: bset #0x6,@0x0:8
+ 1a0: bset #0x6,@0xff:8
+ 1a4: band #0x6,@0x0:16
+ 1aa: band #0x6,@0x7fff:16
+ 1b0: band #0x6,@0x8000:32
+ 1b8: band #0x6,@0xff00:32
+ 1c0: band #0x6,@0xffff00:32
+ 1c8: band #0x6,@0xffff7fff:32
+ 1d0: band #0x6,@0x8000:16
+ 1d6: band #0x6,@0xfeff:16
+ 1dc: band #0x6,@0x0:8
+ 1e0: band #0x6,@0xff:8
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-4.s b/binutils-2.21/ld/testsuite/ld-h8300/relax-4.s
new file mode 100644
index 0000000..32b5b06
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-4.s
@@ -0,0 +1,72 @@
+; Relaxation is possible for following bit manipulation instructions
+; BAND, BCLR, BIAND, BILD, BIOR, BIST, BIXOR, BLD, BNOT, BOR, BSET, BST, BTST, BXOR
+ .h8300s
+ .globl _start
+ _start:
+ # s3-s6 aren't valid 16-bit addresses.
+ mov.b #0x3,r0l
+ mov.b #0x5,r2l
+;
+; Relaxation of aa:16
+;
+ bset r0l,@s10:16
+ bset r2l,@s9:16
+ btst r2l,@s10:16
+ btst r0l,@s9:16
+
+ bset #5,@s1:16
+ bset #5,@s2:16
+ bset #5,@s7:16
+ bset #5,@s8:16
+ bset #5,@s9:16
+ bset #5,@s10:16
+
+ band #5,@s1:16
+ band #5,@s2:16
+ band #5,@s7:16
+ band #5,@s8:16
+ band #5,@s9:16
+ band #5,@s10:16
+;
+; Relaxation of aa:32
+;
+ bset r2l,@s10:32
+ bset r0l,@s9:32
+ btst r0l,@s10:32
+ btst r2l,@s9:32
+
+ bset #6,@s1:32
+ bset #6,@s2:32
+ bset #6,@s3:32
+ bset #6,@s4:32
+ bset #6,@s5:32
+ bset #6,@s6:32
+ bset #6,@s7:32
+ bset #6,@s8:32
+ bset #6,@s9:32
+ bset #6,@s10:32
+
+ band #6,@s1:32
+ band #6,@s2:32
+ band #6,@s3:32
+ band #6,@s4:32
+ band #6,@s5:32
+ band #6,@s6:32
+ band #6,@s7:32
+ band #6,@s8:32
+ band #6,@s9:32
+ band #6,@s10:32
+
+ .equ s1,0
+ .equ s2,0x7fff
+ .equ s3,0x8000
+ .equ s4,0xff00
+ .equ s5,0xffff00
+ .equ s6,0xffff7fff
+ .equ s7,0xffff8000
+ .equ s8,0xfffffeff
+ .equ s9,0xffffff00
+ .equ s10,0xffffffff
+
+ .end
+
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-5-coff.d b/binutils-2.21/ld/testsuite/ld-h8300/relax-5-coff.d
new file mode 100644
index 0000000..eed2ba0
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-5-coff.d
@@ -0,0 +1,50 @@
+# name: H8300 Relaxation Test 5 (for COFF)
+# source: relax-5.s
+# ld: --relax -m h8300s
+# objdump: -d --no-show-raw-insn
+
+.*: file format .*-h8300
+
+Disassembly of section .text:
+
+00000100 <_start>:
+ 100:.*ldc @0x0:16,ccr
+ 106:.*ldc @0x7fff:16,ccr
+ 10c:.*ldc @0x8000:32,ccr
+ 114:.*ldc @0xff00:32,ccr
+ 11c:.*ldc @0xffff00:32,ccr
+ 124:.*ldc @0xffff7fff:32,ccr
+ 12c:.*ldc @0x8000:16,ccr
+ 132:.*ldc @0xfeff:16,ccr
+ 138:.*ldc @0xff00:16,ccr
+ 13e:.*ldc @0xffff:16,ccr
+ 144:.*stc ccr,@0x0:16
+ 14a:.*stc ccr,@0x7fff:16
+ 150:.*stc ccr,@0x8000:32
+ 158:.*stc ccr,@0xff00:32
+ 160:.*stc ccr,@0xffff00:32
+ 168:.*stc ccr,@0xffff7fff:32
+ 170:.*stc ccr,@0x8000:16
+ 176:.*stc ccr,@0xfeff:16
+ 17c:.*stc ccr,@0xff00:16
+ 182:.*stc ccr,@0xffff:16
+ 188:.*ldc @0x0:16,exr
+ 18e:.*ldc @0x7fff:16,exr
+ 194:.*ldc @0x8000:32,exr
+ 19c:.*ldc @0xff00:32,exr
+ 1a4:.*ldc @0xffff00:32,exr
+ 1ac:.*ldc @0xffff7fff:32,exr
+ 1b4:.*ldc @0x8000:16,exr
+ 1ba:.*ldc @0xfeff:16,exr
+ 1c0:.*ldc @0xff00:16,exr
+ 1c6:.*ldc @0xffff:16,exr
+ 1cc:.*stc exr,@0x0:16
+ 1d2:.*stc exr,@0x7fff:16
+ 1d8:.*stc exr,@0x8000:32
+ 1e0:.*stc exr,@0xff00:32
+ 1e8:.*stc exr,@0xffff00:32
+ 1f0:.*stc exr,@0xffff7fff:32
+ 1f8:.*stc exr,@0x8000:16
+ 1fe:.*stc exr,@0xfeff:16
+ 204:.*stc exr,@0xff00:16
+ 20a:.*stc exr,@0xffff:16
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-5.d b/binutils-2.21/ld/testsuite/ld-h8300/relax-5.d
new file mode 100644
index 0000000..01e12a5
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-5.d
@@ -0,0 +1,50 @@
+# name: H8300 Relaxation Test 5
+# source: relax-5.s
+# ld: --relax -m h8300self
+# objdump: -d --no-show-raw-insn
+
+.*: file format .*-h8300
+
+Disassembly of section .text:
+
+00000100 <_start>:
+ 100: ldc @0x0:16,ccr
+ 106: ldc @0x7fff:16,ccr
+ 10c: ldc @0x8000:32,ccr
+ 114: ldc @0xff00:32,ccr
+ 11c: ldc @0xffff00:32,ccr
+ 124: ldc @0xffff7fff:32,ccr
+ 12c: ldc @0x8000:16,ccr
+ 132: ldc @0xfeff:16,ccr
+ 138: ldc @0xff00:16,ccr
+ 13e: ldc @0xffff:16,ccr
+ 144: stc ccr,@0x0:16
+ 14a: stc ccr,@0x7fff:16
+ 150: stc ccr,@0x8000:32
+ 158: stc ccr,@0xff00:32
+ 160: stc ccr,@0xffff00:32
+ 168: stc ccr,@0xffff7fff:32
+ 170: stc ccr,@0x8000:16
+ 176: stc ccr,@0xfeff:16
+ 17c: stc ccr,@0xff00:16
+ 182: stc ccr,@0xffff:16
+ 188: ldc @0x0:16,exr
+ 18e: ldc @0x7fff:16,exr
+ 194: ldc @0x8000:32,exr
+ 19c: ldc @0xff00:32,exr
+ 1a4: ldc @0xffff00:32,exr
+ 1ac: ldc @0xffff7fff:32,exr
+ 1b4: ldc @0x8000:16,exr
+ 1ba: ldc @0xfeff:16,exr
+ 1c0: ldc @0xff00:16,exr
+ 1c6: ldc @0xffff:16,exr
+ 1cc: stc exr,@0x0:16
+ 1d2: stc exr,@0x7fff:16
+ 1d8: stc exr,@0x8000:32
+ 1e0: stc exr,@0xff00:32
+ 1e8: stc exr,@0xffff00:32
+ 1f0: stc exr,@0xffff7fff:32
+ 1f8: stc exr,@0x8000:16
+ 1fe: stc exr,@0xfeff:16
+ 204: stc exr,@0xff00:16
+ 20a: stc exr,@0xffff:16
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-5.s b/binutils-2.21/ld/testsuite/ld-h8300/relax-5.s
new file mode 100644
index 0000000..b5afedb
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-5.s
@@ -0,0 +1,66 @@
+; Relaxation is possible from @aa:32 to @aa:16 for following instructions
+; ldc.w @@aa:32,ccr
+; stc.w ccr,@@aa:32
+; ldc.w @aa:32,exr
+; stc.w exr,@aa:32
+ .h8300s
+ .globl _start
+;
+; Relaxation of aa:32
+;
+ _start:
+ ldc @s1:32,ccr
+ ldc @s2:32,ccr
+ ldc @s3:32,ccr
+ ldc @s4:32,ccr
+ ldc @s5:32,ccr
+ ldc @s6:32,ccr
+ ldc @s7:32,ccr
+ ldc @s8:32,ccr
+ ldc @s9:32,ccr
+ ldc @s10:32,ccr
+
+ stc ccr,@s1:32
+ stc ccr,@s2:32
+ stc ccr,@s3:32
+ stc ccr,@s4:32
+ stc ccr,@s5:32
+ stc ccr,@s6:32
+ stc ccr,@s7:32
+ stc ccr,@s8:32
+ stc ccr,@s9:32
+ stc ccr,@s10:32
+
+ ldc @s1:32,exr
+ ldc @s2:32,exr
+ ldc @s3:32,exr
+ ldc @s4:32,exr
+ ldc @s5:32,exr
+ ldc @s6:32,exr
+ ldc @s7:32,exr
+ ldc @s8:32,exr
+ ldc @s9:32,exr
+ ldc @s10:32,exr
+
+ stc exr,@s1:32
+ stc exr,@s2:32
+ stc exr,@s3:32
+ stc exr,@s4:32
+ stc exr,@s5:32
+ stc exr,@s6:32
+ stc exr,@s7:32
+ stc exr,@s8:32
+ stc exr,@s9:32
+ stc exr,@s10:32
+
+ .equ s1,0
+ .equ s2,0x7fff
+ .equ s3,0x8000
+ .equ s4,0xff00
+ .equ s5,0xffff00
+ .equ s6,0xffff7fff
+ .equ s7,0xffff8000
+ .equ s8,0xfffffeff
+ .equ s9,0xffffff00
+ .equ s10,0xffffffff
+ .end
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-6-coff.d b/binutils-2.21/ld/testsuite/ld-h8300/relax-6-coff.d
new file mode 100644
index 0000000..b9c1e2f
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-6-coff.d
@@ -0,0 +1,11 @@
+# name: H8300 Relaxation Test 6
+# source: relax-6.s
+# ld: --relax -m h8300s
+# objdump: -d --no-show-raw-insn
+
+.*: file format .*-h8300
+Disassembly of section .text:
+
+00000100 <_start>:
+ 100: mov.b r2l,@0xbd:8
+ 102: rts
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-6.d b/binutils-2.21/ld/testsuite/ld-h8300/relax-6.d
new file mode 100644
index 0000000..023af78
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-6.d
@@ -0,0 +1,11 @@
+# name: H8300 Relaxation Test 6
+# source: relax-6.s
+# ld: --relax -m h8300self
+# objdump: -d --no-show-raw-insn
+
+.*: file format .*-h8300
+Disassembly of section .text:
+
+00000100 <_start>:
+ 100: mov.b r2l,@0xbd:8
+ 102: rts
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax-6.s b/binutils-2.21/ld/testsuite/ld-h8300/relax-6.s
new file mode 100644
index 0000000..fb44b54
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax-6.s
@@ -0,0 +1,5 @@
+ .h8300s
+ .global _start
+_start:
+ mov.b r2l,@0xFFFFFFBD:32
+ rts
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax.d b/binutils-2.21/ld/testsuite/ld-h8300/relax.d
new file mode 100644
index 0000000..e7315a1
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax.d
@@ -0,0 +1,21 @@
+# name: H8300 Relaxation Test
+# ld: --relax
+# objdump: -d
+
+# Based on the test case reported by Kazu Hirata:
+# http://sources.redhat.com/ml/binutils/2002-11/msg00301.html
+
+.*: file format .*-h8300
+
+Disassembly of section .text:
+
+00000100 <_start>:
+ 100: 0d 00.*mov.w r0,r0
+ 102: 47 02.*beq .+2 \(0x106\)
+ 104: 55 02.*bsr .+2 \(0x108\)
+
+00000106 <.L1>:
+ 106: 54 70.*rts
+
+00000108 <_bar>:
+ 108: 54 70.*rts
diff --git a/binutils-2.21/ld/testsuite/ld-h8300/relax.s b/binutils-2.21/ld/testsuite/ld-h8300/relax.s
new file mode 100644
index 0000000..b06f3a9
--- /dev/null
+++ b/binutils-2.21/ld/testsuite/ld-h8300/relax.s
@@ -0,0 +1,10 @@
+ .text
+ .global _start
+_start:
+ mov.w r0,r0
+ beq .L1
+ jsr @_bar
+.L1:
+ rts
+_bar:
+ rts