diff options
author | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1996-09-04 19:11:21 +0000 |
---|---|---|
committer | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1996-09-04 19:11:21 +0000 |
commit | c3c8d76890b592bf5acc1a9b7faeabd9b829dd71 (patch) | |
tree | 6358a23d0df9de73b6d5d6d3a75545ff35f05b47 /gnu/usr.bin/binutils/gas/testsuite | |
parent | 4ba440a6e788da3a64fa29b782c37150a3f5cc18 (diff) |
Merge the Cygnus 960904 sources
Diffstat (limited to 'gnu/usr.bin/binutils/gas/testsuite')
13 files changed, 1055 insertions, 80 deletions
diff --git a/gnu/usr.bin/binutils/gas/testsuite/ChangeLog b/gnu/usr.bin/binutils/gas/testsuite/ChangeLog index 995269af53e..075dcc53688 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/ChangeLog +++ b/gnu/usr.bin/binutils/gas/testsuite/ChangeLog @@ -1,3 +1,105 @@ +Thu Aug 29 11:32:23 1996 James G. Smith <jsmith@cygnus.co.uk> + + * gas/arm/arm7t.d: Explicitly force little-endian assembly. + +Fri Aug 16 00:19:10 1996 Jeffrey A Law (law@cygnus.com) + + * gas/hppa/basic/purge.s: Use "%sr4" on pitlb, pitlbe + fic and fice instructions to test 3bit space identifiers. + * gas/hppa/basic/system.s: Similarly for iitlba and + iitlbp. + * gas/hppa/basic/basic.exp: Corresponding changes. + +Thu Aug 15 16:25:05 1996 James G. Smith <jsmith@cygnus.co.uk> + + * gas/arm/arm.exp: Change inst.s test to check objdump. + * gas/arm/inst.d: Added. + +Thu Aug 15 16:06:02 1996 James G. Smith <jsmith@cygnus.co.uk> + + * gas/arm/thumb.s: Added. + * gas/arm/immed.s: Added. + * gas/arm/arch4t.s: Added. + * gas/arm/arm.exp: Updated to run the new tests. + +Tue Aug 6 11:06:29 1996 Jeffrey A Law (law@cygnus.com) + + * gas/h8300/misch.s: Reenable "eepmov.w" test. + * gas/h8300/miscs.s: Likewise. + * gas/h8300/h8300.exp: Check for correct assembly of "eepmov.w" + on the H8/300H and H8/S. Don't expect it to fail. + +Wed Jul 31 10:57:44 1996 Doug Evans <dje@canuck.cygnus.com> + + * gas/sparc/asi.s: Update ASI_AS_IF_USER_{PRIMARY,SECONDARY}_LITTLE. + +Wed Jul 31 15:55:12 1996 James G. Smith <jsmith@cygnus.co.uk> + + * gas/arm/arm7t.s: Added. + * gas/arm/arm7t.d: Added. + * gas/arm/arm.exp: Updated to run the new test. + +Mon Jul 8 14:27:39 1996 Ian Lance Taylor <ian@cygnus.com> + + * gas/m68k/pcrel.d: Rename from schwab.d. + * gas/m68k/pcrel.s: Rename from schwab.s. + +Mon Jul 8 14:23:26 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * gas/m68k/schwab.d: Correct for ELF format. + * gas/m68k/all.exp: Run "schwab" test for all targets. + +Thu Jul 4 14:23:36 1996 Ian Lance Taylor <ian@cygnus.com> + + Avoid DOS file naming problems: + * gas/h8300/branch.s: Rename from branches.s. + * gas/h8300/branchh.s: Rename from branchesh.s. + * gas/h8300/branchs.s: Rename from branchess.s. + * gas/h8300/rotsh.s: Rename from rotshift.s. + * gas/h8300/rotshh.s: Rename from rotshifth.s. + * gas/h8300/rotshs.s: Rename from rotshifts.s. + * gas/h8300/h8300.exp: Corresponding changes. + +Thu Jul 4 14:01:46 1996 James G. Smith <jsmith@cygnus.co.uk> + + * gas/mips/mips.exp: Add new tests for processors with interlocks + on div and mul. + * gas/mips/div-ilocks.d: Added. + * gas/mips/mul-ilocks.d: Added. + +Wed Jul 3 14:20:04 1996 Ian Lance Taylor <ian@cygnus.com> + + * gas/all/gas.exp: Remove setup_xfail for h8300*-*-* for two tests + which now pass. + * gas/h8300/h8300.exp: Fix regexp of mov32bug test to work on a 64 + bit host. + +Sat Jun 29 18:21:51 1996 Ian Lance Taylor <ian@cygnus.com> + + * gas/all/gas.exp: Add setup_xfail for vax*-*-vms* for 930509a + test. + * gas/vax/quad.exp: Expect a nop after the movq. + +Tue Jun 18 12:39:49 1996 Jeffrey A. Law <law@rtl.cygnus.com> + + * gas/h8300/cbranchh.s: Switch into h8300h mode. + * gas/h8300/h8300.exp (H8/300H misc tests): Fix test names. + + * gas/h8300/{addsubs.s,bitops1s.s,bitops2s.s}: New tests for the + H8/S. + * gas/h8300/{bitops3.s,bitops4.s,cbranchs.s,logicals.s}: Likewise. + * gas/h8300/{branchess.s,compares.s,macs.s,decimals.s}: Likewise. + * gas/h8300/{incdecs.s,divmuls.s,miscs.s,multiples.s}: Likewise. + * gas/h8300/{movbs.s,movws.s,movls.s,pushpops.s}: Likewise. + * gas/h8300/{rotshifts.s,extends.s}: Likewise. + * gas/h8300/h8300.exp: Run them. + +Mon Jun 10 14:14:40 1996 Ian Lance Taylor <ian@cygnus.com> + + * gas/all/cofftag.s, gas/all/cofftag.d: New test for COFF enum tag + with the same name as a global variable. + * gas/all/gas.exp: Run cofftag test for any COFF target. + Thu Jun 6 12:30:05 1996 Ian Lance Taylor <ian@cygnus.com> * gas/m68k/all.exp: Pass -m68020 when assembling the disperr.s @@ -273,13 +375,11 @@ Mon Aug 14 16:03:07 1995 Ian Lance Taylor <ian@cygnus.com> * gasp/gasp.exp: Run them. Also, clean up the test names used in pass and fail. -start-sanitize-sh3e Sun Aug 13 00:39:24 1995 Jeff Law (law@snake.cs.utah.edu) * gas/sh/basic.exp: Update now that we know the right bit patters for the new sts instructions. -end-sanitize-sh3e Thu Aug 10 00:46:21 1995 Ian Lance Taylor <ian@cygnus.com> * gas/mri/char.d: Fix for little endian machines. @@ -321,12 +421,10 @@ Mon Aug 7 22:39:28 1995 Ian Lance Taylor <ian@cygnus.com> * gas/m68k/all.exp: Run new tests. Run schwab test for m68k-*-coff*. -start-sanitize-sh3e Mon Aug 7 03:01:32 1995 Jeff Law (law@snake.cs.utah.edu) * gas/sh/*: New tests for the hitachi-sh. -end-sanitize-sh3e Tue Aug 1 18:02:47 1995 Ian Lance Taylor <ian@cygnus.com> * gas/mri/*: New tests for MRI mode. diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/all/gas.exp b/gnu/usr.bin/binutils/gas/testsuite/gas/all/gas.exp index 26abb8ee6bd..ad789581ada 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/all/gas.exp +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/all/gas.exp @@ -23,8 +23,6 @@ gas_test "float.s" "" "" "simple FP constants" # This test is meaningless for the PA; the difference of two undefined # symbols is something that is (and must be) supported on the PA. if ![istarget hppa*-*-*] then { - # the h8300 fails because we skip all the logic in fixup_segment - setup_xfail "h8300*-*-*" gas_test_error "diff1.s" "" "difference of two undefined symbols" } @@ -82,8 +80,9 @@ proc do_930509a {} { # This test is meaningless for the PA; the difference of two symbols # must not be resolved by the assembler. if ![istarget hppa*-*-*] then { - # the h8300 fails because we skip all the logic in fixup_segment - setup_xfail "h8300*-*-*" + # the vax fails because VMS can apparently actually handle this + # case in relocs, so gas doesn't handle it itself. + setup_xfail "vax*-*-vms*" do_930509a } @@ -91,6 +90,23 @@ if ![istarget hppa*-*-*] then { run_dump_test struct } +# This test is for any COFF target. +if { [istarget *-*-coff*] \ + || [istarget *-*-pe*] \ + || [istarget a29k-*-udi*] \ + || [istarget a29k-*-ebmon*] \ + || [istarget a29k-*-sym*] \ + || [istarget a29k-*-vxworks*] \ + || [istarget i*86-*-aix*] \ + || [istarget i*86-*-sco*] \ + || [istarget i*86-*-isc*] \ + || [istarget i*86-*-go32*] \ + || [istarget i*86-*-cygwin*] \ + || [istarget i*86-*-*nt] \ + || ([istarget i960-*-vxworks5.*] && ![istarget i960-*-vxworks5.0*]) } { + run_dump_test cofftag +} + # FIXME: this is here cause of a bug in DejaGnu 1.1.1. When it is no longer # in use, then this can be removed. if [info exists errorInfo] then { diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/arm/arm.exp b/gnu/usr.bin/binutils/gas/testsuite/gas/arm/arm.exp index 6a76fc3d8d6..f21c54df310 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/arm/arm.exp +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/arm/arm.exp @@ -2,7 +2,7 @@ # Some ARM tests # if [istarget arm-*-*] then { - gas_test "inst.s" "" $stdoptlist "Basic instruction set" + run_dump_test "inst" gas_test "arm3.s" "" $stdoptlist "Arm 3 instructions" @@ -10,8 +10,16 @@ if [istarget arm-*-*] then { gas_test "arm7dm.s" "" $stdoptlist "Arm 7DM instructions" + run_dump_test "arm7t" + + gas_test "thumb.s" "" $stdoptlist "Thumb instructions" + + gas_test "arch4t.s" "" $stdoptlist "Arm architecture 4t instructions" + gas_test "copro.s" "" $stdoptlist "Co processor instructions" + gas_test "immed.s" "" $stdoptlist "immediate expressions" + gas_test "float.s" "" $stdoptlist "Core floating point instructions" } diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/cbranchh.s b/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/cbranchh.s index 3582bb162ce..a64e1a2aade 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/cbranchh.s +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/cbranchh.s @@ -1,4 +1,5 @@ .text + .h8300h h8300h_cbranch: bra h8300h_cbranch:8 bt h8300h_cbranch:8 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/h8300.exp b/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/h8300.exp index de2d7c31576..0d9687b5446 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/h8300.exp +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/h8300.exp @@ -260,11 +260,11 @@ proc do_h8300_bitops4 {} { if [expr $x == 15] then { pass $testname } else { fail $testname } } -proc do_h8300_branches {} { - set testname "branches.s: h8300 branch tests" +proc do_h8300_branch {} { + set testname "branch.s: h8300 branch tests" set x 0 - gas_start "branches.s" "-al" + gas_start "branch.s" "-al" # Check each instruction bit pattern to verify it got # assembled correctly. @@ -512,10 +512,10 @@ proc do_h8300_pushpop {} { } proc do_h8300_rotate_shift {} { - set testname "rotshift.s: h8300 rotate and shift tests" + set testname "rotsh.s: h8300 rotate and shift tests" set x 0 - gas_start "rotshift.s" "-al" + gas_start "rotsh.s" "-al" # Check each instruction bit pattern to verify it got # assembled correctly. @@ -843,11 +843,11 @@ proc do_h8300h_bitops4 {} { if [expr $x == 15] then { pass $testname } else { fail $testname } } -proc do_h8300h_branches {} { - set testname "branchesh.s: h8300h branch tests" +proc do_h8300h_branch {} { + set testname "branchh.s: h8300h branch tests" set x 0 - gas_start "branchesh.s" "-al" + gas_start "branchh.s" "-al" # Check each instruction bit pattern to verify it got # assembled correctly. @@ -1000,25 +1000,26 @@ proc do_h8300h_misc {} { while 1 { expect { -re " +\[0-9\]+ 0000 7B5C598F\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0004 0700\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0006 0308\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0008 01406900\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 000c 01406F00\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0012 01407800\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 001c 01406D00\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0020 01406B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0026 01406B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 002e 0000\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0030 5670\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0032 5470\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0034 0180\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0036 0208\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0038 01406980\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 003c 01406F80\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0042 01407800\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 004c 01406D80\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0050 01406B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } - -re " +\[0-9\]+ 0056 01406BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 7BD4598F\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 0700\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 0308\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000c 01406900\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 01406F00\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0016 01407800\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0020 01406D00\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0024 01406B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002a 01406B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0032 0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0034 5670\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0036 5470\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0038 0180\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003a 0208\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003c 01406980\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0040 01406F80\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0046 01407800\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0050 01406D80\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0054 01406B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 005a 01406BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } eof { break } } } @@ -1028,13 +1029,10 @@ proc do_h8300h_misc {} { gas_finish # Did we find what we were looking for? If not, flunk it. - if [expr $x == 20] then { pass $testname } else { fail $testname } - - setup_xfail "h8300*-*-*" - fail "h8300 movfpe/movtpe tests" + if [expr $x == 21] then { pass $testname } else { fail $testname } setup_xfail "h8300*-*-*" - fail "h8300 eepmov.w tests" + fail "h8300h movfpe/movtpe tests" } proc do_h8300h_movb {} { @@ -1174,10 +1172,10 @@ proc do_h8300h_pushpop {} { } proc do_h8300h_rotate_shift {} { - set testname "rotshifth.s: h8300h rotate and shift tests" + set testname "rotshh.s: h8300h rotate and shift tests" set x 0 - gas_start "rotshifth.s" "-al" + gas_start "rotshh.s" "-al" # Check each instruction bit pattern to verify it got # assembled correctly. @@ -1245,6 +1243,843 @@ proc do_h8300h_extend {} { if [expr $x == 4] then { pass $testname } else { fail $testname } } +proc do_h8300s_add_sub {} { + set testname "addsubs.s: h8300s add/sub tests" + set x 0 + + gas_start "addsubs.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 8910\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 0819\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 79110020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 0912\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 7A110000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 0A92\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0012 0B04\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0014 0B85\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0016 0B96\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0018 0E89\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001a 9210\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001c 1889\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001e 79310010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0022 1901\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0024 7A310000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002a 1A92\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002c 1B04\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002e 1B85\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0030 1B96\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0032 1E89\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0034 B210\[^\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 == 21] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_logical {} { + set testname "logicals.s: h8300s logical tests" + set x 0 + + gas_start "logicals.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 E910\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 1691\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 79610020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 6611\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 7A610000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 01F06611\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0014 0610\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0016 01410610\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001a C810\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001c 1498\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001e 79410020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0022 6411\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0024 7A410000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002a 01F06411\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002e 0410\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0030 01410410\[^\n\]*\n" { set x [expr $x+1] } + + -re " +\[0-9\]+ 0034 D810\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0036 1589\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0038 79510020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003c 6511\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003e 7A510000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0044 01F06511\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0048 0510\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004a 01410510\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004e 1788\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0050 1790\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0052 17B0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0054 1708\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0056 1710\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0058 1730\[^\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 == 30] 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_bitops1 {} { + set testname "bitops1s.s: h8300s bitops tests #1" + set x 0 + + gas_start "bitops1s.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 7608\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 7C007600\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 7E407600\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7600" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007600" { set x [expr $x+1] } + -re " +\[0-9\]+ 0018 7208\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001a 7D007200\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001e 7F407200\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +7200" { set x [expr $x+1] } + -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00007200" { set x [expr $x+1] } + -re " +\[0-9\]+ 0030 6298\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0032 7D006290\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0036 7F406290\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003a 6A180080\[^\n\]*\n +\[0-9\]+ +6290" { set x [expr $x+1] } + -re " +\[0-9\]+ 0040 6A380001\[^\n\]*\n +\[0-9\]+ +00006290" { set x [expr $x+1] } + -re " +\[0-9\]+ 0048 7688\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004a 7C007680\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004e 7E407680\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +7680" { set x [expr $x+1] } + -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00007680" { set x [expr $x+1] } + -re " +\[0-9\]+ 0060 7788\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0062 7C007780\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0066 7E407780\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 006a 6A100080\[^\n\]*\n +\[0-9\]+ +7780" { set x [expr $x+1] } + -re " +\[0-9\]+ 0070 6A300001\[^\n\]*\n +\[0-9\]+ +00007780" { 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 == 25] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_bitops2 {} { + set testname "bitops2s.s: h8300s bitops tests #2" + set x 0 + + gas_start "bitops2s.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 7488\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 7C007480\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 7E407480\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7480" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007480" { set x [expr $x+1] } + -re " +\[0-9\]+ 0018 6788\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001a 7D006780\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001e 7F406780\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6780" { set x [expr $x+1] } + -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006780" { set x [expr $x+1] } + + -re " +\[0-9\]+ 0030 7588\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0032 7C007580\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0036 7E407580\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003a 6A100080\[^\n\]*\n +\[0-9\]+ +7580" { set x [expr $x+1] } + -re " +\[0-9\]+ 0040 6A300001\[^\n\]*\n +\[0-9\]+ +00007580" { set x [expr $x+1] } + -re " +\[0-9\]+ 0048 7708\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004a 7C007700\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004e 7E407700\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +7700" { set x [expr $x+1] } + -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00007700" { 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_h8300s_bitops3 {} { + set testname "bitops3s.s: h8300s bitops tests #3" + set x 0 + + gas_start "bitops3s.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 7108\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 7D007100\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 7F407100\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 6A180080\[^\n\]*\n +\[0-9\]+ +7100" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 6A380001\[^\n\]*\n +\[0-9\]+ +00007100" { set x [expr $x+1] } + -re " +\[0-9\]+ 0018 6198\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001a 7D006190\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001e 7F406190\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6190" { set x [expr $x+1] } + -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006190" { set x [expr $x+1] } + -re " +\[0-9\]+ 0030 7008\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0032 7D007000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0036 7F407000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003a 6A180080\[^\n\]*\n +\[0-9\]+ +7000" { set x [expr $x+1] } + -re " +\[0-9\]+ 0040 6A380001\[^\n\]*\n +\[0-9\]+ +00007000" { set x [expr $x+1] } + -re " +\[0-9\]+ 0048 6098\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004a 7D006090\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004e 7F406090\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0052 6A180080\[^\n\]*\n +\[0-9\]+ +6090" { set x [expr $x+1] } + -re " +\[0-9\]+ 0058 6A380001\[^\n\]*\n +\[0-9\]+ +00006090" { 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_h8300s_bitops4 {} { + set testname "bitops4s.s: h8300s bitops tests #4" + set x 0 + + gas_start "bitops4s.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 7408\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 7C007400\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 7E407400\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7400" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007400" { set x [expr $x+1] } + -re " +\[0-9\]+ 0018 6708\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001a 7D006700\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001e 7F406700\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6700" { set x [expr $x+1] } + -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006700" { set x [expr $x+1] } + -re " +\[0-9\]+ 0030 7308\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0032 7C007300\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0036 7E407300\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003a 6A100080\[^\n\]*\n +\[0-9\]+ +7300" { set x [expr $x+1] } + -re " +\[0-9\]+ 0040 6A300001\[^\n\]*\n +\[0-9\]+ +00007300" { set x [expr $x+1] } + -re " +\[0-9\]+ 0048 6398\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004a 7C006390\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004e 7E406390\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +6390" { set x [expr $x+1] } + -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00006390" { set x [expr $x+1] } + -re " +\[0-9\]+ 0060 7508\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0062 7C007500\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0066 7E407500\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 006a 6A100080\[^\n\]*\n +\[0-9\]+ +7500" { set x [expr $x+1] } + -re " +\[0-9\]+ 0070 6A300001\[^\n\]*\n +\[0-9\]+ +00007500" { 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 == 25] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_branch {} { + set testname "branchs.s: h8300s branch tests" + set x 0 + + gas_start "branchs.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_compare {} { + set testname "compares.s: h8300s compare tests" + set x 0 + + gas_start "compares.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 A800\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 1C08\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 79200020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 1D01\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 7A200000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 1F81\[^\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 == 6] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_decimal {} { + set testname "decimals.s: h8300s decimal tests" + set x 0 + + gas_start "decimals.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 0F08\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 1F08\[^\n\]*\n" { set x [expr $x+1] } + 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 == 2] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_incdec {} { + set testname "incdecs.s: h8300s incdec tests" + set x 0 + + gas_start "incdecs.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 1A08\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 1B50\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 1BD0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 1B70\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 1BF0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 0A08\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000c 0B50\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000e 0BD0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 0B70\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0012 0BF0\[^\n\]*\n" { set x [expr $x+1] } + 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 == 10] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_divmul {} { + set testname "divmuls.s: h8300s divmul tests" + set x 0 + + gas_start "divmuls.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 5181\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 5301\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 01D05181\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 01D05301\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000c 5081\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000e 5201\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 01C05081\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0014 01C05201\[^\n\]*\n" { set x [expr $x+1] } + 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_misc {} { + set testname "miscs.s: h8300s misc tests" + set x 0 + + gas_start "miscs.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 7B5C598F\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 7BD4598F\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 0700\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 0308\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000c 01410700\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 0318\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0012 01406900\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0016 01406F00\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001c 01407800\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0026 01406D00\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002a 01406B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0030 01406B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0038 01416900\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003c 01416F00\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0042 01417800\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004c 01416D00\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0050 01416B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0056 01416B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 005e 0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0060 5670\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0062 5470\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0064 0180\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0066 0208\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0068 0218\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 006a 01406980\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 006e 01406F80\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0074 01407800\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 007e 01406D80\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0082 01406B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0088 01406BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0090 01416980\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0094 01416F80\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 009a 01417800\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 00a4 01416D80\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 00a8 01416B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 00ae 01416BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } + 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 == 36] then { pass $testname } else { fail $testname } + + setup_xfail "h8300*-*-*" + fail "h8300s movfpe/movtpe tests" +} + +proc do_h8300s_movb {} { + set testname "movbs.s: h8300s movb tests" + set x 0 + + gas_start "movbs.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 0C89\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 F810\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 6818\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 6E180010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 78106A28\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0012 6C18\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0014 2810\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0016 6A080000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001a 6A280000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0020 6898\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0022 6E980010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0026 78106AA8\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002e 6C98\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0030 3810\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0032 6A880000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0036 6AA80000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + 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 == 16] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_movw {} { + set testname "movws.s: h8300s movw tests" + set x 0 + + gas_start "movws.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 0D01\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 79000010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 6910\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 6F100010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000c 78106B20\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0014 6D10\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0016 6B000000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001a 6B200000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0020 6990\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0022 6F900010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0026 78106BA0\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002e 6D90\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0030 6B800000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0034 6BA00000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + 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 == 14] then { pass $testname } else { fail $testname } +} + + +proc do_h8300s_movl {} { + set testname "movls.s: h8300s movl tests" + set x 0 + + gas_start "movls.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 0F81\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 7A000000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 01006910\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000c 01006F10\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0012 01007810\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001c 01006D10\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0020 01006B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0026 01006B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002e 01006990\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0032 01006F90\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0038 01007890\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0042 01006D90\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0046 01006B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004c 01006BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } + 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 == 14] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_pushpop {} { + set testname "pushpops.s: h8300s pushpop tests" + set x 0 + + gas_start "pushpops.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 6D70\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 01006D70\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 6DF0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 01006DF0\[^\n\]*\n" { set x [expr $x+1] } + 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 == 4] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_rotate_shift {} { + set testname "rotshs.s: h8300s rotate and shift tests" + set x 0 + + gas_start "rotshs.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 1288\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 12C8\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 1290\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 12D0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 12B0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000a 12F0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000c 1388\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000e 13C8\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 1390\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0012 13D0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0014 13B0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0016 13F0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0018 1208\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001a 1248\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001c 1210\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 001e 1250\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0020 1230\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0022 1270\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0024 1308\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0026 1348\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0028 1310\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002a 1350\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002c 1330\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 002e 1370\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0030 1088\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0032 10C8\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0034 1090\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0036 10D0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0038 10B0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003a 10F0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003c 1188\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 003e 11C8\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0040 1190\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0042 11D0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0044 11B0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0046 11F0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0048 1008\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004a 1048\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004c 1010\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 004e 1050\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0050 1030\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0052 1070\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0054 1108\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0056 1148\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0058 1110\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 005a 1150\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 005c 1130\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 005e 1170\[^\n\]*\n" { set x [expr $x+1] } + 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 == 48] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_extend {} { + set testname "extends.s: h8300s extend tests" + set x 0 + + gas_start "extends.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 17D0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 17F0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 1750\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 1770\[^\n\]*\n" { set x [expr $x+1] } + 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 == 4] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_mac {} { + set testname "macs.s: h8300s mac tests" + set x 0 + + gas_start "macs.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 01A0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0002 0320\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 0331\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0006 01606D01\[^\n\]*\n" { set x [expr $x+1] } + 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 == 4] then { pass $testname } else { fail $testname } +} + +proc do_h8300s_multiple {} { + set testname "multiples.s: h8300s multiple tests" + set x 0 + + gas_start "multiples.s" "-al" + + # Check each instruction bit pattern to verify it got + # assembled correctly. + while 1 { + expect { + -re " +\[0-9\]+ 0000 01106D71\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0004 01206D72\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0008 01306D73\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 000c 01106DF0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0010 01206DF0\[^\n\]*\n" { set x [expr $x+1] } + -re " +\[0-9\]+ 0014 01306DF0\[^\n\]*\n" { set x [expr $x+1] } + 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 == 6] then { pass $testname } else { fail $testname } +} + proc do_h8300h_mov32bug {} { set testname "mov32bug.s: h8300h mov32bug test" set x 0 @@ -1254,7 +2089,7 @@ proc do_h8300h_mov32bug {} { while 1 { expect { - -re "00000002\[^\n\]*32\[^\n\]*_a.0x88ca6c00\[^\n\]*\n" + -re "00000002\[^\n\]*32\[^\n\]*_a.0x0*88ca6c00\[^\n\]*\n" { set x [expr $x+1] } timeout { perror "timeout\n; break } eof { break } @@ -1279,7 +2114,7 @@ if [istarget h8300*-*-*] then { do_h8300_bitops2 do_h8300_bitops3 do_h8300_bitops4 - do_h8300_branches + do_h8300_branch do_h8300_compare do_h8300_decimal do_h8300_incdec @@ -1298,7 +2133,7 @@ if [istarget h8300*-*-*] then { do_h8300h_bitops2 do_h8300h_bitops3 do_h8300h_bitops4 - do_h8300h_branches + do_h8300h_branch do_h8300h_compare do_h8300h_decimal do_h8300h_incdec @@ -1311,6 +2146,29 @@ if [istarget h8300*-*-*] then { do_h8300h_rotate_shift do_h8300h_extend + # 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 + do_h8300s_divmul + do_h8300s_misc + do_h8300s_movb + do_h8300s_movw + do_h8300s_movl + do_h8300_pushpop + do_h8300s_rotate_shift + do_h8300s_extend + do_h8300s_mac + do_h8300s_multiple + do_h8300h_mov32bug # Now some random tests diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/misch.s b/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/misch.s index 4127c86695e..f7ecb3de079 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/misch.s +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/h8300/misch.s @@ -2,7 +2,7 @@ .text h8300h_misc: eepmov.b -; eepmov.w + eepmov.w ldc.b #0,ccr ldc.b r0l,ccr ldc.w @er0,ccr diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/basic.exp b/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/basic.exp index 30d9010b16e..73c5027595c 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/basic.exp +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/basic.exp @@ -1503,9 +1503,9 @@ proc do_system {} { -re "^ +\[0-9\]+ 0054 04A41326\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0058 04A41306\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 005c 04A41040\[^\n]*\n" { set x [expr $x+1] } - -re "^ +\[0-9\]+ 0060 04A40040\[^\n]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0060 04A42040\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0064 04A41000\[^\n]*\n" { set x [expr $x+1] } - -re "^ +\[0-9\]+ 0068 04A40000\[^\n]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0068 04A42000\[^\n]*\n" { set x [expr $x+1] } -re "\[^\n\]*\n" { } timeout { perror "timeout\n"; break } eof { break } @@ -1537,22 +1537,22 @@ proc do_purge {} { expect { -re "^ +\[0-9\]+ 0000 04A41200\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0004 04A41220\[^\n]*\n" { set x [expr $x+1] } - -re "^ +\[0-9\]+ 0008 04A40200\[^\n]*\n" { set x [expr $x+1] } - -re "^ +\[0-9\]+ 000c 04A40220\[^\n]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0008 04A42200\[^\n]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 000c 04A42220\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0010 04A41240\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0014 04A41260\[^\n]*\n" { set x [expr $x+1] } - -re "^ +\[0-9\]+ 0018 04A40240\[^\n]*\n" { set x [expr $x+1] } - -re "^ +\[0-9\]+ 001c 04A40260\[^\n]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0018 04A42240\[^\n]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 001c 04A42260\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0020 04A41380\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0024 04A413A0\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0028 04A41280\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 002c 04A412A0\[^\n]*\n" { set x [expr $x+1] } - -re "^ +\[0-9\]+ 0030 04A40280\[^\n]*\n" { set x [expr $x+1] } - -re "^ +\[0-9\]+ 0034 04A402A0\[^\n]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0030 04A42280\[^\n]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0034 04A422A0\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 0038 04A412C0\[^\n]*\n" { set x [expr $x+1] } -re "^ +\[0-9\]+ 003c 04A412E0\[^\n]*\n" { set x [expr $x+1] } - -re "^ +\[0-9\]+ 0040 04A402C0\[^\n]*\n" { set x [expr $x+1] } - -re "^ +\[0-9\]+ 0044 04A402E0\[^\n]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0040 04A422C0\[^\n]*\n" { set x [expr $x+1] } + -re "^ +\[0-9\]+ 0044 04A422E0\[^\n]*\n" { set x [expr $x+1] } -re "\[^\n\]*\n" { } timeout { perror "timeout\n"; break } diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/purge.s b/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/purge.s index 6c0f41c9305..2319f90839e 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/purge.s +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/purge.s @@ -16,20 +16,20 @@ ; selectors to make sure they're handled correctly. pdtlb %r4(%sr0,%r5) pdtlb,m %r4(%sr0,%r5) - pitlb %r4(%sr0,%r5) - pitlb,m %r4(%sr0,%r5) + pitlb %r4(%sr4,%r5) + pitlb,m %r4(%sr4,%r5) pdtlbe %r4(%sr0,%r5) pdtlbe,m %r4(%sr0,%r5) - pitlbe %r4(%sr0,%r5) - pitlbe,m %r4(%sr0,%r5) + pitlbe %r4(%sr4,%r5) + pitlbe,m %r4(%sr4,%r5) pdc %r4(%sr0,%r5) pdc,m %r4(%sr0,%r5) fdc %r4(%sr0,%r5) fdc,m %r4(%sr0,%r5) - fic %r4(%sr0,%r5) - fic,m %r4(%sr0,%r5) + fic %r4(%sr4,%r5) + fic,m %r4(%sr4,%r5) fdce %r4(%sr0,%r5) fdce,m %r4(%sr0,%r5) - fice %r4(%sr0,%r5) - fice,m %r4(%sr0,%r5) + fice %r4(%sr4,%r5) + fice,m %r4(%sr4,%r5) diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/system.s b/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/system.s index d35e0016189..1b2e7bf1763 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/system.s +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/hppa/basic/system.s @@ -41,6 +41,6 @@ lci %r4(%sr0,%r5),%r6 idtlba %r4,(%sr0,%r5) - iitlba %r4,(%sr0,%r5) + iitlba %r4,(%sr4,%r5) idtlbp %r4,(%sr0,%r5) - iitlbp %r4,(%sr0,%r5) + iitlbp %r4,(%sr4,%r5) diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/m68k/all.exp b/gnu/usr.bin/binutils/gas/testsuite/gas/m68k/all.exp index cc6086dc71f..d48d3843411 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/m68k/all.exp +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/m68k/all.exp @@ -10,14 +10,7 @@ if [istarget m68*-*-*] then { gas_test_error "p2410.s" "" "out-of-range 'bras'" - if [expr [istarget m68*-*-hpux*] || [istarget m68*-*-sun*] \ - || [istarget m68*-*-*aout*] \ - || [istarget m68*-*-coff*] \ - || [istarget m68*-*-vxworks*] \ - ] then { - run_dump_test "schwab" - } - + run_dump_test pcrel run_dump_test operands run_dump_test cas run_dump_test bitfield diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/mips/mips.exp b/gnu/usr.bin/binutils/gas/testsuite/gas/mips/mips.exp index 8ac1b506676..061bd6a4787 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/mips/mips.exp +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/mips/mips.exp @@ -5,6 +5,7 @@ if [istarget mips*-*-*] then { set svr4pic [expr [istarget *-*-elf*] || [istarget *-*-irix5*] ] set empic [expr [istarget *-*-ecoff*] || [istarget *-*-ultrix*] || [istarget *-*-irix\[1-4\]*] ] set aout [expr [istarget *-*-bsd*] || [istarget *-*-netbsd*] || [istarget *-*-openbsd*] ] + set ilocks [expr [istarget *4300*-*-elf*] || [istarget *4100*-*-elf*]] run_dump_test "abs" run_dump_test "add" @@ -14,7 +15,7 @@ if [istarget mips*-*-*] then { run_dump_test "bgeu" run_dump_test "blt" run_dump_test "bltu" - run_dump_test "div" + if !$ilocks { run_dump_test "div" } else { run_dump_test "div-ilocks" } run_dump_test "jal" if $svr4pic { run_dump_test "jal-svr4pic" } if $svr4pic { run_dump_test "jal-xgot" } @@ -37,7 +38,7 @@ if [istarget mips*-*-*] then { if $svr4pic { run_dump_test "lif-xgot" } if $empic { run_dump_test "lif-empic" } run_dump_test "mips4" - run_dump_test "mul" + if !$ilocks { run_dump_test "mul" } else { run_dump_test "mul-ilocks" } run_dump_test "rol" if !$aout { run_dump_test "sb" } run_dump_test "trunc" diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/sparc/asi.s b/gnu/usr.bin/binutils/gas/testsuite/gas/sparc/asi.s index 6ade4100f54..c56fe9c24db 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/sparc/asi.s +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/sparc/asi.s @@ -16,8 +16,8 @@ lduwa [%g1]#ASI_SNF_L,%g2 lduwa [%g1]#ASI_AS_IF_USER_PRIMARY,%g2 lduwa [%g1]#ASI_AS_IF_USER_SECONDARY,%g2 - lduwa [%g1]#ASI_AS_IF_USER_PRIMARY_L,%g2 - lduwa [%g1]#ASI_AS_IF_USER_SECONDARY_L,%g2 + lduwa [%g1]#ASI_AS_IF_USER_PRIMARY_LITTLE,%g2 + lduwa [%g1]#ASI_AS_IF_USER_SECONDARY_LITTLE,%g2 lduwa [%g1]#ASI_PRIMARY,%g2 lduwa [%g1]#ASI_SECONDARY,%g2 lduwa [%g1]#ASI_PRIMARY_NOFAULT,%g2 diff --git a/gnu/usr.bin/binutils/gas/testsuite/gas/vax/quad.exp b/gnu/usr.bin/binutils/gas/testsuite/gas/vax/quad.exp index 46fc9ca52d4..34770c5b6cf 100644 --- a/gnu/usr.bin/binutils/gas/testsuite/gas/vax/quad.exp +++ b/gnu/usr.bin/binutils/gas/testsuite/gas/vax/quad.exp @@ -8,7 +8,7 @@ proc do_quad {} { expect { -re "^ +2\[ \t\]+0000+ 7D8F7856\[ \t\]+movq\[^\n\]*\n" { set x1 1 } -re "^ +2\[ \t\]+3412DDCC\[^\n\]*\n" { set x2 1 } - -re "^ +2\[ \t\]+BBAA50\[ \t\]*\r\n" { set x3 1 } + -re "^ +2\[ \t\]+BBAA5001\[ \t\]*\r\n" { set x3 1 } -re "\[^\n\]*\n" { } timeout { perror "timeout\n"; break } eof { break } |