(do_h8300_branch, do_h8300h_cbranch, do_h8300h_branch): Likewise.
(do_h8300s_cbranch, do_h8300s_branch, ffxx1): Likwise.
* gas/h8300/h8300-coff.exp, gas/h8300/h8300-elf.exp: New files.
* gas/h8300/branch-elf.s, gas/h8300/branchh-elf.s: Likewise.
* gas/h8300/branchs-elf.s, gas/h8300/ffxx1-elf.d: Likewise.
* gas/h8300/ffxx1-elf.s: Likewise.
* gas/h8300/branch.s, gas/h8300/branchh.s: Move to:
* gas/h8300/branch-coff.s, gas/h8300/branchh-coff.s
* gas/h8300/branchs.s, gas/h8300/ffxx1.d: Move to:
* gas/h8300/branchs-coff.s, gas/h8300/ffxx1-coff.d .
* gas/h8300/ffxx1.s: Move to:
* gas/h8300/ffxx1-coff.s .
+Thu Aug 30 21:58:48 2001 J"orn Rennecke <amylaar@redhat.com>
+
+ * gas/h8300/h8300.exp (do_h8300_cbranch): Remove invocation.
+ (do_h8300_branch, do_h8300h_cbranch, do_h8300h_branch): Likewise.
+ (do_h8300s_cbranch, do_h8300s_branch, ffxx1): Likwise.
+ * gas/h8300/h8300-coff.exp, gas/h8300/h8300-elf.exp: New files.
+ * gas/h8300/branch-elf.s, gas/h8300/branchh-elf.s: Likewise.
+ * gas/h8300/branchs-elf.s, gas/h8300/ffxx1-elf.d: Likewise.
+ * gas/h8300/ffxx1-elf.s: Likewise.
+ * gas/h8300/branch.s, gas/h8300/branchh.s: Move to:
+ * gas/h8300/branch-coff.s, gas/h8300/branchh-coff.s
+ * gas/h8300/branchs.s, gas/h8300/ffxx1.d: Move to:
+ * gas/h8300/branchs-coff.s, gas/h8300/ffxx1-coff.d .
+ * gas/h8300/ffxx1.s: Move to:
+ * gas/h8300/ffxx1-coff.s .
+
Wed Aug 29 12:05:13 2001 J"orn Rennecke <amylaar@redhat.com>
* lib/gas-defs.exp: (regexp_diff) At verbosity 3, also show
--- /dev/null
+ .section zpage
+vector:
+ .word h8300_branches
+ .text
+h8300_branches:
+ bsr h8300_branches
+ jmp h8300_branches
+ jmp @r0
+ jmp @@vector:8
+ jsr h8300_branches
+ jsr @r0
+ jsr @@vector:8
+
--- /dev/null
+ .h8300h
+ .text
+h8300h_branches:
+ bsr h8300h_branches:8
+ bsr h8300h_branches:16
+ jmp h8300h_branches
+ jmp @er0
+ jmp @@16:8
+ jsr h8300h_branches
+ jsr @er0
+ jsr @@16:8
+
--- /dev/null
+ .h8300s
+ .text
+h8300s_branches:
+ bsr h8300s_branches:8
+ bsr h8300s_branches:16
+ jmp h8300s_branches
+ jmp @er0
+ jmp @@16:8
+ jsr h8300s_branches
+ jsr @er0
+ jsr @@16:8
+
--- /dev/null
+#objdump: --prefix-addresses -dr
+#name: FFxx1
+
+# Test for FFxx:8 addressing.
+
+.*: file format .*h8300.*
+
+Disassembly of section .text:
+0+0000 <reset> 04 00 orc #0x0,ccr
+ 0: R_H8_DIR16 .text[+]0x400
+ ...
+0+0400 <main> f8 7f mov.b #0x7f,r0l
+0+0402 <main[+](0x|)2> 28 bb mov.b @0xbb:8,r0l
+0+0404 <main[+](0x|)4> 6a 88 ff b9 mov.b r0l,@0xffb9:16
+0+0408 <main[+](0x|)8> f8 01 mov.b #0x1,r0l
+0+040a <loop> 6a 88 ff bb mov.b r0l,@0xffbb:16
+0+040e <delay> 79 01 00 00 mov.w #0x0,r1
+0+0412 <deloop> 0b 01 adds #0x1,er1
+0+0414 <deloop[+](0x|)2> 46 fc bne .-4 \(412\)
+0+0416 <deloop[+](0x|)4> 12 88 rotl r0l
+0+0418 <deloop[+](0x|)6> 40 f0 bra .-16 \(40a\)
+ ...
--- /dev/null
+ .equ p6ddr, 0xffb9 ;0x7f for output
+ .equ p6dr, 0xffbb
+ .equ seed, 0x01
+ .text
+ .org 0
+reset: .word main ;reset vector
+;
+ .org 0x400
+main: mov.b #0x7f,r0l ;port 6 ddr = 7F
+ mov.b @0xffbb:8,r0l ;***test***
+ mov.b r0l,@p6ddr:16
+;
+ mov.b #seed,r0l ;start with 0000001
+loop: mov.b r0l,@p6dr:16 ;output to port 6
+delay: mov.w #0x0000,r1
+deloop: adds.w #1,r1
+ bne deloop:8 ;not = 0
+ rotl r0l
+ bra loop:8
+ .word 0
--- /dev/null
+#
+# Some H8/300 coff tests
+#
+proc do_h8300_cbranch {} {
+ set testname "cbranch.s: h8300 conditional branch tests"
+ set x 0
+
+ gas_start "cbranch.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 4000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 4000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0004 4100\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 4100\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0008 4200\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 4300\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000c 4400\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 4400\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0010 4500\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0012 4500\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0014 4600\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0016 4700\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0018 4800\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001a 4900\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 20] then { pass $testname } else { fail $testname }
+}
+
+proc do_h8300_branch {} {
+ set testname "branch.s: h8300 branch tests"
+ set x 0
+
+ gas_start "branch-coff.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 5500\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 5A000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 5900\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0008 5B00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 5E000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 5D00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0010 5F00\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 7] then { pass $testname } else { fail $testname }
+}
+
+proc do_h8300h_cbranch {} {
+ set testname "cbranchh.s: h8300h conditional branch tests"
+ set x 0
+
+ gas_start "cbranchh.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 4000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 4000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0004 4100\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 4100\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0008 4200\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 4300\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000c 4400\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 4400\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0010 4500\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0012 4500\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0014 4600\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0016 4700\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0018 4800\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001a 4900\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0028 58000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 002c 58000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0030 58100000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0034 58100000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0038 58200000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 003c 58300000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0040 58400000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0044 58400000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0048 58500000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 004c 58500000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0050 58600000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0054 58700000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0058 58800000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 005c 58900000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0060 58A00000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0064 58B00000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0068 58C00000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 006c 58D00000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0070 58E00000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0074 58F00000\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 40] then { pass $testname } else { fail $testname }
+}
+
+proc do_h8300h_branch {} {
+ set testname "branchh.s: h8300h branch tests"
+ set x 0
+
+ gas_start "branchh-coff.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 5500\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 5C000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 5A000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 5900\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000c 5B00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 5E000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0012 5D00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0014 5F00\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 8] then { pass $testname } else { fail $testname }
+}
+
+proc do_h8300s_cbranch {} {
+ set testname "cbranchs.s: h8300s conditional branch tests"
+ set x 0
+
+ gas_start "cbranchs.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 4000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 4000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0004 4100\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 4100\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0008 4200\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 4300\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000c 4400\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 4400\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0010 4500\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0012 4500\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0014 4600\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0016 4700\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0018 4800\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001a 4900\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0028 58000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 002c 58000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0030 58100000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0034 58100000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0038 58200000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 003c 58300000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0040 58400000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0044 58400000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0048 58500000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 004c 58500000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0050 58600000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0054 58700000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0058 58800000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 005c 58900000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0060 58A00000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0064 58B00000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0068 58C00000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 006c 58D00000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0070 58E00000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0074 58F00000\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 40] then { pass $testname } else { fail $testname }
+}
+
+proc do_h8300s_branch {} {
+ set testname "branchs.s: h8300s branch tests"
+ set x 0
+
+ gas_start "branchs-coff.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 5500\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 5C000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 5A000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 5900\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000c 5B00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 5E000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0012 5D00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0014 5F00\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 8] then { pass $testname } else { fail $testname }
+}
+
+if { [istarget h8300*-*-coff]
+ || [istarget h8300*-*-hms*]
+ || [istarget h8300*-*-rtems*] } then {
+
+ # Test the basic h8300 instruction parser
+ do_h8300_cbranch
+ do_h8300_branch
+
+ # Now test the h8300h instruction parser
+ do_h8300h_cbranch
+ do_h8300h_branch
+
+ # Now test the h8300s instruction parser
+ do_h8300s_cbranch
+ do_h8300s_branch
+
+ # Now some random tests
+ run_dump_test "ffxx1-coff"
+}
--- /dev/null
+#
+# Some H8/300 elf tests
+#
+proc do_h8300_cbranch {} {
+ set testname "cbranch.s: h8300 conditional branch tests"
+ set x 0
+
+ gas_start "cbranch.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 40FE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 40FC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0004 41FA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 41F8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0008 42F6\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 43F4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000c 44F2\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 44F0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0010 45EE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0012 45EC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0014 46EA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0016 47E8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0018 48E6\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001a 49E4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001c 4AE2\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001e 4BE0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0020 4CDE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0022 4DDC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0024 4EDA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0026 4FD8\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 20] then { pass $testname } else { fail $testname }
+}
+
+proc do_h8300_branch {} {
+ set testname "branch.s: h8300 branch tests"
+ set x 0
+
+ gas_start "branch-elf.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 55FE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 5A000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 5900\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0008 5B00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 5E000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 5D00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0010 5F00\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 7] then { pass $testname } else { fail $testname }
+}
+
+proc do_h8300h_cbranch {} {
+ set testname "cbranchh.s: h8300h conditional branch tests"
+ set x 0
+
+ gas_start "cbranchh.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 40FE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 40FC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0004 41FA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 41F8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0008 42F6\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 43F4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000c 44F2\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 44F0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0010 45EE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0012 45EC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0014 46EA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0016 47E8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0018 48E6\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001a 49E4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001c 4AE2\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001e 4BE0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0020 4CDE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0022 4DDC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0024 4EDA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0026 4FD8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0028 5800FFD4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 002c 5800FFD0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0030 5810FFCC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0034 5810FFC8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0038 5820FFC4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 003c 5830FFC0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0040 5840FFBC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0044 5840FFB8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0048 5850FFB4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 004c 5850FFB0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0050 5860FFAC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0054 5870FFA8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0058 5880FFA4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 005c 5890FFA0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0060 58A0FF9C\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0064 58B0FF98\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0068 58C0FF94\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 006c 58D0FF90\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0070 58E0FF8C\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0074 58F0FF88\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 40] then { pass $testname } else { fail $testname }
+}
+
+proc do_h8300h_branch {} {
+ set testname "branchh.s: h8300h branch tests"
+ set x 0
+
+ gas_start "branchh-elf.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 55FE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 5C00FFFA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 5A000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 5900\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000c 5B10\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 5E000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0012 5D00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0014 5F10\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 8] then { pass $testname } else { fail $testname }
+}
+
+proc do_h8300s_cbranch {} {
+ set testname "cbranchs.s: h8300s conditional branch tests"
+ set x 0
+
+ gas_start "cbranchs.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 40FE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 40FC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0004 41FA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 41F8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0008 42F6\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 43F4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000c 44F2\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 44F0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0010 45EE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0012 45EC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0014 46EA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0016 47E8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0018 48E6\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001a 49E4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001c 4AE2\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 001e 4BE0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0020 4CDE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0022 4DDC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0024 4EDA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0026 4FD8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0028 5800FFD4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 002c 5800FFD0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0030 5810FFCC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0034 5810FFC8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0038 5820FFC4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 003c 5830FFC0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0040 5840FFBC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0044 5840FFB8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0048 5850FFB4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 004c 5850FFB0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0050 5860FFAC\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0054 5870FFA8\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0058 5880FFA4\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 005c 5890FFA0\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0060 58A0FF9C\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0064 58B0FF98\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0068 58C0FF94\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 006c 58D0FF90\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0070 58E0FF8C\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0074 58F0FF88\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 40] then { pass $testname } else { fail $testname }
+}
+
+proc do_h8300s_branch {} {
+ set testname "branchs.s: h8300s branch tests"
+ set x 0
+
+ gas_start "branchs-elf.s" "-al"
+
+ # Check each instruction bit pattern to verify it got
+ # assembled correctly.
+ while 1 {
+ expect {
+ -re " +\[0-9\]+ 0000 55FE\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0002 5C00FFFA\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0006 5A000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000a 5900\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000c 5B10\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 000e 5E000000\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0012 5D00\[^\n\]*\n" { set x [expr $x+1] }
+ -re " +\[0-9\]+ 0014 5F10\[^\n\]*\n" { set x [expr $x+1] }
+ timeout { perror "timeout\n; break }
+ eof { break }
+ }
+ }
+
+ # This was intended to do any cleanup necessary. It kinda looks like it
+ # isn't needed, but just in case, please keep it in for now.
+ gas_finish
+
+ # Did we find what we were looking for? If not, flunk it.
+ if [expr $x == 8] then { pass $testname } else { fail $testname }
+}
+
+if [istarget h8300*-*-elf] then {
+ # Test the basic h8300 instruction parser
+ do_h8300_cbranch
+ do_h8300_branch
+
+ # Now test the h8300h instruction parser
+ do_h8300h_cbranch
+ do_h8300h_branch
+
+ # Now test the h8300s instruction parser
+ do_h8300s_cbranch
+ do_h8300s_branch
+
+ # Now some random tests
+ run_dump_test "ffxx1-elf"
+}
# Test the basic h8300 instruction parser
do_h8300_add_sub
do_h8300_logical
- do_h8300_cbranch
do_h8300_bitops1
do_h8300_bitops2
do_h8300_bitops3
do_h8300_bitops4
- do_h8300_branch
do_h8300_compare
do_h8300_decimal
do_h8300_incdec
# Now test the h8300h instruction parser
do_h8300h_add_sub
do_h8300h_logical
- do_h8300h_cbranch
do_h8300h_bitops1
do_h8300h_bitops2
do_h8300h_bitops3
do_h8300h_bitops4
- do_h8300h_branch
do_h8300h_compare
do_h8300h_decimal
do_h8300h_incdec
# Now test the h8300s instruction parser
do_h8300s_add_sub
do_h8300s_logical
- do_h8300s_cbranch
do_h8300s_bitops1
do_h8300s_bitops2
do_h8300s_bitops3
do_h8300s_bitops4
- do_h8300s_branch
do_h8300s_compare
do_h8300s_decimal
do_h8300s_incdec
set empic [expr [istarget *-*-ecoff*] || [istarget *-*-ultrix*] || [istarget *-*-irix\[1-4\]*] ]
set aout [expr [istarget *-*-bsd*] || [istarget *-*-netbsd*]]
- run_dump_test "ffxx1"
gas_test "cmpsi2.s" "" "" "cmpsi2.s"
}