Home | History | Annotate | Download | only in h8300
      1 # Copyright (C) 2012-2016 Free Software Foundation, Inc.
      2 
      3 # This program is free software; you can redistribute it and/or modify
      4 # it under the terms of the GNU General Public License as published by
      5 # the Free Software Foundation; either version 3 of the License, or
      6 # (at your option) any later version.
      7 #
      8 # This program is distributed in the hope that it will be useful,
      9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     11 # GNU General Public License for more details.
     12 #
     13 # You should have received a copy of the GNU General Public License
     14 # along with this program; if not, write to the Free Software
     15 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
     16 
     17 #
     18 # Some H8/300 tests
     19 #
     20 proc do_h8300_add_sub {} {
     21     set testname "addsub.s: h8300 add/sub tests"
     22     set x 0
     23 
     24     gas_start "addsub.s" "-al"
     25 
     26     # Check each instruction bit pattern to verify it got
     27     # assembled correctly.
     28     while 1 {
     29 	expect {
     30 	    -re " +\[0-9\]+ 0000 8910\[^\n\]*\n"   { set x [expr $x+1] }
     31 	    -re " +\[0-9\]+ 0002 0819\[^\n\]*\n"   { set x [expr $x+1] }
     32 	    -re " +\[0-9\]+ 0004 0912\[^\n\]*\n"   { set x [expr $x+1] }
     33 	    -re " +\[0-9\]+ 0006 0B04\[^\n\]*\n"   { set x [expr $x+1] }
     34 	    -re " +\[0-9\]+ 0008 0B85\[^\n\]*\n"   { set x [expr $x+1] }
     35 	    -re " +\[0-9\]+ 000a 0E89\[^\n\]*\n"   { set x [expr $x+1] }
     36 	    -re " +\[0-9\]+ 000c 9210\[^\n\]*\n"   { set x [expr $x+1] }
     37 	    -re " +\[0-9\]+ 000e 1889\[^\n\]*\n"   { set x [expr $x+1] }
     38 	    -re " +\[0-9\]+ 0010 1901\[^\n\]*\n"   { set x [expr $x+1] }
     39 	    -re " +\[0-9\]+ 0012 1B04\[^\n\]*\n"   { set x [expr $x+1] }
     40 	    -re " +\[0-9\]+ 0014 1B85\[^\n\]*\n"   { set x [expr $x+1] }
     41 	    -re " +\[0-9\]+ 0016 1E89\[^\n\]*\n"   { set x [expr $x+1] }
     42 	    -re " +\[0-9\]+ 0018 B210\[^\n\]*\n"   { set x [expr $x+1] }
     43 	    timeout 				{ perror "timeout\n; break }
     44 	    eof					{ break }
     45 	}
     46     }
     47 
     48     # This was intended to do any cleanup necessary.  It kinda looks like it
     49     # isn't needed, but just in case, please keep it in for now.
     50     gas_finish
     51 
     52     # Did we find what we were looking for?  If not, flunk it.
     53     if [expr $x == 13] then { pass $testname } else { fail $testname }
     54 }
     55 
     56 proc do_h8300_logical {} {
     57     set testname "logical.s: h8300 logical tests"
     58     set x 0
     59 
     60     gas_start "logical.s" "-al"
     61 
     62     # Check each instruction bit pattern to verify it got
     63     # assembled correctly.
     64     while 1 {
     65 	expect {
     66 	    -re " +\[0-9\]+ 0000 E910\[^\n\]*\n"   { set x [expr $x+1] }
     67 	    -re " +\[0-9\]+ 0002 1691\[^\n\]*\n"   { set x [expr $x+1] }
     68 	    -re " +\[0-9\]+ 0004 0610\[^\n\]*\n"   { set x [expr $x+1] }
     69 	    -re " +\[0-9\]+ 0006 C810\[^\n\]*\n"   { set x [expr $x+1] }
     70 	    -re " +\[0-9\]+ 0008 1498\[^\n\]*\n"   { set x [expr $x+1] }
     71 	    -re " +\[0-9\]+ 000a 0410\[^\n\]*\n"   { set x [expr $x+1] }
     72 	    -re " +\[0-9\]+ 000c D810\[^\n\]*\n"   { set x [expr $x+1] }
     73 	    -re " +\[0-9\]+ 000e 1589\[^\n\]*\n"   { set x [expr $x+1] }
     74 	    -re " +\[0-9\]+ 0010 0510\[^\n\]*\n"   { set x [expr $x+1] }
     75 	    -re " +\[0-9\]+ 0012 1788\[^\n\]*\n"   { set x [expr $x+1] }
     76 	    -re " +\[0-9\]+ 0014 1708\[^\n\]*\n"   { set x [expr $x+1] }
     77 	    timeout 				{ perror "timeout\n; break }
     78 	    eof					{ break }
     79 	}
     80     }
     81 
     82     # This was intended to do any cleanup necessary.  It kinda looks like it
     83     # isn't needed, but just in case, please keep it in for now.
     84     gas_finish
     85 
     86     # Did we find what we were looking for?  If not, flunk it.
     87     if [expr $x == 11] then { pass $testname } else { fail $testname }
     88 }
     89 
     90 proc do_h8300_cbranch {} {
     91     set testname "cbranch.s: h8300 conditional branch tests"
     92     set x 0
     93 
     94     gas_start "cbranch.s" "-al"
     95 
     96     # Check each instruction bit pattern to verify it got
     97     # assembled correctly.
     98     while 1 {
     99 	expect {
    100 	    -re " +\[0-9\]+ 0000 4000\[^\n\]*\n"   { set x [expr $x+1] }
    101 	    -re " +\[0-9\]+ 0002 4000\[^\n\]*\n"   { set x [expr $x+1] }
    102 	    -re " +\[0-9\]+ 0004 4100\[^\n\]*\n"   { set x [expr $x+1] }
    103 	    -re " +\[0-9\]+ 0006 4100\[^\n\]*\n"   { set x [expr $x+1] }
    104 	    -re " +\[0-9\]+ 0008 4200\[^\n\]*\n"   { set x [expr $x+1] }
    105 	    -re " +\[0-9\]+ 000a 4300\[^\n\]*\n"   { set x [expr $x+1] }
    106 	    -re " +\[0-9\]+ 000c 4400\[^\n\]*\n"   { set x [expr $x+1] }
    107 	    -re " +\[0-9\]+ 000e 4400\[^\n\]*\n"   { set x [expr $x+1] }
    108 	    -re " +\[0-9\]+ 0010 4500\[^\n\]*\n"   { set x [expr $x+1] }
    109 	    -re " +\[0-9\]+ 0012 4500\[^\n\]*\n"   { set x [expr $x+1] }
    110 	    -re " +\[0-9\]+ 0014 4600\[^\n\]*\n"   { set x [expr $x+1] }
    111 	    -re " +\[0-9\]+ 0016 4700\[^\n\]*\n"   { set x [expr $x+1] }
    112 	    -re " +\[0-9\]+ 0018 4800\[^\n\]*\n"   { set x [expr $x+1] }
    113 	    -re " +\[0-9\]+ 001a 4900\[^\n\]*\n"   { set x [expr $x+1] }
    114 	    -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n"   { set x [expr $x+1] }
    115 	    -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n"   { set x [expr $x+1] }
    116 	    -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n"   { set x [expr $x+1] }
    117 	    -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n"   { set x [expr $x+1] }
    118 	    -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n"   { set x [expr $x+1] }
    119 	    -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n"   { set x [expr $x+1] }
    120 	    timeout 				{ perror "timeout\n; break }
    121 	    eof					{ break }
    122 	}
    123     }
    124 
    125     # This was intended to do any cleanup necessary.  It kinda looks like it
    126     # isn't needed, but just in case, please keep it in for now.
    127     gas_finish
    128 
    129     # Did we find what we were looking for?  If not, flunk it.
    130     if [expr $x == 20] then { pass $testname } else { fail $testname }
    131 }
    132 
    133 proc do_h8300_bitops1 {} {
    134     set testname "bitops1.s: h8300 bitops tests #1"
    135     set x 0
    136 
    137     gas_start "bitops1.s" "-al"
    138 
    139     # Check each instruction bit pattern to verify it got
    140     # assembled correctly.
    141     while 1 {
    142 	expect {
    143 	    -re " +\[0-9\]+ 0000 7608\[^\n\]*\n"   { set x [expr $x+1] }
    144 	    -re " +\[0-9\]+ 0002 7C007600\[^\n\]*\n"   { set x [expr $x+1] }
    145 	    -re " +\[0-9\]+ 0006 7E407600\[^\n\]*\n"   { set x [expr $x+1] }
    146 	    -re " +\[0-9\]+ 000a 7208\[^\n\]*\n"   { set x [expr $x+1] }
    147 	    -re " +\[0-9\]+ 000c 7D007200\[^\n\]*\n"   { set x [expr $x+1] }
    148 	    -re " +\[0-9\]+ 0010 7F407200\[^\n\]*\n"   { set x [expr $x+1] }
    149 	    -re " +\[0-9\]+ 0014 6298\[^\n\]*\n"   { set x [expr $x+1] }
    150 	    -re " +\[0-9\]+ 0016 7D006290\[^\n\]*\n"   { set x [expr $x+1] }
    151 	    -re " +\[0-9\]+ 001a 7F406290\[^\n\]*\n"   { set x [expr $x+1] }
    152 	    -re " +\[0-9\]+ 001e 7688\[^\n\]*\n"   { set x [expr $x+1] }
    153 	    -re " +\[0-9\]+ 0020 7C007680\[^\n\]*\n"   { set x [expr $x+1] }
    154 	    -re " +\[0-9\]+ 0024 7E407680\[^\n\]*\n"   { set x [expr $x+1] }
    155 	    -re " +\[0-9\]+ 0028 7788\[^\n\]*\n"   { set x [expr $x+1] }
    156 	    -re " +\[0-9\]+ 002a 7C007780\[^\n\]*\n"   { set x [expr $x+1] }
    157 	    -re " +\[0-9\]+ 002e 7E407780\[^\n\]*\n"   { set x [expr $x+1] }
    158 	    timeout 				{ perror "timeout\n; break }
    159 	    eof					{ break }
    160 	}
    161     }
    162 
    163     # This was intended to do any cleanup necessary.  It kinda looks like it
    164     # isn't needed, but just in case, please keep it in for now.
    165     gas_finish
    166 
    167     # Did we find what we were looking for?  If not, flunk it.
    168     if [expr $x == 15] then { pass $testname } else { fail $testname }
    169 }
    170 
    171 proc do_h8300_bitops2 {} {
    172     set testname "bitops2.s: h8300 bitops tests #2"
    173     set x 0
    174 
    175     gas_start "bitops2.s" "-al"
    176 
    177     # Check each instruction bit pattern to verify it got
    178     # assembled correctly.
    179     while 1 {
    180 	expect {
    181 	    -re " +\[0-9\]+ 0000 7488\[^\n\]*\n"   { set x [expr $x+1] }
    182 	    -re " +\[0-9\]+ 0002 7C007480\[^\n\]*\n"   { set x [expr $x+1] }
    183 	    -re " +\[0-9\]+ 0006 7E407480\[^\n\]*\n"   { set x [expr $x+1] }
    184 	    -re " +\[0-9\]+ 000a 6788\[^\n\]*\n"   { set x [expr $x+1] }
    185 	    -re " +\[0-9\]+ 000c 7D006780\[^\n\]*\n"   { set x [expr $x+1] }
    186 	    -re " +\[0-9\]+ 0010 7F406780\[^\n\]*\n"   { set x [expr $x+1] }
    187 	    -re " +\[0-9\]+ 0014 7588\[^\n\]*\n"   { set x [expr $x+1] }
    188 	    -re " +\[0-9\]+ 0016 7C007580\[^\n\]*\n"   { set x [expr $x+1] }
    189 	    -re " +\[0-9\]+ 001a 7E407580\[^\n\]*\n"   { set x [expr $x+1] }
    190 	    -re " +\[0-9\]+ 001e 7708\[^\n\]*\n"   { set x [expr $x+1] }
    191 	    -re " +\[0-9\]+ 0020 7C007700\[^\n\]*\n"   { set x [expr $x+1] }
    192 	    -re " +\[0-9\]+ 0024 7E407700\[^\n\]*\n"   { set x [expr $x+1] }
    193 	    timeout 				{ perror "timeout\n; break }
    194 	    eof					{ break }
    195 	}
    196     }
    197 
    198     # This was intended to do any cleanup necessary.  It kinda looks like it
    199     # isn't needed, but just in case, please keep it in for now.
    200     gas_finish
    201 
    202     # Did we find what we were looking for?  If not, flunk it.
    203     if [expr $x == 12] then { pass $testname } else { fail $testname }
    204 }
    205 
    206 proc do_h8300_bitops3 {} {
    207     set testname "bitops3.s: h8300 bitops tests #3"
    208     set x 0
    209 
    210     gas_start "bitops3.s" "-al"
    211 
    212     # Check each instruction bit pattern to verify it got
    213     # assembled correctly.
    214     while 1 {
    215 	expect {
    216 	    -re " +\[0-9\]+ 0000 7108\[^\n\]*\n"   { set x [expr $x+1] }
    217 	    -re " +\[0-9\]+ 0002 7D007100\[^\n\]*\n"   { set x [expr $x+1] }
    218 	    -re " +\[0-9\]+ 0006 7F407100\[^\n\]*\n"   { set x [expr $x+1] }
    219 	    -re " +\[0-9\]+ 000a 6198\[^\n\]*\n"   { set x [expr $x+1] }
    220 	    -re " +\[0-9\]+ 000c 7D006190\[^\n\]*\n"   { set x [expr $x+1] }
    221 	    -re " +\[0-9\]+ 0010 7F406190\[^\n\]*\n"   { set x [expr $x+1] }
    222 	    -re " +\[0-9\]+ 0014 7008\[^\n\]*\n"   { set x [expr $x+1] }
    223 	    -re " +\[0-9\]+ 0016 7D007000\[^\n\]*\n"   { set x [expr $x+1] }
    224 	    -re " +\[0-9\]+ 001a 7F407000\[^\n\]*\n"   { set x [expr $x+1] }
    225 	    -re " +\[0-9\]+ 001e 6098\[^\n\]*\n"   { set x [expr $x+1] }
    226 	    -re " +\[0-9\]+ 0020 7D006090\[^\n\]*\n"   { set x [expr $x+1] }
    227 	    -re " +\[0-9\]+ 0024 7F406090\[^\n\]*\n"   { set x [expr $x+1] }
    228 	    timeout 				{ perror "timeout\n; break }
    229 	    eof					{ break }
    230 	}
    231     }
    232 
    233     # This was intended to do any cleanup necessary.  It kinda looks like it
    234     # isn't needed, but just in case, please keep it in for now.
    235     gas_finish
    236 
    237     # Did we find what we were looking for?  If not, flunk it.
    238     if [expr $x == 12] then { pass $testname } else { fail $testname }
    239 }
    240 
    241 proc do_h8300_bitops4 {} {
    242     set testname "bitops4.s: h8300 bitops tests #4"
    243     set x 0
    244 
    245     gas_start "bitops4.s" "-al"
    246 
    247     # Check each instruction bit pattern to verify it got
    248     # assembled correctly.
    249     while 1 {
    250 	expect {
    251 	    -re " +\[0-9\]+ 0000 7408\[^\n\]*\n"   { set x [expr $x+1] }
    252 	    -re " +\[0-9\]+ 0002 7C007400\[^\n\]*\n"   { set x [expr $x+1] }
    253 	    -re " +\[0-9\]+ 0006 7E407400\[^\n\]*\n"   { set x [expr $x+1] }
    254 	    -re " +\[0-9\]+ 000a 6708\[^\n\]*\n"   { set x [expr $x+1] }
    255 	    -re " +\[0-9\]+ 000c 7D006700\[^\n\]*\n"   { set x [expr $x+1] }
    256 	    -re " +\[0-9\]+ 0010 7F406700\[^\n\]*\n"   { set x [expr $x+1] }
    257 	    -re " +\[0-9\]+ 0014 7308\[^\n\]*\n"   { set x [expr $x+1] }
    258 	    -re " +\[0-9\]+ 0016 7C007300\[^\n\]*\n"   { set x [expr $x+1] }
    259 	    -re " +\[0-9\]+ 001a 7E407300\[^\n\]*\n"   { set x [expr $x+1] }
    260 	    -re " +\[0-9\]+ 001e 6398\[^\n\]*\n"   { set x [expr $x+1] }
    261 	    -re " +\[0-9\]+ 0020 7C006390\[^\n\]*\n"   { set x [expr $x+1] }
    262 	    -re " +\[0-9\]+ 0024 7E406390\[^\n\]*\n"   { set x [expr $x+1] }
    263 	    -re " +\[0-9\]+ 0028 7508\[^\n\]*\n"   { set x [expr $x+1] }
    264 	    -re " +\[0-9\]+ 002a 7C007500\[^\n\]*\n"   { set x [expr $x+1] }
    265 	    -re " +\[0-9\]+ 002e 7E407500\[^\n\]*\n"   { set x [expr $x+1] }
    266 	    timeout 				{ perror "timeout\n; break }
    267 	    eof					{ break }
    268 	}
    269     }
    270 
    271     # This was intended to do any cleanup necessary.  It kinda looks like it
    272     # isn't needed, but just in case, please keep it in for now.
    273     gas_finish
    274 
    275     # Did we find what we were looking for?  If not, flunk it.
    276     if [expr $x == 15] then { pass $testname } else { fail $testname }
    277 }
    278 
    279 proc do_h8300_branch {} {
    280     set testname "branch.s: h8300 branch tests"
    281     set x 0
    282 
    283     gas_start "branch.s" "-al"
    284 
    285     # Check each instruction bit pattern to verify it got
    286     # assembled correctly.
    287     while 1 {
    288 	expect {
    289 	    -re " +\[0-9\]+ 0000 5500\[^\n\]*\n"   { set x [expr $x+1] }
    290 	    -re " +\[0-9\]+ 0002 5A000000\[^\n\]*\n"   { set x [expr $x+1] }
    291 	    -re " +\[0-9\]+ 0006 5900\[^\n\]*\n"   { set x [expr $x+1] }
    292 	    -re " +\[0-9\]+ 0008 5B00\[^\n\]*\n"   { set x [expr $x+1] }
    293 	    -re " +\[0-9\]+ 000a 5E000000\[^\n\]*\n"   { set x [expr $x+1] }
    294 	    -re " +\[0-9\]+ 000e 5D00\[^\n\]*\n"   { set x [expr $x+1] }
    295 	    -re " +\[0-9\]+ 0010 5F00\[^\n\]*\n"   { set x [expr $x+1] }
    296 	    timeout 				{ perror "timeout\n; break }
    297 	    eof					{ break }
    298 	}
    299     }
    300 
    301     # This was intended to do any cleanup necessary.  It kinda looks like it
    302     # isn't needed, but just in case, please keep it in for now.
    303     gas_finish
    304 
    305     # Did we find what we were looking for?  If not, flunk it.
    306     if [expr $x == 7] then { pass $testname } else { fail $testname }
    307 }
    308 
    309 proc do_h8300_compare {} {
    310     set testname "compare.s: h8300 compare tests"
    311     set x 0
    312 
    313     gas_start "compare.s" "-al"
    314 
    315     # Check each instruction bit pattern to verify it got
    316     # assembled correctly.
    317     while 1 {
    318 	expect {
    319 	    -re " +\[0-9\]+ 0000 A800\[^\n\]*\n"   { set x [expr $x+1] }
    320 	    -re " +\[0-9\]+ 0002 1C08\[^\n\]*\n"   { set x [expr $x+1] }
    321 	    -re " +\[0-9\]+ 0004 1D01\[^\n\]*\n"   { set x [expr $x+1] }
    322 	    timeout 				{ perror "timeout\n; break }
    323 	    eof					{ break }
    324 	}
    325     }
    326 
    327     # This was intended to do any cleanup necessary.  It kinda looks like it
    328     # isn't needed, but just in case, please keep it in for now.
    329     gas_finish
    330 
    331     # Did we find what we were looking for?  If not, flunk it.
    332     if [expr $x == 3] then { pass $testname } else { fail $testname }
    333 }
    334 
    335 proc do_h8300_decimal {} {
    336     set testname "decimal.s: h8300 decimal tests"
    337     set x 0
    338 
    339     gas_start "decimal.s" "-al"
    340 
    341     # Check each instruction bit pattern to verify it got
    342     # assembled correctly.
    343     while 1 {
    344 	expect {
    345 	    -re " +\[0-9\]+ 0000 0F08\[^\n\]*\n"   { set x [expr $x+1] }
    346 	    -re " +\[0-9\]+ 0002 1F08\[^\n\]*\n"   { set x [expr $x+1] }
    347 	    eof					{ break }
    348 	}
    349     }
    350 
    351     # This was intended to do any cleanup necessary.  It kinda looks like it
    352     # isn't needed, but just in case, please keep it in for now.
    353     gas_finish
    354 
    355     # Did we find what we were looking for?  If not, flunk it.
    356     if [expr $x == 2] then { pass $testname } else { fail $testname }
    357 }
    358 
    359 proc do_h8300_incdec {} {
    360     set testname "incdec.s: h8300 incdec tests"
    361     set x 0
    362 
    363     gas_start "incdec.s" "-al"
    364 
    365     # Check each instruction bit pattern to verify it got
    366     # assembled correctly.
    367     while 1 {
    368 	expect {
    369 	    -re " +\[0-9\]+ 0000 1A08\[^\n\]*\n"   { set x [expr $x+1] }
    370 	    -re " +\[0-9\]+ 0002 0A08\[^\n\]*\n"   { set x [expr $x+1] }
    371 	    eof					{ break }
    372 	}
    373     }
    374 
    375     # This was intended to do any cleanup necessary.  It kinda looks like it
    376     # isn't needed, but just in case, please keep it in for now.
    377     gas_finish
    378 
    379     # Did we find what we were looking for?  If not, flunk it.
    380     if [expr $x == 2] then { pass $testname } else { fail $testname }
    381 }
    382 
    383 proc do_h8300_divmul {} {
    384     set testname "divmul.s: h8300 divmul tests"
    385     set x 0
    386 
    387     gas_start "divmul.s" "-al"
    388 
    389     # Check each instruction bit pattern to verify it got
    390     # assembled correctly.
    391     while 1 {
    392 	expect {
    393 	    -re " +\[0-9\]+ 0000 5181\[^\n\]*\n"   { set x [expr $x+1] }
    394 	    -re " +\[0-9\]+ 0002 5081\[^\n\]*\n"   { set x [expr $x+1] }
    395 	    eof					{ break }
    396 	}
    397     }
    398 
    399     # This was intended to do any cleanup necessary.  It kinda looks like it
    400     # isn't needed, but just in case, please keep it in for now.
    401     gas_finish
    402 
    403     # Did we find what we were looking for?  If not, flunk it.
    404     if [expr $x == 2] then { pass $testname } else { fail $testname }
    405 }
    406 
    407 proc do_h8300_misc {} {
    408     set testname "misc.s: h8300 misc tests"
    409     set x 0
    410 
    411     gas_start "misc.s" "-al"
    412 
    413     # Check each instruction bit pattern to verify it got
    414     # assembled correctly.
    415     while 1 {
    416 	expect {
    417 	    -re " +\[0-9\]+ 0000 7B5C598F\[^\n\]*\n"   { set x [expr $x+1] }
    418 	    -re " +\[0-9\]+ 0004 0700\[^\n\]*\n"   { set x [expr $x+1] }
    419 	    -re " +\[0-9\]+ 0006 0308\[^\n\]*\n"   { set x [expr $x+1] }
    420 	    -re " +\[0-9\]+ 0008 0000\[^\n\]*\n"   { set x [expr $x+1] }
    421 	    -re " +\[0-9\]+ 000a 5670\[^\n\]*\n"   { set x [expr $x+1] }
    422 	    -re " +\[0-9\]+ 000c 5470\[^\n\]*\n"   { set x [expr $x+1] }
    423 	    -re " +\[0-9\]+ 000e 0180\[^\n\]*\n"   { set x [expr $x+1] }
    424 	    -re " +\[0-9\]+ 0010 0208\[^\n\]*\n"   { set x [expr $x+1] }
    425 	    eof					{ break }
    426 	}
    427     }
    428 
    429     # This was intended to do any cleanup necessary.  It kinda looks like it
    430     # isn't needed, but just in case, please keep it in for now.
    431     gas_finish
    432 
    433     # Did we find what we were looking for?  If not, flunk it.
    434     if [expr $x == 8] then { pass $testname } else { fail $testname }
    435 
    436     setup_xfail "h8300*-*-*"
    437     fail "h8300 movfpe/movtpe tests"
    438 }
    439 
    440 proc do_h8300_movb {} {
    441     set testname "movb.s: h8300 movb tests"
    442     set x 0
    443 
    444     gas_start "movb.s" "-al"
    445 
    446     # Check each instruction bit pattern to verify it got
    447     # assembled correctly.
    448     while 1 {
    449 	expect {
    450 	    -re " +\[0-9\]+ 0000 0C89\[^\n\]*\n"   { set x [expr $x+1] }
    451 	    -re " +\[0-9\]+ 0002 F810\[^\n\]*\n"   { set x [expr $x+1] }
    452 	    -re " +\[0-9\]+ 0004 6818\[^\n\]*\n"   { set x [expr $x+1] }
    453 	    -re " +\[0-9\]+ 0006 6E180010\[^\n\]*\n"   { set x [expr $x+1] }
    454 	    -re " +\[0-9\]+ 000a 6C18\[^\n\]*\n"   { set x [expr $x+1] }
    455 	    -re " +\[0-9\]+ 000c 2810\[^\n\]*\n"   { set x [expr $x+1] }
    456 	    -re " +\[0-9\]+ 000e 6A080000\[^\n\]*\n"   { set x [expr $x+1] }
    457 	    -re " +\[0-9\]+ 0012 6898\[^\n\]*\n"   { set x [expr $x+1] }
    458 	    -re " +\[0-9\]+ 0014 6E980010\[^\n\]*\n"   { set x [expr $x+1] }
    459 	    -re " +\[0-9\]+ 0018 6C98\[^\n\]*\n"   { set x [expr $x+1] }
    460 	    -re " +\[0-9\]+ 001a 3810\[^\n\]*\n"   { set x [expr $x+1] }
    461 	    -re " +\[0-9\]+ 001c 6A880000\[^\n\]*\n"   { set x [expr $x+1] }
    462 	    eof					{ break }
    463 	}
    464     }
    465 
    466     # This was intended to do any cleanup necessary.  It kinda looks like it
    467     # isn't needed, but just in case, please keep it in for now.
    468     gas_finish
    469 
    470     # Did we find what we were looking for?  If not, flunk it.
    471     if [expr $x == 12] then { pass $testname } else { fail $testname }
    472 }
    473 
    474 proc do_h8300_movw {} {
    475     set testname "movw.s: h8300 movw tests"
    476     set x 0
    477 
    478     gas_start "movw.s" "-al"
    479 
    480     # Check each instruction bit pattern to verify it got
    481     # assembled correctly.
    482     while 1 {
    483 	expect {
    484 	    -re " +\[0-9\]+ 0000 0D01\[^\n\]*\n"   { set x [expr $x+1] }
    485 	    -re " +\[0-9\]+ 0002 79000010\[^\n\]*\n"   { set x [expr $x+1] }
    486 	    -re " +\[0-9\]+ 0006 6910\[^\n\]*\n"   { set x [expr $x+1] }
    487 	    -re " +\[0-9\]+ 0008 6F100010\[^\n\]*\n"   { set x [expr $x+1] }
    488 	    -re " +\[0-9\]+ 000c 6D10\[^\n\]*\n"   { set x [expr $x+1] }
    489 	    -re " +\[0-9\]+ 000e 6B000000\[^\n\]*\n"   { set x [expr $x+1] }
    490 	    -re " +\[0-9\]+ 0012 6990\[^\n\]*\n"   { set x [expr $x+1] }
    491 	    -re " +\[0-9\]+ 0014 6F900010\[^\n\]*\n"   { set x [expr $x+1] }
    492 	    -re " +\[0-9\]+ 0018 6D90\[^\n\]*\n"   { set x [expr $x+1] }
    493 	    -re " +\[0-9\]+ 001a 6B800000\[^\n\]*\n"   { set x [expr $x+1] }
    494 	    eof					{ break }
    495 	}
    496     }
    497 
    498     # This was intended to do any cleanup necessary.  It kinda looks like it
    499     # isn't needed, but just in case, please keep it in for now.
    500     gas_finish
    501 
    502     # Did we find what we were looking for?  If not, flunk it.
    503     if [expr $x == 10] then { pass $testname } else { fail $testname }
    504 }
    505 
    506 proc do_h8300_pushpop {} {
    507     set testname "pushpop.s: h8300 pushpop tests"
    508     set x 0
    509 
    510     gas_start "pushpop.s" "-al"
    511 
    512     # Check each instruction bit pattern to verify it got
    513     # assembled correctly.
    514     while 1 {
    515 	expect {
    516 	    -re " +\[0-9\]+ 0000 6D70\[^\n\]*\n"   { set x [expr $x+1] }
    517 	    -re " +\[0-9\]+ 0002 6DF0\[^\n\]*\n"   { set x [expr $x+1] }
    518 	    eof					{ break }
    519 	}
    520     }
    521 
    522     # This was intended to do any cleanup necessary.  It kinda looks like it
    523     # isn't needed, but just in case, please keep it in for now.
    524     gas_finish
    525 
    526     # Did we find what we were looking for?  If not, flunk it.
    527     if [expr $x == 2] then { pass $testname } else { fail $testname }
    528 }
    529 
    530 proc do_h8300_rotate_shift {} {
    531     set testname "rotsh.s: h8300 rotate and shift tests"
    532     set x 0
    533 
    534     gas_start "rotsh.s" "-al"
    535 
    536     # Check each instruction bit pattern to verify it got
    537     # assembled correctly.
    538     while 1 {
    539 	expect {
    540 	    -re " +\[0-9\]+ 0000 1288\[^\n\]*\n"   { set x [expr $x+1] }
    541 	    -re " +\[0-9\]+ 0002 1388\[^\n\]*\n"   { set x [expr $x+1] }
    542 	    -re " +\[0-9\]+ 0004 1208\[^\n\]*\n"   { set x [expr $x+1] }
    543 	    -re " +\[0-9\]+ 0006 1308\[^\n\]*\n"   { set x [expr $x+1] }
    544 	    -re " +\[0-9\]+ 0008 1088\[^\n\]*\n"   { set x [expr $x+1] }
    545 	    -re " +\[0-9\]+ 000a 1188\[^\n\]*\n"   { set x [expr $x+1] }
    546 	    -re " +\[0-9\]+ 000c 1008\[^\n\]*\n"   { set x [expr $x+1] }
    547 	    -re " +\[0-9\]+ 000e 1108\[^\n\]*\n"   { set x [expr $x+1] }
    548 	    eof					{ break }
    549 	}
    550     }
    551 
    552     # This was intended to do any cleanup necessary.  It kinda looks like it
    553     # isn't needed, but just in case, please keep it in for now.
    554     gas_finish
    555 
    556     # Did we find what we were looking for?  If not, flunk it.
    557     if [expr $x == 8] then { pass $testname } else { fail $testname }
    558 }
    559 
    560 proc do_h8300h_add_sub {} {
    561     set testname "addsubh.s: h8300h add/sub tests"
    562     set x 0
    563 
    564     gas_start "addsubh.s" "-al"
    565 
    566     # Check each instruction bit pattern to verify it got
    567     # assembled correctly.
    568     while 1 {
    569 	expect {
    570 	    -re " +\[0-9\]+ 0000 8910\[^\n\]*\n"   { set x [expr $x+1] }
    571 	    -re " +\[0-9\]+ 0002 0819\[^\n\]*\n"   { set x [expr $x+1] }
    572 	    -re " +\[0-9\]+ 0004 79110020\[^\n\]*\n"   { set x [expr $x+1] }
    573 	    -re " +\[0-9\]+ 0008 0912\[^\n\]*\n"   { set x [expr $x+1] }
    574 	    -re " +\[0-9\]+ 000a 7A110000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
    575 	    -re " +\[0-9\]+ 0010 0A92\[^\n\]*\n"   { set x [expr $x+1] }
    576 	    -re " +\[0-9\]+ 0012 0B04\[^\n\]*\n"   { set x [expr $x+1] }
    577 	    -re " +\[0-9\]+ 0014 0B85\[^\n\]*\n"   { set x [expr $x+1] }
    578 	    -re " +\[0-9\]+ 0016 0B96\[^\n\]*\n"   { set x [expr $x+1] }
    579 	    -re " +\[0-9\]+ 0018 0E89\[^\n\]*\n"   { set x [expr $x+1] }
    580 	    -re " +\[0-9\]+ 001a 9210\[^\n\]*\n"   { set x [expr $x+1] }
    581 	    -re " +\[0-9\]+ 001c 1889\[^\n\]*\n"   { set x [expr $x+1] }
    582 	    -re " +\[0-9\]+ 001e 79310010\[^\n\]*\n"   { set x [expr $x+1] }
    583 	    -re " +\[0-9\]+ 0022 1901\[^\n\]*\n"   { set x [expr $x+1] }
    584 	    -re " +\[0-9\]+ 0024 7A310000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
    585 	    -re " +\[0-9\]+ 002a 1A92\[^\n\]*\n"   { set x [expr $x+1] }
    586 	    -re " +\[0-9\]+ 002c 1B04\[^\n\]*\n"   { set x [expr $x+1] }
    587 	    -re " +\[0-9\]+ 002e 1B85\[^\n\]*\n"   { set x [expr $x+1] }
    588 	    -re " +\[0-9\]+ 0030 1B96\[^\n\]*\n"   { set x [expr $x+1] }
    589 	    -re " +\[0-9\]+ 0032 1E89\[^\n\]*\n"   { set x [expr $x+1] }
    590 	    -re " +\[0-9\]+ 0034 B210\[^\n\]*\n"   { set x [expr $x+1] }
    591 	    timeout 				{ perror "timeout\n; break }
    592 	    eof					{ break }
    593 	}
    594     }
    595 
    596     # This was intended to do any cleanup necessary.  It kinda looks like it
    597     # isn't needed, but just in case, please keep it in for now.
    598     gas_finish
    599 
    600     # Did we find what we were looking for?  If not, flunk it.
    601     if [expr $x == 21] then { pass $testname } else { fail $testname }
    602 }
    603 
    604 proc do_h8300h_logical {} {
    605     set testname "logicalh.s: h8300h logical tests"
    606     set x 0
    607 
    608     gas_start "logicalh.s" "-al"
    609 
    610     # Check each instruction bit pattern to verify it got
    611     # assembled correctly.
    612     while 1 {
    613 	expect {
    614 	    -re " +\[0-9\]+ 0000 E910\[^\n\]*\n"   { set x [expr $x+1] }
    615 	    -re " +\[0-9\]+ 0002 1691\[^\n\]*\n"   { set x [expr $x+1] }
    616 	    -re " +\[0-9\]+ 0004 79610020\[^\n\]*\n"   { set x [expr $x+1] }
    617 	    -re " +\[0-9\]+ 0008 6611\[^\n\]*\n"   { set x [expr $x+1] }
    618 	    -re " +\[0-9\]+ 000a 7A610000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
    619 	    -re " +\[0-9\]+ 0010 01F06611\[^\n\]*\n"   { set x [expr $x+1] }
    620 	    -re " +\[0-9\]+ 0014 0610\[^\n\]*\n"   { set x [expr $x+1] }
    621 	    -re " +\[0-9\]+ 0016 C810\[^\n\]*\n"   { set x [expr $x+1] }
    622 	    -re " +\[0-9\]+ 0018 1498\[^\n\]*\n"   { set x [expr $x+1] }
    623 	    -re " +\[0-9\]+ 001a 79410020\[^\n\]*\n"   { set x [expr $x+1] }
    624 	    -re " +\[0-9\]+ 001e 6411\[^\n\]*\n"   { set x [expr $x+1] }
    625 	    -re " +\[0-9\]+ 0020 7A410000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
    626 	    -re " +\[0-9\]+ 0026 01F06411\[^\n\]*\n"   { set x [expr $x+1] }
    627 	    -re " +\[0-9\]+ 002a 0410\[^\n\]*\n"   { set x [expr $x+1] }
    628 	    -re " +\[0-9\]+ 002c D810\[^\n\]*\n"   { set x [expr $x+1] }
    629 	    -re " +\[0-9\]+ 002e 1589\[^\n\]*\n"   { set x [expr $x+1] }
    630 	    -re " +\[0-9\]+ 0030 79510020\[^\n\]*\n"   { set x [expr $x+1] }
    631 	    -re " +\[0-9\]+ 0034 6511\[^\n\]*\n"   { set x [expr $x+1] }
    632 	    -re " +\[0-9\]+ 0036 7A510000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
    633 	    -re " +\[0-9\]+ 003c 01F06511\[^\n\]*\n"   { set x [expr $x+1] }
    634 	    -re " +\[0-9\]+ 0040 0510\[^\n\]*\n"   { set x [expr $x+1] }
    635 	    -re " +\[0-9\]+ 0042 1788\[^\n\]*\n"   { set x [expr $x+1] }
    636 	    -re " +\[0-9\]+ 0044 1790\[^\n\]*\n"   { set x [expr $x+1] }
    637 	    -re " +\[0-9\]+ 0046 17B0\[^\n\]*\n"   { set x [expr $x+1] }
    638 	    -re " +\[0-9\]+ 0048 1708\[^\n\]*\n"   { set x [expr $x+1] }
    639 	    -re " +\[0-9\]+ 004a 1710\[^\n\]*\n"   { set x [expr $x+1] }
    640 	    -re " +\[0-9\]+ 004c 1730\[^\n\]*\n"   { set x [expr $x+1] }
    641 	    timeout 				{ perror "timeout\n; break }
    642 	    eof					{ break }
    643 	}
    644     }
    645 
    646     # This was intended to do any cleanup necessary.  It kinda looks like it
    647     # isn't needed, but just in case, please keep it in for now.
    648     gas_finish
    649 
    650     # Did we find what we were looking for?  If not, flunk it.
    651     if [expr $x == 27] then { pass $testname } else { fail $testname }
    652 }
    653 
    654 proc do_h8300h_cbranch {} {
    655     set testname "cbranchh.s: h8300h conditional branch tests"
    656     set x 0
    657 
    658     gas_start "cbranchh.s" "-al"
    659 
    660     # Check each instruction bit pattern to verify it got
    661     # assembled correctly.
    662     while 1 {
    663 	expect {
    664 	    -re " +\[0-9\]+ 0000 4000\[^\n\]*\n"   { set x [expr $x+1] }
    665 	    -re " +\[0-9\]+ 0002 4000\[^\n\]*\n"   { set x [expr $x+1] }
    666 	    -re " +\[0-9\]+ 0004 4100\[^\n\]*\n"   { set x [expr $x+1] }
    667 	    -re " +\[0-9\]+ 0006 4100\[^\n\]*\n"   { set x [expr $x+1] }
    668 	    -re " +\[0-9\]+ 0008 4200\[^\n\]*\n"   { set x [expr $x+1] }
    669 	    -re " +\[0-9\]+ 000a 4300\[^\n\]*\n"   { set x [expr $x+1] }
    670 	    -re " +\[0-9\]+ 000c 4400\[^\n\]*\n"   { set x [expr $x+1] }
    671 	    -re " +\[0-9\]+ 000e 4400\[^\n\]*\n"   { set x [expr $x+1] }
    672 	    -re " +\[0-9\]+ 0010 4500\[^\n\]*\n"   { set x [expr $x+1] }
    673 	    -re " +\[0-9\]+ 0012 4500\[^\n\]*\n"   { set x [expr $x+1] }
    674 	    -re " +\[0-9\]+ 0014 4600\[^\n\]*\n"   { set x [expr $x+1] }
    675 	    -re " +\[0-9\]+ 0016 4700\[^\n\]*\n"   { set x [expr $x+1] }
    676 	    -re " +\[0-9\]+ 0018 4800\[^\n\]*\n"   { set x [expr $x+1] }
    677 	    -re " +\[0-9\]+ 001a 4900\[^\n\]*\n"   { set x [expr $x+1] }
    678 	    -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n"   { set x [expr $x+1] }
    679 	    -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n"   { set x [expr $x+1] }
    680 	    -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n"   { set x [expr $x+1] }
    681 	    -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n"   { set x [expr $x+1] }
    682 	    -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n"   { set x [expr $x+1] }
    683 	    -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n"   { set x [expr $x+1] }
    684 	    -re " +\[0-9\]+ 0028 58000000\[^\n\]*\n"   { set x [expr $x+1] }
    685 	    -re " +\[0-9\]+ 002c 58000000\[^\n\]*\n"   { set x [expr $x+1] }
    686 	    -re " +\[0-9\]+ 0030 58100000\[^\n\]*\n"   { set x [expr $x+1] }
    687 	    -re " +\[0-9\]+ 0034 58100000\[^\n\]*\n"   { set x [expr $x+1] }
    688 	    -re " +\[0-9\]+ 0038 58200000\[^\n\]*\n"   { set x [expr $x+1] }
    689 	    -re " +\[0-9\]+ 003c 58300000\[^\n\]*\n"   { set x [expr $x+1] }
    690 	    -re " +\[0-9\]+ 0040 58400000\[^\n\]*\n"   { set x [expr $x+1] }
    691 	    -re " +\[0-9\]+ 0044 58400000\[^\n\]*\n"   { set x [expr $x+1] }
    692 	    -re " +\[0-9\]+ 0048 58500000\[^\n\]*\n"   { set x [expr $x+1] }
    693 	    -re " +\[0-9\]+ 004c 58500000\[^\n\]*\n"   { set x [expr $x+1] }
    694 	    -re " +\[0-9\]+ 0050 58600000\[^\n\]*\n"   { set x [expr $x+1] }
    695 	    -re " +\[0-9\]+ 0054 58700000\[^\n\]*\n"   { set x [expr $x+1] }
    696 	    -re " +\[0-9\]+ 0058 58800000\[^\n\]*\n"   { set x [expr $x+1] }
    697 	    -re " +\[0-9\]+ 005c 58900000\[^\n\]*\n"   { set x [expr $x+1] }
    698 	    -re " +\[0-9\]+ 0060 58A00000\[^\n\]*\n"   { set x [expr $x+1] }
    699 	    -re " +\[0-9\]+ 0064 58B00000\[^\n\]*\n"   { set x [expr $x+1] }
    700 	    -re " +\[0-9\]+ 0068 58C00000\[^\n\]*\n"   { set x [expr $x+1] }
    701 	    -re " +\[0-9\]+ 006c 58D00000\[^\n\]*\n"   { set x [expr $x+1] }
    702 	    -re " +\[0-9\]+ 0070 58E00000\[^\n\]*\n"   { set x [expr $x+1] }
    703 	    -re " +\[0-9\]+ 0074 58F00000\[^\n\]*\n"   { set x [expr $x+1] }
    704 	    timeout 				{ perror "timeout\n; break }
    705 	    eof					{ break }
    706 	}
    707     }
    708 
    709     # This was intended to do any cleanup necessary.  It kinda looks like it
    710     # isn't needed, but just in case, please keep it in for now.
    711     gas_finish
    712 
    713     # Did we find what we were looking for?  If not, flunk it.
    714     if [expr $x == 40] then { pass $testname } else { fail $testname }
    715 }
    716 proc do_h8300h_bitops1 {} {
    717     set testname "bitops1h.s: h8300h bitops tests #1"
    718     set x 0
    719 
    720     gas_start "bitops1h.s" "-al"
    721 
    722     # Check each instruction bit pattern to verify it got
    723     # assembled correctly.
    724     while 1 {
    725 	expect {
    726 	    -re " +\[0-9\]+ 0000 7608\[^\n\]*\n"   { set x [expr $x+1] }
    727 	    -re " +\[0-9\]+ 0002 7C007600\[^\n\]*\n"   { set x [expr $x+1] }
    728 	    -re " +\[0-9\]+ 0006 7E407600\[^\n\]*\n"   { set x [expr $x+1] }
    729 	    -re " +\[0-9\]+ 000a 7208\[^\n\]*\n"   { set x [expr $x+1] }
    730 	    -re " +\[0-9\]+ 000c 7D007200\[^\n\]*\n"   { set x [expr $x+1] }
    731 	    -re " +\[0-9\]+ 0010 7F407200\[^\n\]*\n"   { set x [expr $x+1] }
    732 	    -re " +\[0-9\]+ 0014 6298\[^\n\]*\n"   { set x [expr $x+1] }
    733 	    -re " +\[0-9\]+ 0016 7D006290\[^\n\]*\n"   { set x [expr $x+1] }
    734 	    -re " +\[0-9\]+ 001a 7F406290\[^\n\]*\n"   { set x [expr $x+1] }
    735 	    -re " +\[0-9\]+ 001e 7688\[^\n\]*\n"   { set x [expr $x+1] }
    736 	    -re " +\[0-9\]+ 0020 7C007680\[^\n\]*\n"   { set x [expr $x+1] }
    737 	    -re " +\[0-9\]+ 0024 7E407680\[^\n\]*\n"   { set x [expr $x+1] }
    738 	    -re " +\[0-9\]+ 0028 7788\[^\n\]*\n"   { set x [expr $x+1] }
    739 	    -re " +\[0-9\]+ 002a 7C007780\[^\n\]*\n"   { set x [expr $x+1] }
    740 	    -re " +\[0-9\]+ 002e 7E407780\[^\n\]*\n"   { set x [expr $x+1] }
    741 	    timeout 				{ perror "timeout\n; break }
    742 	    eof					{ break }
    743 	}
    744     }
    745 
    746     # This was intended to do any cleanup necessary.  It kinda looks like it
    747     # isn't needed, but just in case, please keep it in for now.
    748     gas_finish
    749 
    750     # Did we find what we were looking for?  If not, flunk it.
    751     if [expr $x == 15] then { pass $testname } else { fail $testname }
    752 }
    753 
    754 proc do_h8300h_bitops2 {} {
    755     set testname "bitops2h.s: h8300h bitops tests #2"
    756     set x 0
    757 
    758     gas_start "bitops2h.s" "-al"
    759 
    760     # Check each instruction bit pattern to verify it got
    761     # assembled correctly.
    762     while 1 {
    763 	expect {
    764 	    -re " +\[0-9\]+ 0000 7488\[^\n\]*\n"   { set x [expr $x+1] }
    765 	    -re " +\[0-9\]+ 0002 7C007480\[^\n\]*\n"   { set x [expr $x+1] }
    766 	    -re " +\[0-9\]+ 0006 7E407480\[^\n\]*\n"   { set x [expr $x+1] }
    767 	    -re " +\[0-9\]+ 000a 6788\[^\n\]*\n"   { set x [expr $x+1] }
    768 	    -re " +\[0-9\]+ 000c 7D006780\[^\n\]*\n"   { set x [expr $x+1] }
    769 	    -re " +\[0-9\]+ 0010 7F406780\[^\n\]*\n"   { set x [expr $x+1] }
    770 	    -re " +\[0-9\]+ 0014 7588\[^\n\]*\n"   { set x [expr $x+1] }
    771 	    -re " +\[0-9\]+ 0016 7C007580\[^\n\]*\n"   { set x [expr $x+1] }
    772 	    -re " +\[0-9\]+ 001a 7E407580\[^\n\]*\n"   { set x [expr $x+1] }
    773 	    -re " +\[0-9\]+ 001e 7708\[^\n\]*\n"   { set x [expr $x+1] }
    774 	    -re " +\[0-9\]+ 0020 7C007700\[^\n\]*\n"   { set x [expr $x+1] }
    775 	    -re " +\[0-9\]+ 0024 7E407700\[^\n\]*\n"   { set x [expr $x+1] }
    776 	    timeout 				{ perror "timeout\n; break }
    777 	    eof					{ break }
    778 	}
    779     }
    780 
    781     # This was intended to do any cleanup necessary.  It kinda looks like it
    782     # isn't needed, but just in case, please keep it in for now.
    783     gas_finish
    784 
    785     # Did we find what we were looking for?  If not, flunk it.
    786     if [expr $x == 12] then { pass $testname } else { fail $testname }
    787 }
    788 
    789 proc do_h8300h_bitops3 {} {
    790     set testname "bitops3h.s: h8300h bitops tests #3"
    791     set x 0
    792 
    793     gas_start "bitops3h.s" "-al"
    794 
    795     # Check each instruction bit pattern to verify it got
    796     # assembled correctly.
    797     while 1 {
    798 	expect {
    799 	    -re " +\[0-9\]+ 0000 7108\[^\n\]*\n"   { set x [expr $x+1] }
    800 	    -re " +\[0-9\]+ 0002 7D007100\[^\n\]*\n"   { set x [expr $x+1] }
    801 	    -re " +\[0-9\]+ 0006 7F407100\[^\n\]*\n"   { set x [expr $x+1] }
    802 	    -re " +\[0-9\]+ 000a 6198\[^\n\]*\n"   { set x [expr $x+1] }
    803 	    -re " +\[0-9\]+ 000c 7D006190\[^\n\]*\n"   { set x [expr $x+1] }
    804 	    -re " +\[0-9\]+ 0010 7F406190\[^\n\]*\n"   { set x [expr $x+1] }
    805 	    -re " +\[0-9\]+ 0014 7008\[^\n\]*\n"   { set x [expr $x+1] }
    806 	    -re " +\[0-9\]+ 0016 7D007000\[^\n\]*\n"   { set x [expr $x+1] }
    807 	    -re " +\[0-9\]+ 001a 7F407000\[^\n\]*\n"   { set x [expr $x+1] }
    808 	    -re " +\[0-9\]+ 001e 6098\[^\n\]*\n"   { set x [expr $x+1] }
    809 	    -re " +\[0-9\]+ 0020 7D006090\[^\n\]*\n"   { set x [expr $x+1] }
    810 	    -re " +\[0-9\]+ 0024 7F406090\[^\n\]*\n"   { set x [expr $x+1] }
    811 	    timeout 				{ perror "timeout\n; break }
    812 	    eof					{ break }
    813 	}
    814     }
    815 
    816     # This was intended to do any cleanup necessary.  It kinda looks like it
    817     # isn't needed, but just in case, please keep it in for now.
    818     gas_finish
    819 
    820     # Did we find what we were looking for?  If not, flunk it.
    821     if [expr $x == 12] then { pass $testname } else { fail $testname }
    822 }
    823 
    824 proc do_h8300h_bitops4 {} {
    825     set testname "bitops4h.s: h8300h bitops tests #4"
    826     set x 0
    827 
    828     gas_start "bitops4h.s" "-al"
    829 
    830     # Check each instruction bit pattern to verify it got
    831     # assembled correctly.
    832     while 1 {
    833 	expect {
    834 	    -re " +\[0-9\]+ 0000 7408\[^\n\]*\n"   { set x [expr $x+1] }
    835 	    -re " +\[0-9\]+ 0002 7C007400\[^\n\]*\n"   { set x [expr $x+1] }
    836 	    -re " +\[0-9\]+ 0006 7E407400\[^\n\]*\n"   { set x [expr $x+1] }
    837 	    -re " +\[0-9\]+ 000a 6708\[^\n\]*\n"   { set x [expr $x+1] }
    838 	    -re " +\[0-9\]+ 000c 7D006700\[^\n\]*\n"   { set x [expr $x+1] }
    839 	    -re " +\[0-9\]+ 0010 7F406700\[^\n\]*\n"   { set x [expr $x+1] }
    840 	    -re " +\[0-9\]+ 0014 7308\[^\n\]*\n"   { set x [expr $x+1] }
    841 	    -re " +\[0-9\]+ 0016 7C007300\[^\n\]*\n"   { set x [expr $x+1] }
    842 	    -re " +\[0-9\]+ 001a 7E407300\[^\n\]*\n"   { set x [expr $x+1] }
    843 	    -re " +\[0-9\]+ 001e 6398\[^\n\]*\n"   { set x [expr $x+1] }
    844 	    -re " +\[0-9\]+ 0020 7C006390\[^\n\]*\n"   { set x [expr $x+1] }
    845 	    -re " +\[0-9\]+ 0024 7E406390\[^\n\]*\n"   { set x [expr $x+1] }
    846 	    -re " +\[0-9\]+ 0028 7508\[^\n\]*\n"   { set x [expr $x+1] }
    847 	    -re " +\[0-9\]+ 002a 7C007500\[^\n\]*\n"   { set x [expr $x+1] }
    848 	    -re " +\[0-9\]+ 002e 7E407500\[^\n\]*\n"   { set x [expr $x+1] }
    849 	    timeout 				{ perror "timeout\n; break }
    850 	    eof					{ break }
    851 	}
    852     }
    853 
    854     # This was intended to do any cleanup necessary.  It kinda looks like it
    855     # isn't needed, but just in case, please keep it in for now.
    856     gas_finish
    857 
    858     # Did we find what we were looking for?  If not, flunk it.
    859     if [expr $x == 15] then { pass $testname } else { fail $testname }
    860 }
    861 
    862 proc do_h8300h_branch {} {
    863     set testname "branchh.s: h8300h branch tests"
    864     set x 0
    865 
    866     gas_start "branchh.s" "-al"
    867 
    868     # Check each instruction bit pattern to verify it got
    869     # assembled correctly.
    870     while 1 {
    871 	expect {
    872 	    -re " +\[0-9\]+ 0000 5500\[^\n\]*\n"   { set x [expr $x+1] }
    873 	    -re " +\[0-9\]+ 0002 5C000000\[^\n\]*\n"   { set x [expr $x+1] }
    874 	    -re " +\[0-9\]+ 0006 5A000000\[^\n\]*\n"   { set x [expr $x+1] }
    875 	    -re " +\[0-9\]+ 000a 5900\[^\n\]*\n"   { set x [expr $x+1] }
    876 	    -re " +\[0-9\]+ 000c 5B00\[^\n\]*\n"   { set x [expr $x+1] }
    877 	    -re " +\[0-9\]+ 000e 5E000000\[^\n\]*\n"   { set x [expr $x+1] }
    878 	    -re " +\[0-9\]+ 0012 5D00\[^\n\]*\n"   { set x [expr $x+1] }
    879 	    -re " +\[0-9\]+ 0014 5F00\[^\n\]*\n"   { set x [expr $x+1] }
    880 	    timeout 				{ perror "timeout\n; break }
    881 	    eof					{ break }
    882 	}
    883     }
    884 
    885     # This was intended to do any cleanup necessary.  It kinda looks like it
    886     # isn't needed, but just in case, please keep it in for now.
    887     gas_finish
    888 
    889     # Did we find what we were looking for?  If not, flunk it.
    890     if [expr $x == 8] then { pass $testname } else { fail $testname }
    891 }
    892 
    893 proc do_h8300h_compare {} {
    894     set testname "compareh.s: h8300h compare tests"
    895     set x 0
    896 
    897     gas_start "compareh.s" "-al"
    898 
    899     # Check each instruction bit pattern to verify it got
    900     # assembled correctly.
    901     while 1 {
    902 	expect {
    903 	    -re " +\[0-9\]+ 0000 A800\[^\n\]*\n"   { set x [expr $x+1] }
    904 	    -re " +\[0-9\]+ 0002 1C08\[^\n\]*\n"   { set x [expr $x+1] }
    905 	    -re " +\[0-9\]+ 0004 79200020\[^\n\]*\n"   { set x [expr $x+1] }
    906 	    -re " +\[0-9\]+ 0008 1D01\[^\n\]*\n"   { set x [expr $x+1] }
    907 	    -re " +\[0-9\]+ 000a 7A200000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
    908 	    -re " +\[0-9\]+ 0010 1F81\[^\n\]*\n"   { set x [expr $x+1] }
    909 	    timeout 				{ perror "timeout\n; break }
    910 	    eof					{ break }
    911 	}
    912     }
    913 
    914     # This was intended to do any cleanup necessary.  It kinda looks like it
    915     # isn't needed, but just in case, please keep it in for now.
    916     gas_finish
    917 
    918     # Did we find what we were looking for?  If not, flunk it.
    919     if [expr $x == 6] then { pass $testname } else { fail $testname }
    920 }
    921 
    922 proc do_h8300h_decimal {} {
    923     set testname "decimalh.s: h8300h decimal tests"
    924     set x 0
    925 
    926     gas_start "decimalh.s" "-al"
    927 
    928     # Check each instruction bit pattern to verify it got
    929     # assembled correctly.
    930     while 1 {
    931 	expect {
    932 	    -re " +\[0-9\]+ 0000 0F08\[^\n\]*\n"   { set x [expr $x+1] }
    933 	    -re " +\[0-9\]+ 0002 1F08\[^\n\]*\n"   { set x [expr $x+1] }
    934 	    eof					{ break }
    935 	}
    936     }
    937 
    938     # This was intended to do any cleanup necessary.  It kinda looks like it
    939     # isn't needed, but just in case, please keep it in for now.
    940     gas_finish
    941 
    942     # Did we find what we were looking for?  If not, flunk it.
    943     if [expr $x == 2] then { pass $testname } else { fail $testname }
    944 }
    945 
    946 proc do_h8300h_incdec {} {
    947     set testname "incdech.s: h8300h incdec tests"
    948     set x 0
    949 
    950     gas_start "incdech.s" "-al"
    951 
    952     # Check each instruction bit pattern to verify it got
    953     # assembled correctly.
    954     while 1 {
    955 	expect {
    956 	    -re " +\[0-9\]+ 0000 1A08\[^\n\]*\n"   { set x [expr $x+1] }
    957 	    -re " +\[0-9\]+ 0002 1B50\[^\n\]*\n"   { set x [expr $x+1] }
    958 	    -re " +\[0-9\]+ 0004 1BD0\[^\n\]*\n"   { set x [expr $x+1] }
    959 	    -re " +\[0-9\]+ 0006 1B70\[^\n\]*\n"   { set x [expr $x+1] }
    960 	    -re " +\[0-9\]+ 0008 1BF0\[^\n\]*\n"   { set x [expr $x+1] }
    961 	    -re " +\[0-9\]+ 000a 0A08\[^\n\]*\n"   { set x [expr $x+1] }
    962 	    -re " +\[0-9\]+ 000c 0B50\[^\n\]*\n"   { set x [expr $x+1] }
    963 	    -re " +\[0-9\]+ 000e 0BD0\[^\n\]*\n"   { set x [expr $x+1] }
    964 	    -re " +\[0-9\]+ 0010 0B70\[^\n\]*\n"   { set x [expr $x+1] }
    965 	    -re " +\[0-9\]+ 0012 0BF0\[^\n\]*\n"   { set x [expr $x+1] }
    966 	    eof					{ break }
    967 	}
    968     }
    969 
    970     # This was intended to do any cleanup necessary.  It kinda looks like it
    971     # isn't needed, but just in case, please keep it in for now.
    972     gas_finish
    973 
    974     # Did we find what we were looking for?  If not, flunk it.
    975     if [expr $x == 10] then { pass $testname } else { fail $testname }
    976 }
    977 
    978 proc do_h8300h_divmul {} {
    979     set testname "divmulh.s: h8300h divmul tests"
    980     set x 0
    981 
    982     gas_start "divmulh.s" "-al"
    983 
    984     # Check each instruction bit pattern to verify it got
    985     # assembled correctly.
    986     while 1 {
    987 	expect {
    988 	    -re " +\[0-9\]+ 0000 5181\[^\n\]*\n"   { set x [expr $x+1] }
    989 	    -re " +\[0-9\]+ 0002 5301\[^\n\]*\n"   { set x [expr $x+1] }
    990 	    -re " +\[0-9\]+ 0004 01D05181\[^\n\]*\n"   { set x [expr $x+1] }
    991 	    -re " +\[0-9\]+ 0008 01D05301\[^\n\]*\n"   { set x [expr $x+1] }
    992 	    -re " +\[0-9\]+ 000c 5081\[^\n\]*\n"   { set x [expr $x+1] }
    993 	    -re " +\[0-9\]+ 000e 5201\[^\n\]*\n"   { set x [expr $x+1] }
    994 	    -re " +\[0-9\]+ 0010 01C05081\[^\n\]*\n"   { set x [expr $x+1] }
    995 	    -re " +\[0-9\]+ 0014 01C05201\[^\n\]*\n"   { set x [expr $x+1] }
    996 	    eof					{ break }
    997 	}
    998     }
    999 
   1000     # This was intended to do any cleanup necessary.  It kinda looks like it
   1001     # isn't needed, but just in case, please keep it in for now.
   1002     gas_finish
   1003 
   1004     # Did we find what we were looking for?  If not, flunk it.
   1005     if [expr $x == 8] then { pass $testname } else { fail $testname }
   1006 }
   1007 
   1008 proc do_h8300h_misc {} {
   1009     set testname "misch.s: h8300h misc tests"
   1010     set x 0
   1011 
   1012     gas_start "misch.s" "-al"
   1013 
   1014     # Check each instruction bit pattern to verify it got
   1015     # assembled correctly.
   1016     while 1 {
   1017 	expect {
   1018 	    -re " +\[0-9\]+ 0000 7B5C598F\[^\n\]*\n"   { set x [expr $x+1] }
   1019 	    -re " +\[0-9\]+ 0004 7BD4598F\[^\n\]*\n"   { set x [expr $x+1] }
   1020 	    -re " +\[0-9\]+ 0008 0700\[^\n\]*\n"   { set x [expr $x+1] }
   1021 	    -re " +\[0-9\]+ 000a 0308\[^\n\]*\n"   { set x [expr $x+1] }
   1022 	    -re " +\[0-9\]+ 000c 01406900\[^\n\]*\n"   { set x [expr $x+1] }
   1023 	    -re " +\[0-9\]+ 0010 01406F00\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n"   { set x [expr $x+1] }
   1024 	    -re " +\[0-9\]+ 0016 01407800\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n"   { set x [expr $x+1] }
   1025 	    -re " +\[0-9\]+ 0020 01406D00\[^\n\]*\n"   { set x [expr $x+1] }
   1026 	    -re " +\[0-9\]+ 0024 01406B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1027 	    -re " +\[0-9\]+ 002a 01406B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n"   { set x [expr $x+1] }
   1028 	    -re " +\[0-9\]+ 0032 0000\[^\n\]*\n"   { set x [expr $x+1] }
   1029 	    -re " +\[0-9\]+ 0034 5670\[^\n\]*\n"   { set x [expr $x+1] }
   1030 	    -re " +\[0-9\]+ 0036 5470\[^\n\]*\n"   { set x [expr $x+1] }
   1031 	    -re " +\[0-9\]+ 0038 0180\[^\n\]*\n"   { set x [expr $x+1] }
   1032 	    -re " +\[0-9\]+ 003a 0208\[^\n\]*\n"   { set x [expr $x+1] }
   1033 	    -re " +\[0-9\]+ 003c 01406980\[^\n\]*\n"   { set x [expr $x+1] }
   1034 	    -re " +\[0-9\]+ 0040 01406F80\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n"   { set x [expr $x+1] }
   1035 	    -re " +\[0-9\]+ 0046 01407800\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n"   { set x [expr $x+1] }
   1036 	    -re " +\[0-9\]+ 0050 01406D80\[^\n\]*\n"   { set x [expr $x+1] }
   1037 	    -re " +\[0-9\]+ 0054 01406B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1038 	    -re " +\[0-9\]+ 005a 01406BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n"   { set x [expr $x+1] }
   1039 	    eof					{ break }
   1040 	}
   1041     }
   1042 
   1043     # This was intended to do any cleanup necessary.  It kinda looks like it
   1044     # isn't needed, but just in case, please keep it in for now.
   1045     gas_finish
   1046 
   1047     # Did we find what we were looking for?  If not, flunk it.
   1048     if [expr $x == 21] then { pass $testname } else { fail $testname }
   1049 
   1050     setup_xfail "h8300*-*-*"
   1051     fail "h8300h movfpe/movtpe tests"
   1052 }
   1053 
   1054 proc do_h8300h_movb {} {
   1055     set testname "movbh.s: h8300h movb tests"
   1056     set x 0
   1057 
   1058     gas_start "movbh.s" "-al"
   1059 
   1060     # Check each instruction bit pattern to verify it got
   1061     # assembled correctly.
   1062     while 1 {
   1063 	expect {
   1064 	    -re " +\[0-9\]+ 0000 0C89\[^\n\]*\n"   { set x [expr $x+1] }
   1065 	    -re " +\[0-9\]+ 0002 F810\[^\n\]*\n"   { set x [expr $x+1] }
   1066 	    -re " +\[0-9\]+ 0004 6818\[^\n\]*\n"   { set x [expr $x+1] }
   1067 	    -re " +\[0-9\]+ 0006 6E180010\[^\n\]*\n"   { set x [expr $x+1] }
   1068 	    -re " +\[0-9\]+ 000a 78106A28\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n"   { set x [expr $x+1] }
   1069 	    -re " +\[0-9\]+ 0012 6C18\[^\n\]*\n"   { set x [expr $x+1] }
   1070 	    -re " +\[0-9\]+ 0014 2810\[^\n\]*\n"   { set x [expr $x+1] }
   1071 	    -re " +\[0-9\]+ 0016 6A080000\[^\n\]*\n"   { set x [expr $x+1] }
   1072 	    -re " +\[0-9\]+ 001a 6A280000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1073 	    -re " +\[0-9\]+ 0020 6898\[^\n\]*\n"   { set x [expr $x+1] }
   1074 	    -re " +\[0-9\]+ 0022 6E980010\[^\n\]*\n"   { set x [expr $x+1] }
   1075 	    -re " +\[0-9\]+ 0026 78106AA8\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n"   { set x [expr $x+1] }
   1076 	    -re " +\[0-9\]+ 002e 6C98\[^\n\]*\n"   { set x [expr $x+1] }
   1077 	    -re " +\[0-9\]+ 0030 3810\[^\n\]*\n"   { set x [expr $x+1] }
   1078 	    -re " +\[0-9\]+ 0032 6A880000\[^\n\]*\n"   { set x [expr $x+1] }
   1079 	    -re " +\[0-9\]+ 0036 6AA80000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1080 	    eof					{ break }
   1081 	}
   1082     }
   1083 
   1084     # This was intended to do any cleanup necessary.  It kinda looks like it
   1085     # isn't needed, but just in case, please keep it in for now.
   1086     gas_finish
   1087 
   1088     # Did we find what we were looking for?  If not, flunk it.
   1089     if [expr $x == 16] then { pass $testname } else { fail $testname }
   1090 }
   1091 
   1092 proc do_h8300h_movw {} {
   1093     set testname "movwh.s: h8300h movw tests"
   1094     set x 0
   1095 
   1096     gas_start "movwh.s" "-al"
   1097 
   1098     # Check each instruction bit pattern to verify it got
   1099     # assembled correctly.
   1100     while 1 {
   1101 	expect {
   1102 	    -re " +\[0-9\]+ 0000 0D01\[^\n\]*\n"   { set x [expr $x+1] }
   1103 	    -re " +\[0-9\]+ 0002 79000010\[^\n\]*\n"   { set x [expr $x+1] }
   1104 	    -re " +\[0-9\]+ 0006 6910\[^\n\]*\n"   { set x [expr $x+1] }
   1105 	    -re " +\[0-9\]+ 0008 6F100010\[^\n\]*\n"   { set x [expr $x+1] }
   1106 	    -re " +\[0-9\]+ 000c 78106B20\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n"   { set x [expr $x+1] }
   1107 	    -re " +\[0-9\]+ 0014 6D10\[^\n\]*\n"   { set x [expr $x+1] }
   1108 	    -re " +\[0-9\]+ 0016 6B000000\[^\n\]*\n"   { set x [expr $x+1] }
   1109 	    -re " +\[0-9\]+ 001a 6B200000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1110 	    -re " +\[0-9\]+ 0020 6990\[^\n\]*\n"   { set x [expr $x+1] }
   1111 	    -re " +\[0-9\]+ 0022 6F900010\[^\n\]*\n"   { set x [expr $x+1] }
   1112 	    -re " +\[0-9\]+ 0026 78106BA0\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n"   { set x [expr $x+1] }
   1113 	    -re " +\[0-9\]+ 002e 6D90\[^\n\]*\n"   { set x [expr $x+1] }
   1114 	    -re " +\[0-9\]+ 0030 6B800000\[^\n\]*\n"   { set x [expr $x+1] }
   1115 	    -re " +\[0-9\]+ 0034 6BA00000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1116 	    eof					{ break }
   1117 	}
   1118     }
   1119 
   1120     # This was intended to do any cleanup necessary.  It kinda looks like it
   1121     # isn't needed, but just in case, please keep it in for now.
   1122     gas_finish
   1123 
   1124     # Did we find what we were looking for?  If not, flunk it.
   1125     if [expr $x == 14] then { pass $testname } else { fail $testname }
   1126 }
   1127 
   1128 proc do_h8300h_movl {} {
   1129     set testname "movlh.s: h8300h movl tests"
   1130     set x 0
   1131 
   1132     gas_start "movlh.s" "-al"
   1133 
   1134     # Check each instruction bit pattern to verify it got
   1135     # assembled correctly.
   1136     while 1 {
   1137 	expect {
   1138 	    -re " +\[0-9\]+ 0000 0F81\[^\n\]*\n"   { set x [expr $x+1] }
   1139 	    -re " +\[0-9\]+ 0002 7A000000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
   1140 	    -re " +\[0-9\]+ 0008 01006910\[^\n\]*\n"   { set x [expr $x+1] }
   1141 	    -re " +\[0-9\]+ 000c 01006F10\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n"   { set x [expr $x+1] }
   1142 	    -re " +\[0-9\]+ 0012 01007810\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n"   { set x [expr $x+1] }
   1143 	    -re " +\[0-9\]+ 001c 01006D10\[^\n\]*\n"   { set x [expr $x+1] }
   1144 	    -re " +\[0-9\]+ 0020 01006B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1145 	    -re " +\[0-9\]+ 0026 01006B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n"   { set x [expr $x+1] }
   1146 	    -re " +\[0-9\]+ 002e 01006990\[^\n\]*\n"   { set x [expr $x+1] }
   1147 	    -re " +\[0-9\]+ 0032 01006F90\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n"   { set x [expr $x+1] }
   1148 	    -re " +\[0-9\]+ 0038 01007890\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n"   { set x [expr $x+1] }
   1149 	    -re " +\[0-9\]+ 0042 01006D90\[^\n\]*\n"   { set x [expr $x+1] }
   1150 	    -re " +\[0-9\]+ 0046 01006B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1151 	    -re " +\[0-9\]+ 004c 01006BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n"   { set x [expr $x+1] }
   1152 	    eof					{ break }
   1153 	}
   1154     }
   1155 
   1156     # This was intended to do any cleanup necessary.  It kinda looks like it
   1157     # isn't needed, but just in case, please keep it in for now.
   1158     gas_finish
   1159 
   1160     # Did we find what we were looking for?  If not, flunk it.
   1161     if [expr $x == 14] then { pass $testname } else { fail $testname }
   1162 }
   1163 
   1164 proc do_h8300h_pushpop {} {
   1165     set testname "pushpoph.s: h8300h pushpop tests"
   1166     set x 0
   1167 
   1168     gas_start "pushpoph.s" "-al"
   1169 
   1170     # Check each instruction bit pattern to verify it got
   1171     # assembled correctly.
   1172     while 1 {
   1173 	expect {
   1174 	    -re " +\[0-9\]+ 0000 6D70\[^\n\]*\n"   { set x [expr $x+1] }
   1175 	    -re " +\[0-9\]+ 0002 01006D70\[^\n\]*\n"   { set x [expr $x+1] }
   1176 	    -re " +\[0-9\]+ 0006 6DF0\[^\n\]*\n"   { set x [expr $x+1] }
   1177 	    -re " +\[0-9\]+ 0008 01006DF0\[^\n\]*\n"   { set x [expr $x+1] }
   1178 	    eof					{ break }
   1179 	}
   1180     }
   1181 
   1182     # This was intended to do any cleanup necessary.  It kinda looks like it
   1183     # isn't needed, but just in case, please keep it in for now.
   1184     gas_finish
   1185 
   1186     # Did we find what we were looking for?  If not, flunk it.
   1187     if [expr $x == 4] then { pass $testname } else { fail $testname }
   1188 }
   1189 
   1190 proc do_h8300h_rotate_shift {} {
   1191     set testname "rotshh.s: h8300h rotate and shift tests"
   1192     set x 0
   1193 
   1194     gas_start "rotshh.s" "-al"
   1195 
   1196     # Check each instruction bit pattern to verify it got
   1197     # assembled correctly.
   1198     while 1 {
   1199 	expect {
   1200 	    -re " +\[0-9\]+ 0000 1288\[^\n\]*\n"   { set x [expr $x+1] }
   1201 	    -re " +\[0-9\]+ 0002 1290\[^\n\]*\n"   { set x [expr $x+1] }
   1202 	    -re " +\[0-9\]+ 0004 12B0\[^\n\]*\n"   { set x [expr $x+1] }
   1203 	    -re " +\[0-9\]+ 0006 1388\[^\n\]*\n"   { set x [expr $x+1] }
   1204 	    -re " +\[0-9\]+ 0008 1390\[^\n\]*\n"   { set x [expr $x+1] }
   1205 	    -re " +\[0-9\]+ 000a 13B0\[^\n\]*\n"   { set x [expr $x+1] }
   1206 	    -re " +\[0-9\]+ 000c 1208\[^\n\]*\n"   { set x [expr $x+1] }
   1207 	    -re " +\[0-9\]+ 000e 1210\[^\n\]*\n"   { set x [expr $x+1] }
   1208 	    -re " +\[0-9\]+ 0010 1230\[^\n\]*\n"   { set x [expr $x+1] }
   1209 	    -re " +\[0-9\]+ 0012 1308\[^\n\]*\n"   { set x [expr $x+1] }
   1210 	    -re " +\[0-9\]+ 0014 1310\[^\n\]*\n"   { set x [expr $x+1] }
   1211 	    -re " +\[0-9\]+ 0016 1330\[^\n\]*\n"   { set x [expr $x+1] }
   1212 	    -re " +\[0-9\]+ 0018 1088\[^\n\]*\n"   { set x [expr $x+1] }
   1213 	    -re " +\[0-9\]+ 001a 1090\[^\n\]*\n"   { set x [expr $x+1] }
   1214 	    -re " +\[0-9\]+ 001c 10B0\[^\n\]*\n"   { set x [expr $x+1] }
   1215 	    -re " +\[0-9\]+ 001e 1188\[^\n\]*\n"   { set x [expr $x+1] }
   1216 	    -re " +\[0-9\]+ 0020 1190\[^\n\]*\n"   { set x [expr $x+1] }
   1217 	    -re " +\[0-9\]+ 0022 11B0\[^\n\]*\n"   { set x [expr $x+1] }
   1218 	    -re " +\[0-9\]+ 0024 1008\[^\n\]*\n"   { set x [expr $x+1] }
   1219 	    -re " +\[0-9\]+ 0026 1010\[^\n\]*\n"   { set x [expr $x+1] }
   1220 	    -re " +\[0-9\]+ 0028 1030\[^\n\]*\n"   { set x [expr $x+1] }
   1221 	    -re " +\[0-9\]+ 002a 1108\[^\n\]*\n"   { set x [expr $x+1] }
   1222 	    -re " +\[0-9\]+ 002c 1110\[^\n\]*\n"   { set x [expr $x+1] }
   1223 	    -re " +\[0-9\]+ 002e 1130\[^\n\]*\n"   { set x [expr $x+1] }
   1224 	    eof					{ break }
   1225 	}
   1226     }
   1227 
   1228     # This was intended to do any cleanup necessary.  It kinda looks like it
   1229     # isn't needed, but just in case, please keep it in for now.
   1230     gas_finish
   1231 
   1232     # Did we find what we were looking for?  If not, flunk it.
   1233     if [expr $x == 24] then { pass $testname } else { fail $testname }
   1234 }
   1235 
   1236 proc do_h8300h_extend {} {
   1237     set testname "extendh.s: h8300h extend tests"
   1238     set x 0
   1239 
   1240     gas_start "extendh.s" "-al"
   1241 
   1242     # Check each instruction bit pattern to verify it got
   1243     # assembled correctly.
   1244     while 1 {
   1245 	expect {
   1246 	    -re " +\[0-9\]+ 0000 17D0\[^\n\]*\n"   { set x [expr $x+1] }
   1247 	    -re " +\[0-9\]+ 0002 17F0\[^\n\]*\n"   { set x [expr $x+1] }
   1248 	    -re " +\[0-9\]+ 0004 1750\[^\n\]*\n"   { set x [expr $x+1] }
   1249 	    -re " +\[0-9\]+ 0006 1770\[^\n\]*\n"   { set x [expr $x+1] }
   1250 	    eof					{ break }
   1251 	}
   1252     }
   1253 
   1254     # This was intended to do any cleanup necessary.  It kinda looks like it
   1255     # isn't needed, but just in case, please keep it in for now.
   1256     gas_finish
   1257 
   1258     # Did we find what we were looking for?  If not, flunk it.
   1259     if [expr $x == 4] then { pass $testname } else { fail $testname }
   1260 }
   1261 
   1262 proc do_h8300s_add_sub {} {
   1263     set testname "addsubs.s: h8300s add/sub tests"
   1264     set x 0
   1265 
   1266     gas_start "addsubs.s" "-al"
   1267 
   1268     # Check each instruction bit pattern to verify it got
   1269     # assembled correctly.
   1270     while 1 {
   1271 	expect {
   1272 	    -re " +\[0-9\]+ 0000 8910\[^\n\]*\n"   { set x [expr $x+1] }
   1273 	    -re " +\[0-9\]+ 0002 0819\[^\n\]*\n"   { set x [expr $x+1] }
   1274 	    -re " +\[0-9\]+ 0004 79110020\[^\n\]*\n"   { set x [expr $x+1] }
   1275 	    -re " +\[0-9\]+ 0008 0912\[^\n\]*\n"   { set x [expr $x+1] }
   1276 	    -re " +\[0-9\]+ 000a 7A110000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
   1277 	    -re " +\[0-9\]+ 0010 0A92\[^\n\]*\n"   { set x [expr $x+1] }
   1278 	    -re " +\[0-9\]+ 0012 0B04\[^\n\]*\n"   { set x [expr $x+1] }
   1279 	    -re " +\[0-9\]+ 0014 0B85\[^\n\]*\n"   { set x [expr $x+1] }
   1280 	    -re " +\[0-9\]+ 0016 0B96\[^\n\]*\n"   { set x [expr $x+1] }
   1281 	    -re " +\[0-9\]+ 0018 0E89\[^\n\]*\n"   { set x [expr $x+1] }
   1282 	    -re " +\[0-9\]+ 001a 9210\[^\n\]*\n"   { set x [expr $x+1] }
   1283 	    -re " +\[0-9\]+ 001c 1889\[^\n\]*\n"   { set x [expr $x+1] }
   1284 	    -re " +\[0-9\]+ 001e 79310010\[^\n\]*\n"   { set x [expr $x+1] }
   1285 	    -re " +\[0-9\]+ 0022 1901\[^\n\]*\n"   { set x [expr $x+1] }
   1286 	    -re " +\[0-9\]+ 0024 7A310000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
   1287 	    -re " +\[0-9\]+ 002a 1A92\[^\n\]*\n"   { set x [expr $x+1] }
   1288 	    -re " +\[0-9\]+ 002c 1B04\[^\n\]*\n"   { set x [expr $x+1] }
   1289 	    -re " +\[0-9\]+ 002e 1B85\[^\n\]*\n"   { set x [expr $x+1] }
   1290 	    -re " +\[0-9\]+ 0030 1B96\[^\n\]*\n"   { set x [expr $x+1] }
   1291 	    -re " +\[0-9\]+ 0032 1E89\[^\n\]*\n"   { set x [expr $x+1] }
   1292 	    -re " +\[0-9\]+ 0034 B210\[^\n\]*\n"   { set x [expr $x+1] }
   1293 	    timeout 				{ perror "timeout\n; break }
   1294 	    eof					{ break }
   1295 	}
   1296     }
   1297 
   1298     # This was intended to do any cleanup necessary.  It kinda looks like it
   1299     # isn't needed, but just in case, please keep it in for now.
   1300     gas_finish
   1301 
   1302     # Did we find what we were looking for?  If not, flunk it.
   1303     if [expr $x == 21] then { pass $testname } else { fail $testname }
   1304 }
   1305 
   1306 proc do_h8300s_logical {} {
   1307     set testname "logicals.s: h8300s logical tests"
   1308     set x 0
   1309 
   1310     gas_start "logicals.s" "-al"
   1311 
   1312     # Check each instruction bit pattern to verify it got
   1313     # assembled correctly.
   1314     while 1 {
   1315 	expect {
   1316 	    -re " +\[0-9\]+ 0000 E910\[^\n\]*\n"   { set x [expr $x+1] }
   1317 	    -re " +\[0-9\]+ 0002 1691\[^\n\]*\n"   { set x [expr $x+1] }
   1318 	    -re " +\[0-9\]+ 0004 79610020\[^\n\]*\n"   { set x [expr $x+1] }
   1319 	    -re " +\[0-9\]+ 0008 6611\[^\n\]*\n"   { set x [expr $x+1] }
   1320 	    -re " +\[0-9\]+ 000a 7A610000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
   1321 	    -re " +\[0-9\]+ 0010 01F06611\[^\n\]*\n"   { set x [expr $x+1] }
   1322 	    -re " +\[0-9\]+ 0014 0610\[^\n\]*\n"   { set x [expr $x+1] }
   1323 	    -re " +\[0-9\]+ 0016 01410610\[^\n\]*\n"   { set x [expr $x+1] }
   1324 	    -re " +\[0-9\]+ 001a C810\[^\n\]*\n"   { set x [expr $x+1] }
   1325 	    -re " +\[0-9\]+ 001c 1498\[^\n\]*\n"   { set x [expr $x+1] }
   1326 	    -re " +\[0-9\]+ 001e 79410020\[^\n\]*\n"   { set x [expr $x+1] }
   1327 	    -re " +\[0-9\]+ 0022 6411\[^\n\]*\n"   { set x [expr $x+1] }
   1328 	    -re " +\[0-9\]+ 0024 7A410000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
   1329 	    -re " +\[0-9\]+ 002a 01F06411\[^\n\]*\n"   { set x [expr $x+1] }
   1330 	    -re " +\[0-9\]+ 002e 0410\[^\n\]*\n"   { set x [expr $x+1] }
   1331 	    -re " +\[0-9\]+ 0030 01410410\[^\n\]*\n"   { set x [expr $x+1] }
   1332 
   1333 	    -re " +\[0-9\]+ 0034 D810\[^\n\]*\n"   { set x [expr $x+1] }
   1334 	    -re " +\[0-9\]+ 0036 1589\[^\n\]*\n"   { set x [expr $x+1] }
   1335 	    -re " +\[0-9\]+ 0038 79510020\[^\n\]*\n"   { set x [expr $x+1] }
   1336 	    -re " +\[0-9\]+ 003c 6511\[^\n\]*\n"   { set x [expr $x+1] }
   1337 	    -re " +\[0-9\]+ 003e 7A510000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
   1338 	    -re " +\[0-9\]+ 0044 01F06511\[^\n\]*\n"   { set x [expr $x+1] }
   1339 	    -re " +\[0-9\]+ 0048 0510\[^\n\]*\n"   { set x [expr $x+1] }
   1340 	    -re " +\[0-9\]+ 004a 01410510\[^\n\]*\n"   { set x [expr $x+1] }
   1341 	    -re " +\[0-9\]+ 004e 1788\[^\n\]*\n"   { set x [expr $x+1] }
   1342 	    -re " +\[0-9\]+ 0050 1790\[^\n\]*\n"   { set x [expr $x+1] }
   1343 	    -re " +\[0-9\]+ 0052 17B0\[^\n\]*\n"   { set x [expr $x+1] }
   1344 	    -re " +\[0-9\]+ 0054 1708\[^\n\]*\n"   { set x [expr $x+1] }
   1345 	    -re " +\[0-9\]+ 0056 1710\[^\n\]*\n"   { set x [expr $x+1] }
   1346 	    -re " +\[0-9\]+ 0058 1730\[^\n\]*\n"   { set x [expr $x+1] }
   1347 	    timeout 				{ perror "timeout\n; break }
   1348 	    eof					{ break }
   1349 	}
   1350     }
   1351 
   1352     # This was intended to do any cleanup necessary.  It kinda looks like it
   1353     # isn't needed, but just in case, please keep it in for now.
   1354     gas_finish
   1355 
   1356     # Did we find what we were looking for?  If not, flunk it.
   1357     if [expr $x == 30] then { pass $testname } else { fail $testname }
   1358 }
   1359 
   1360 proc do_h8300s_cbranch {} {
   1361     set testname "cbranchs.s: h8300s conditional branch tests"
   1362     set x 0
   1363 
   1364     gas_start "cbranchs.s" "-al"
   1365 
   1366     # Check each instruction bit pattern to verify it got
   1367     # assembled correctly.
   1368     while 1 {
   1369 	expect {
   1370 	    -re " +\[0-9\]+ 0000 4000\[^\n\]*\n"   { set x [expr $x+1] }
   1371 	    -re " +\[0-9\]+ 0002 4000\[^\n\]*\n"   { set x [expr $x+1] }
   1372 	    -re " +\[0-9\]+ 0004 4100\[^\n\]*\n"   { set x [expr $x+1] }
   1373 	    -re " +\[0-9\]+ 0006 4100\[^\n\]*\n"   { set x [expr $x+1] }
   1374 	    -re " +\[0-9\]+ 0008 4200\[^\n\]*\n"   { set x [expr $x+1] }
   1375 	    -re " +\[0-9\]+ 000a 4300\[^\n\]*\n"   { set x [expr $x+1] }
   1376 	    -re " +\[0-9\]+ 000c 4400\[^\n\]*\n"   { set x [expr $x+1] }
   1377 	    -re " +\[0-9\]+ 000e 4400\[^\n\]*\n"   { set x [expr $x+1] }
   1378 	    -re " +\[0-9\]+ 0010 4500\[^\n\]*\n"   { set x [expr $x+1] }
   1379 	    -re " +\[0-9\]+ 0012 4500\[^\n\]*\n"   { set x [expr $x+1] }
   1380 	    -re " +\[0-9\]+ 0014 4600\[^\n\]*\n"   { set x [expr $x+1] }
   1381 	    -re " +\[0-9\]+ 0016 4700\[^\n\]*\n"   { set x [expr $x+1] }
   1382 	    -re " +\[0-9\]+ 0018 4800\[^\n\]*\n"   { set x [expr $x+1] }
   1383 	    -re " +\[0-9\]+ 001a 4900\[^\n\]*\n"   { set x [expr $x+1] }
   1384 	    -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n"   { set x [expr $x+1] }
   1385 	    -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n"   { set x [expr $x+1] }
   1386 	    -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n"   { set x [expr $x+1] }
   1387 	    -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n"   { set x [expr $x+1] }
   1388 	    -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n"   { set x [expr $x+1] }
   1389 	    -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n"   { set x [expr $x+1] }
   1390 	    -re " +\[0-9\]+ 0028 58000000\[^\n\]*\n"   { set x [expr $x+1] }
   1391 	    -re " +\[0-9\]+ 002c 58000000\[^\n\]*\n"   { set x [expr $x+1] }
   1392 	    -re " +\[0-9\]+ 0030 58100000\[^\n\]*\n"   { set x [expr $x+1] }
   1393 	    -re " +\[0-9\]+ 0034 58100000\[^\n\]*\n"   { set x [expr $x+1] }
   1394 	    -re " +\[0-9\]+ 0038 58200000\[^\n\]*\n"   { set x [expr $x+1] }
   1395 	    -re " +\[0-9\]+ 003c 58300000\[^\n\]*\n"   { set x [expr $x+1] }
   1396 	    -re " +\[0-9\]+ 0040 58400000\[^\n\]*\n"   { set x [expr $x+1] }
   1397 	    -re " +\[0-9\]+ 0044 58400000\[^\n\]*\n"   { set x [expr $x+1] }
   1398 	    -re " +\[0-9\]+ 0048 58500000\[^\n\]*\n"   { set x [expr $x+1] }
   1399 	    -re " +\[0-9\]+ 004c 58500000\[^\n\]*\n"   { set x [expr $x+1] }
   1400 	    -re " +\[0-9\]+ 0050 58600000\[^\n\]*\n"   { set x [expr $x+1] }
   1401 	    -re " +\[0-9\]+ 0054 58700000\[^\n\]*\n"   { set x [expr $x+1] }
   1402 	    -re " +\[0-9\]+ 0058 58800000\[^\n\]*\n"   { set x [expr $x+1] }
   1403 	    -re " +\[0-9\]+ 005c 58900000\[^\n\]*\n"   { set x [expr $x+1] }
   1404 	    -re " +\[0-9\]+ 0060 58A00000\[^\n\]*\n"   { set x [expr $x+1] }
   1405 	    -re " +\[0-9\]+ 0064 58B00000\[^\n\]*\n"   { set x [expr $x+1] }
   1406 	    -re " +\[0-9\]+ 0068 58C00000\[^\n\]*\n"   { set x [expr $x+1] }
   1407 	    -re " +\[0-9\]+ 006c 58D00000\[^\n\]*\n"   { set x [expr $x+1] }
   1408 	    -re " +\[0-9\]+ 0070 58E00000\[^\n\]*\n"   { set x [expr $x+1] }
   1409 	    -re " +\[0-9\]+ 0074 58F00000\[^\n\]*\n"   { set x [expr $x+1] }
   1410 	    timeout 				{ perror "timeout\n; break }
   1411 	    eof					{ break }
   1412 	}
   1413     }
   1414 
   1415     # This was intended to do any cleanup necessary.  It kinda looks like it
   1416     # isn't needed, but just in case, please keep it in for now.
   1417     gas_finish
   1418 
   1419     # Did we find what we were looking for?  If not, flunk it.
   1420     if [expr $x == 40] then { pass $testname } else { fail $testname }
   1421 }
   1422 proc do_h8300s_bitops1 {} {
   1423     set testname "bitops1s.s: h8300s bitops tests #1"
   1424     set x 0
   1425 
   1426     gas_start "bitops1s.s" "-al"
   1427 
   1428     # Check each instruction bit pattern to verify it got
   1429     # assembled correctly.
   1430     while 1 {
   1431 	expect {
   1432 	    -re " +\[0-9\]+ 0000 7608\[^\n\]*\n"   { set x [expr $x+1] }
   1433 	    -re " +\[0-9\]+ 0002 7C007600\[^\n\]*\n"   { set x [expr $x+1] }
   1434 	    -re " +\[0-9\]+ 0006 7E407600\[^\n\]*\n"   { set x [expr $x+1] }
   1435 	    -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7600"   { set x [expr $x+1] }
   1436 	    -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007600"   { set x [expr $x+1] }
   1437 	    -re " +\[0-9\]+ 0018 7208\[^\n\]*\n"   { set x [expr $x+1] }
   1438 	    -re " +\[0-9\]+ 001a 7D007200\[^\n\]*\n"   { set x [expr $x+1] }
   1439 	    -re " +\[0-9\]+ 001e 7F407200\[^\n\]*\n"   { set x [expr $x+1] }
   1440 	    -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +7200"   { set x [expr $x+1] }
   1441 	    -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00007200"   { set x [expr $x+1] }
   1442 	    -re " +\[0-9\]+ 0030 6298\[^\n\]*\n"   { set x [expr $x+1] }
   1443 	    -re " +\[0-9\]+ 0032 7D006290\[^\n\]*\n"   { set x [expr $x+1] }
   1444 	    -re " +\[0-9\]+ 0036 7F406290\[^\n\]*\n"   { set x [expr $x+1] }
   1445 	    -re " +\[0-9\]+ 003a 6A180080\[^\n\]*\n +\[0-9\]+ +6290"   { set x [expr $x+1] }
   1446 	    -re " +\[0-9\]+ 0040 6A380001\[^\n\]*\n +\[0-9\]+ +00006290"   { set x [expr $x+1] }
   1447 	    -re " +\[0-9\]+ 0048 7688\[^\n\]*\n"   { set x [expr $x+1] }
   1448 	    -re " +\[0-9\]+ 004a 7C007680\[^\n\]*\n"   { set x [expr $x+1] }
   1449 	    -re " +\[0-9\]+ 004e 7E407680\[^\n\]*\n"   { set x [expr $x+1] }
   1450 	    -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +7680"   { set x [expr $x+1] }
   1451 	    -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00007680"   { set x [expr $x+1] }
   1452 	    -re " +\[0-9\]+ 0060 7788\[^\n\]*\n"   { set x [expr $x+1] }
   1453 	    -re " +\[0-9\]+ 0062 7C007780\[^\n\]*\n"   { set x [expr $x+1] }
   1454 	    -re " +\[0-9\]+ 0066 7E407780\[^\n\]*\n"   { set x [expr $x+1] }
   1455 	    -re " +\[0-9\]+ 006a 6A100080\[^\n\]*\n +\[0-9\]+ +7780"   { set x [expr $x+1] }
   1456 	    -re " +\[0-9\]+ 0070 6A300001\[^\n\]*\n +\[0-9\]+ +00007780"   { set x [expr $x+1] }
   1457 	    timeout 				{ perror "timeout\n; break }
   1458 	    eof					{ break }
   1459 	}
   1460     }
   1461 
   1462     # This was intended to do any cleanup necessary.  It kinda looks like it
   1463     # isn't needed, but just in case, please keep it in for now.
   1464     gas_finish
   1465 
   1466     # Did we find what we were looking for?  If not, flunk it.
   1467     if [expr $x == 25] then { pass $testname } else { fail $testname }
   1468 }
   1469 
   1470 proc do_h8300s_bitops2 {} {
   1471     set testname "bitops2s.s: h8300s bitops tests #2"
   1472     set x 0
   1473 
   1474     gas_start "bitops2s.s" "-al"
   1475 
   1476     # Check each instruction bit pattern to verify it got
   1477     # assembled correctly.
   1478     while 1 {
   1479 	expect {
   1480 	    -re " +\[0-9\]+ 0000 7488\[^\n\]*\n"   { set x [expr $x+1] }
   1481 	    -re " +\[0-9\]+ 0002 7C007480\[^\n\]*\n"   { set x [expr $x+1] }
   1482 	    -re " +\[0-9\]+ 0006 7E407480\[^\n\]*\n"   { set x [expr $x+1] }
   1483 	    -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7480"   { set x [expr $x+1] }
   1484 	    -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007480"   { set x [expr $x+1] }
   1485 	    -re " +\[0-9\]+ 0018 6788\[^\n\]*\n"   { set x [expr $x+1] }
   1486 	    -re " +\[0-9\]+ 001a 7D006780\[^\n\]*\n"   { set x [expr $x+1] }
   1487 	    -re " +\[0-9\]+ 001e 7F406780\[^\n\]*\n"   { set x [expr $x+1] }
   1488 	    -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6780"   { set x [expr $x+1] }
   1489 	    -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006780"   { set x [expr $x+1] }
   1490 
   1491 	    -re " +\[0-9\]+ 0030 7588\[^\n\]*\n"   { set x [expr $x+1] }
   1492 	    -re " +\[0-9\]+ 0032 7C007580\[^\n\]*\n"   { set x [expr $x+1] }
   1493 	    -re " +\[0-9\]+ 0036 7E407580\[^\n\]*\n"   { set x [expr $x+1] }
   1494 	    -re " +\[0-9\]+ 003a 6A100080\[^\n\]*\n +\[0-9\]+ +7580"   { set x [expr $x+1] }
   1495 	    -re " +\[0-9\]+ 0040 6A300001\[^\n\]*\n +\[0-9\]+ +00007580"   { set x [expr $x+1] }
   1496 	    -re " +\[0-9\]+ 0048 7708\[^\n\]*\n"   { set x [expr $x+1] }
   1497 	    -re " +\[0-9\]+ 004a 7C007700\[^\n\]*\n"   { set x [expr $x+1] }
   1498 	    -re " +\[0-9\]+ 004e 7E407700\[^\n\]*\n"   { set x [expr $x+1] }
   1499 	    -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +7700"   { set x [expr $x+1] }
   1500 	    -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00007700"   { set x [expr $x+1] }
   1501 	    timeout 				{ perror "timeout\n; break }
   1502 	    eof					{ break }
   1503 	}
   1504     }
   1505 
   1506     # This was intended to do any cleanup necessary.  It kinda looks like it
   1507     # isn't needed, but just in case, please keep it in for now.
   1508     gas_finish
   1509 
   1510     # Did we find what we were looking for?  If not, flunk it.
   1511     if [expr $x == 20] then { pass $testname } else { fail $testname }
   1512 }
   1513 
   1514 proc do_h8300s_bitops3 {} {
   1515     set testname "bitops3s.s: h8300s bitops tests #3"
   1516     set x 0
   1517 
   1518     gas_start "bitops3s.s" "-al"
   1519 
   1520     # Check each instruction bit pattern to verify it got
   1521     # assembled correctly.
   1522     while 1 {
   1523 	expect {
   1524 	    -re " +\[0-9\]+ 0000 7108\[^\n\]*\n"   { set x [expr $x+1] }
   1525 	    -re " +\[0-9\]+ 0002 7D007100\[^\n\]*\n"   { set x [expr $x+1] }
   1526 	    -re " +\[0-9\]+ 0006 7F407100\[^\n\]*\n"   { set x [expr $x+1] }
   1527 	    -re " +\[0-9\]+ 000a 6A180080\[^\n\]*\n +\[0-9\]+ +7100"   { set x [expr $x+1] }
   1528 	    -re " +\[0-9\]+ 0010 6A380001\[^\n\]*\n +\[0-9\]+ +00007100"   { set x [expr $x+1] }
   1529 	    -re " +\[0-9\]+ 0018 6198\[^\n\]*\n"   { set x [expr $x+1] }
   1530 	    -re " +\[0-9\]+ 001a 7D006190\[^\n\]*\n"   { set x [expr $x+1] }
   1531 	    -re " +\[0-9\]+ 001e 7F406190\[^\n\]*\n"   { set x [expr $x+1] }
   1532 	    -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6190"   { set x [expr $x+1] }
   1533 	    -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006190"   { set x [expr $x+1] }
   1534 	    -re " +\[0-9\]+ 0030 7008\[^\n\]*\n"   { set x [expr $x+1] }
   1535 	    -re " +\[0-9\]+ 0032 7D007000\[^\n\]*\n"   { set x [expr $x+1] }
   1536 	    -re " +\[0-9\]+ 0036 7F407000\[^\n\]*\n"   { set x [expr $x+1] }
   1537 	    -re " +\[0-9\]+ 003a 6A180080\[^\n\]*\n +\[0-9\]+ +7000"   { set x [expr $x+1] }
   1538 	    -re " +\[0-9\]+ 0040 6A380001\[^\n\]*\n +\[0-9\]+ +00007000"   { set x [expr $x+1] }
   1539 	    -re " +\[0-9\]+ 0048 6098\[^\n\]*\n"   { set x [expr $x+1] }
   1540 	    -re " +\[0-9\]+ 004a 7D006090\[^\n\]*\n"   { set x [expr $x+1] }
   1541 	    -re " +\[0-9\]+ 004e 7F406090\[^\n\]*\n"   { set x [expr $x+1] }
   1542 	    -re " +\[0-9\]+ 0052 6A180080\[^\n\]*\n +\[0-9\]+ +6090"   { set x [expr $x+1] }
   1543 	    -re " +\[0-9\]+ 0058 6A380001\[^\n\]*\n +\[0-9\]+ +00006090"   { set x [expr $x+1] }
   1544 	    timeout 				{ perror "timeout\n; break }
   1545 	    eof					{ break }
   1546 	}
   1547     }
   1548 
   1549     # This was intended to do any cleanup necessary.  It kinda looks like it
   1550     # isn't needed, but just in case, please keep it in for now.
   1551     gas_finish
   1552 
   1553     # Did we find what we were looking for?  If not, flunk it.
   1554     if [expr $x == 20] then { pass $testname } else { fail $testname }
   1555 }
   1556 
   1557 proc do_h8300s_bitops4 {} {
   1558     set testname "bitops4s.s: h8300s bitops tests #4"
   1559     set x 0
   1560 
   1561     gas_start "bitops4s.s" "-al"
   1562 
   1563     # Check each instruction bit pattern to verify it got
   1564     # assembled correctly.
   1565     while 1 {
   1566 	expect {
   1567 	    -re " +\[0-9\]+ 0000 7408\[^\n\]*\n"   { set x [expr $x+1] }
   1568 	    -re " +\[0-9\]+ 0002 7C007400\[^\n\]*\n"   { set x [expr $x+1] }
   1569 	    -re " +\[0-9\]+ 0006 7E407400\[^\n\]*\n"   { set x [expr $x+1] }
   1570 	    -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7400"   { set x [expr $x+1] }
   1571 	    -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007400"   { set x [expr $x+1] }
   1572 	    -re " +\[0-9\]+ 0018 6708\[^\n\]*\n"   { set x [expr $x+1] }
   1573 	    -re " +\[0-9\]+ 001a 7D006700\[^\n\]*\n"   { set x [expr $x+1] }
   1574 	    -re " +\[0-9\]+ 001e 7F406700\[^\n\]*\n"   { set x [expr $x+1] }
   1575 	    -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6700"   { set x [expr $x+1] }
   1576 	    -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006700"   { set x [expr $x+1] }
   1577 	    -re " +\[0-9\]+ 0030 7308\[^\n\]*\n"   { set x [expr $x+1] }
   1578 	    -re " +\[0-9\]+ 0032 7C007300\[^\n\]*\n"   { set x [expr $x+1] }
   1579 	    -re " +\[0-9\]+ 0036 7E407300\[^\n\]*\n"   { set x [expr $x+1] }
   1580 	    -re " +\[0-9\]+ 003a 6A100080\[^\n\]*\n +\[0-9\]+ +7300"   { set x [expr $x+1] }
   1581 	    -re " +\[0-9\]+ 0040 6A300001\[^\n\]*\n +\[0-9\]+ +00007300"   { set x [expr $x+1] }
   1582 	    -re " +\[0-9\]+ 0048 6398\[^\n\]*\n"   { set x [expr $x+1] }
   1583 	    -re " +\[0-9\]+ 004a 7C006390\[^\n\]*\n"   { set x [expr $x+1] }
   1584 	    -re " +\[0-9\]+ 004e 7E406390\[^\n\]*\n"   { set x [expr $x+1] }
   1585 	    -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +6390"   { set x [expr $x+1] }
   1586 	    -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00006390"   { set x [expr $x+1] }
   1587 	    -re " +\[0-9\]+ 0060 7508\[^\n\]*\n"   { set x [expr $x+1] }
   1588 	    -re " +\[0-9\]+ 0062 7C007500\[^\n\]*\n"   { set x [expr $x+1] }
   1589 	    -re " +\[0-9\]+ 0066 7E407500\[^\n\]*\n"   { set x [expr $x+1] }
   1590 	    -re " +\[0-9\]+ 006a 6A100080\[^\n\]*\n +\[0-9\]+ +7500"   { set x [expr $x+1] }
   1591 	    -re " +\[0-9\]+ 0070 6A300001\[^\n\]*\n +\[0-9\]+ +00007500"   { set x [expr $x+1] }
   1592 	    timeout 				{ perror "timeout\n; break }
   1593 	    eof					{ break }
   1594 	}
   1595     }
   1596 
   1597     # This was intended to do any cleanup necessary.  It kinda looks like it
   1598     # isn't needed, but just in case, please keep it in for now.
   1599     gas_finish
   1600 
   1601     # Did we find what we were looking for?  If not, flunk it.
   1602     if [expr $x == 25] then { pass $testname } else { fail $testname }
   1603 }
   1604 
   1605 proc do_h8300s_branch {} {
   1606     set testname "branchs.s: h8300s branch tests"
   1607     set x 0
   1608 
   1609     gas_start "branchs.s" "-al"
   1610 
   1611     # Check each instruction bit pattern to verify it got
   1612     # assembled correctly.
   1613     while 1 {
   1614 	expect {
   1615 	    -re " +\[0-9\]+ 0000 5500\[^\n\]*\n"   { set x [expr $x+1] }
   1616 	    -re " +\[0-9\]+ 0002 5C000000\[^\n\]*\n"   { set x [expr $x+1] }
   1617 	    -re " +\[0-9\]+ 0006 5A000000\[^\n\]*\n"   { set x [expr $x+1] }
   1618 	    -re " +\[0-9\]+ 000a 5900\[^\n\]*\n"   { set x [expr $x+1] }
   1619 	    -re " +\[0-9\]+ 000c 5B00\[^\n\]*\n"   { set x [expr $x+1] }
   1620 	    -re " +\[0-9\]+ 000e 5E000000\[^\n\]*\n"   { set x [expr $x+1] }
   1621 	    -re " +\[0-9\]+ 0012 5D00\[^\n\]*\n"   { set x [expr $x+1] }
   1622 	    -re " +\[0-9\]+ 0014 5F00\[^\n\]*\n"   { set x [expr $x+1] }
   1623 	    timeout 				{ perror "timeout\n; break }
   1624 	    eof					{ break }
   1625 	}
   1626     }
   1627 
   1628     # This was intended to do any cleanup necessary.  It kinda looks like it
   1629     # isn't needed, but just in case, please keep it in for now.
   1630     gas_finish
   1631 
   1632     # Did we find what we were looking for?  If not, flunk it.
   1633     if [expr $x == 8] then { pass $testname } else { fail $testname }
   1634 }
   1635 
   1636 proc do_h8300s_compare {} {
   1637     set testname "compares.s: h8300s compare tests"
   1638     set x 0
   1639 
   1640     gas_start "compares.s" "-al"
   1641 
   1642     # Check each instruction bit pattern to verify it got
   1643     # assembled correctly.
   1644     while 1 {
   1645 	expect {
   1646 	    -re " +\[0-9\]+ 0000 A800\[^\n\]*\n"   { set x [expr $x+1] }
   1647 	    -re " +\[0-9\]+ 0002 1C08\[^\n\]*\n"   { set x [expr $x+1] }
   1648 	    -re " +\[0-9\]+ 0004 79200020\[^\n\]*\n"   { set x [expr $x+1] }
   1649 	    -re " +\[0-9\]+ 0008 1D01\[^\n\]*\n"   { set x [expr $x+1] }
   1650 	    -re " +\[0-9\]+ 000a 7A200000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
   1651 	    -re " +\[0-9\]+ 0010 1F81\[^\n\]*\n"   { set x [expr $x+1] }
   1652 	    timeout 				{ perror "timeout\n; break }
   1653 	    eof					{ break }
   1654 	}
   1655     }
   1656 
   1657     # This was intended to do any cleanup necessary.  It kinda looks like it
   1658     # isn't needed, but just in case, please keep it in for now.
   1659     gas_finish
   1660 
   1661     # Did we find what we were looking for?  If not, flunk it.
   1662     if [expr $x == 6] then { pass $testname } else { fail $testname }
   1663 }
   1664 
   1665 proc do_h8300s_decimal {} {
   1666     set testname "decimals.s: h8300s decimal tests"
   1667     set x 0
   1668 
   1669     gas_start "decimals.s" "-al"
   1670 
   1671     # Check each instruction bit pattern to verify it got
   1672     # assembled correctly.
   1673     while 1 {
   1674 	expect {
   1675 	    -re " +\[0-9\]+ 0000 0F08\[^\n\]*\n"   { set x [expr $x+1] }
   1676 	    -re " +\[0-9\]+ 0002 1F08\[^\n\]*\n"   { set x [expr $x+1] }
   1677 	    eof					{ break }
   1678 	}
   1679     }
   1680 
   1681     # This was intended to do any cleanup necessary.  It kinda looks like it
   1682     # isn't needed, but just in case, please keep it in for now.
   1683     gas_finish
   1684 
   1685     # Did we find what we were looking for?  If not, flunk it.
   1686     if [expr $x == 2] then { pass $testname } else { fail $testname }
   1687 }
   1688 
   1689 proc do_h8300s_incdec {} {
   1690     set testname "incdecs.s: h8300s incdec tests"
   1691     set x 0
   1692 
   1693     gas_start "incdecs.s" "-al"
   1694 
   1695     # Check each instruction bit pattern to verify it got
   1696     # assembled correctly.
   1697     while 1 {
   1698 	expect {
   1699 	    -re " +\[0-9\]+ 0000 1A08\[^\n\]*\n"   { set x [expr $x+1] }
   1700 	    -re " +\[0-9\]+ 0002 1B50\[^\n\]*\n"   { set x [expr $x+1] }
   1701 	    -re " +\[0-9\]+ 0004 1BD0\[^\n\]*\n"   { set x [expr $x+1] }
   1702 	    -re " +\[0-9\]+ 0006 1B70\[^\n\]*\n"   { set x [expr $x+1] }
   1703 	    -re " +\[0-9\]+ 0008 1BF0\[^\n\]*\n"   { set x [expr $x+1] }
   1704 	    -re " +\[0-9\]+ 000a 0A08\[^\n\]*\n"   { set x [expr $x+1] }
   1705 	    -re " +\[0-9\]+ 000c 0B50\[^\n\]*\n"   { set x [expr $x+1] }
   1706 	    -re " +\[0-9\]+ 000e 0BD0\[^\n\]*\n"   { set x [expr $x+1] }
   1707 	    -re " +\[0-9\]+ 0010 0B70\[^\n\]*\n"   { set x [expr $x+1] }
   1708 	    -re " +\[0-9\]+ 0012 0BF0\[^\n\]*\n"   { set x [expr $x+1] }
   1709 	    eof					{ break }
   1710 	}
   1711     }
   1712 
   1713     # This was intended to do any cleanup necessary.  It kinda looks like it
   1714     # isn't needed, but just in case, please keep it in for now.
   1715     gas_finish
   1716 
   1717     # Did we find what we were looking for?  If not, flunk it.
   1718     if [expr $x == 10] then { pass $testname } else { fail $testname }
   1719 }
   1720 
   1721 proc do_h8300s_divmul {} {
   1722     set testname "divmuls.s: h8300s divmul tests"
   1723     set x 0
   1724 
   1725     gas_start "divmuls.s" "-al"
   1726 
   1727     # Check each instruction bit pattern to verify it got
   1728     # assembled correctly.
   1729     while 1 {
   1730 	expect {
   1731 	    -re " +\[0-9\]+ 0000 5181\[^\n\]*\n"   { set x [expr $x+1] }
   1732 	    -re " +\[0-9\]+ 0002 5301\[^\n\]*\n"   { set x [expr $x+1] }
   1733 	    -re " +\[0-9\]+ 0004 01D05181\[^\n\]*\n"   { set x [expr $x+1] }
   1734 	    -re " +\[0-9\]+ 0008 01D05301\[^\n\]*\n"   { set x [expr $x+1] }
   1735 	    -re " +\[0-9\]+ 000c 5081\[^\n\]*\n"   { set x [expr $x+1] }
   1736 	    -re " +\[0-9\]+ 000e 5201\[^\n\]*\n"   { set x [expr $x+1] }
   1737 	    -re " +\[0-9\]+ 0010 01C05081\[^\n\]*\n"   { set x [expr $x+1] }
   1738 	    -re " +\[0-9\]+ 0014 01C05201\[^\n\]*\n"   { set x [expr $x+1] }
   1739 	    eof					{ break }
   1740 	}
   1741     }
   1742 
   1743     # This was intended to do any cleanup necessary.  It kinda looks like it
   1744     # isn't needed, but just in case, please keep it in for now.
   1745     gas_finish
   1746 
   1747     # Did we find what we were looking for?  If not, flunk it.
   1748     if [expr $x == 8] then { pass $testname } else { fail $testname }
   1749 }
   1750 
   1751 proc do_h8300s_misc {} {
   1752     set testname "miscs.s: h8300s misc tests"
   1753     set x 0
   1754 
   1755     gas_start "miscs.s" "-al"
   1756 
   1757     # Check each instruction bit pattern to verify it got
   1758     # assembled correctly.
   1759     while 1 {
   1760 	expect {
   1761 	    -re " +\[0-9\]+ 0000 7B5C598F\[^\n\]*\n"   { set x [expr $x+1] }
   1762 	    -re " +\[0-9\]+ 0004 7BD4598F\[^\n\]*\n"   { set x [expr $x+1] }
   1763 	    -re " +\[0-9\]+ 0008 0700\[^\n\]*\n"   { set x [expr $x+1] }
   1764 	    -re " +\[0-9\]+ 000a 0308\[^\n\]*\n"   { set x [expr $x+1] }
   1765 	    -re " +\[0-9\]+ 000c 01410700\[^\n\]*\n"   { set x [expr $x+1] }
   1766 	    -re " +\[0-9\]+ 0010 0318\[^\n\]*\n"   { set x [expr $x+1] }
   1767 	    -re " +\[0-9\]+ 0012 01406900\[^\n\]*\n"   { set x [expr $x+1] }
   1768 	    -re " +\[0-9\]+ 0016 01406F00\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n"   { set x [expr $x+1] }
   1769 	    -re " +\[0-9\]+ 001c 01407800\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n"   { set x [expr $x+1] }
   1770 	    -re " +\[0-9\]+ 0026 01406D00\[^\n\]*\n"   { set x [expr $x+1] }
   1771 	    -re " +\[0-9\]+ 002a 01406B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1772 	    -re " +\[0-9\]+ 0030 01406B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n"   { set x [expr $x+1] }
   1773 	    -re " +\[0-9\]+ 0038 01416900\[^\n\]*\n"   { set x [expr $x+1] }
   1774 	    -re " +\[0-9\]+ 003c 01416F00\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n"   { set x [expr $x+1] }
   1775 	    -re " +\[0-9\]+ 0042 01417800\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n"   { set x [expr $x+1] }
   1776 	    -re " +\[0-9\]+ 004c 01416D00\[^\n\]*\n"   { set x [expr $x+1] }
   1777 	    -re " +\[0-9\]+ 0050 01416B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1778 	    -re " +\[0-9\]+ 0056 01416B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n"   { set x [expr $x+1] }
   1779 	    -re " +\[0-9\]+ 005e 0000\[^\n\]*\n"   { set x [expr $x+1] }
   1780 	    -re " +\[0-9\]+ 0060 5670\[^\n\]*\n"   { set x [expr $x+1] }
   1781 	    -re " +\[0-9\]+ 0062 5470\[^\n\]*\n"   { set x [expr $x+1] }
   1782 	    -re " +\[0-9\]+ 0064 0180\[^\n\]*\n"   { set x [expr $x+1] }
   1783 	    -re " +\[0-9\]+ 0066 0208\[^\n\]*\n"   { set x [expr $x+1] }
   1784 	    -re " +\[0-9\]+ 0068 0218\[^\n\]*\n"   { set x [expr $x+1] }
   1785 	    -re " +\[0-9\]+ 006a 01406980\[^\n\]*\n"   { set x [expr $x+1] }
   1786 	    -re " +\[0-9\]+ 006e 01406F80\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n"   { set x [expr $x+1] }
   1787 	    -re " +\[0-9\]+ 0074 01407800\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n"   { set x [expr $x+1] }
   1788 	    -re " +\[0-9\]+ 007e 01406D80\[^\n\]*\n"   { set x [expr $x+1] }
   1789 	    -re " +\[0-9\]+ 0082 01406B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1790 	    -re " +\[0-9\]+ 0088 01406BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n"   { set x [expr $x+1] }
   1791 	    -re " +\[0-9\]+ 0090 01416980\[^\n\]*\n"   { set x [expr $x+1] }
   1792 	    -re " +\[0-9\]+ 0094 01416F80\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n"   { set x [expr $x+1] }
   1793 	    -re " +\[0-9\]+ 009a 01417800\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n"   { set x [expr $x+1] }
   1794 	    -re " +\[0-9\]+ 00a4 01416D80\[^\n\]*\n"   { set x [expr $x+1] }
   1795 	    -re " +\[0-9\]+ 00a8 01416B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1796 	    -re " +\[0-9\]+ 00ae 01416BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n"   { set x [expr $x+1] }
   1797 	    eof					{ break }
   1798 	}
   1799     }
   1800 
   1801     # This was intended to do any cleanup necessary.  It kinda looks like it
   1802     # isn't needed, but just in case, please keep it in for now.
   1803     gas_finish
   1804 
   1805     # Did we find what we were looking for?  If not, flunk it.
   1806     if [expr $x == 36] then { pass $testname } else { fail $testname }
   1807 
   1808     setup_xfail "h8300*-*-*"
   1809     fail "h8300s movfpe/movtpe tests"
   1810 }
   1811 
   1812 proc do_h8300s_movb {} {
   1813     set testname "movbs.s: h8300s movb tests"
   1814     set x 0
   1815 
   1816     gas_start "movbs.s" "-al"
   1817 
   1818     # Check each instruction bit pattern to verify it got
   1819     # assembled correctly.
   1820     while 1 {
   1821 	expect {
   1822 	    -re " +\[0-9\]+ 0000 0C89\[^\n\]*\n"   { set x [expr $x+1] }
   1823 	    -re " +\[0-9\]+ 0002 F810\[^\n\]*\n"   { set x [expr $x+1] }
   1824 	    -re " +\[0-9\]+ 0004 6818\[^\n\]*\n"   { set x [expr $x+1] }
   1825 	    -re " +\[0-9\]+ 0006 6E180010\[^\n\]*\n"   { set x [expr $x+1] }
   1826 	    -re " +\[0-9\]+ 000a 78106A28\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n"   { set x [expr $x+1] }
   1827 	    -re " +\[0-9\]+ 0012 6C18\[^\n\]*\n"   { set x [expr $x+1] }
   1828 	    -re " +\[0-9\]+ 0014 2810\[^\n\]*\n"   { set x [expr $x+1] }
   1829 	    -re " +\[0-9\]+ 0016 6A080000\[^\n\]*\n"   { set x [expr $x+1] }
   1830 	    -re " +\[0-9\]+ 001a 6A280000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1831 	    -re " +\[0-9\]+ 0020 6898\[^\n\]*\n"   { set x [expr $x+1] }
   1832 	    -re " +\[0-9\]+ 0022 6E980010\[^\n\]*\n"   { set x [expr $x+1] }
   1833 	    -re " +\[0-9\]+ 0026 78106AA8\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n"   { set x [expr $x+1] }
   1834 	    -re " +\[0-9\]+ 002e 6C98\[^\n\]*\n"   { set x [expr $x+1] }
   1835 	    -re " +\[0-9\]+ 0030 3810\[^\n\]*\n"   { set x [expr $x+1] }
   1836 	    -re " +\[0-9\]+ 0032 6A880000\[^\n\]*\n"   { set x [expr $x+1] }
   1837 	    -re " +\[0-9\]+ 0036 6AA80000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1838 	    eof					{ break }
   1839 	}
   1840     }
   1841 
   1842     # This was intended to do any cleanup necessary.  It kinda looks like it
   1843     # isn't needed, but just in case, please keep it in for now.
   1844     gas_finish
   1845 
   1846     # Did we find what we were looking for?  If not, flunk it.
   1847     if [expr $x == 16] then { pass $testname } else { fail $testname }
   1848 }
   1849 
   1850 proc do_h8300s_movw {} {
   1851     set testname "movws.s: h8300s movw tests"
   1852     set x 0
   1853 
   1854     gas_start "movws.s" "-al"
   1855 
   1856     # Check each instruction bit pattern to verify it got
   1857     # assembled correctly.
   1858     while 1 {
   1859 	expect {
   1860 	    -re " +\[0-9\]+ 0000 0D01\[^\n\]*\n"   { set x [expr $x+1] }
   1861 	    -re " +\[0-9\]+ 0002 79000010\[^\n\]*\n"   { set x [expr $x+1] }
   1862 	    -re " +\[0-9\]+ 0006 6910\[^\n\]*\n"   { set x [expr $x+1] }
   1863 	    -re " +\[0-9\]+ 0008 6F100010\[^\n\]*\n"   { set x [expr $x+1] }
   1864 	    -re " +\[0-9\]+ 000c 78106B20\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n"   { set x [expr $x+1] }
   1865 	    -re " +\[0-9\]+ 0014 6D10\[^\n\]*\n"   { set x [expr $x+1] }
   1866 	    -re " +\[0-9\]+ 0016 6B000000\[^\n\]*\n"   { set x [expr $x+1] }
   1867 	    -re " +\[0-9\]+ 001a 6B200000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1868 	    -re " +\[0-9\]+ 0020 6990\[^\n\]*\n"   { set x [expr $x+1] }
   1869 	    -re " +\[0-9\]+ 0022 6F900010\[^\n\]*\n"   { set x [expr $x+1] }
   1870 	    -re " +\[0-9\]+ 0026 78106BA0\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n"   { set x [expr $x+1] }
   1871 	    -re " +\[0-9\]+ 002e 6D90\[^\n\]*\n"   { set x [expr $x+1] }
   1872 	    -re " +\[0-9\]+ 0030 6B800000\[^\n\]*\n"   { set x [expr $x+1] }
   1873 	    -re " +\[0-9\]+ 0034 6BA00000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1874 	    eof					{ break }
   1875 	}
   1876     }
   1877 
   1878     # This was intended to do any cleanup necessary.  It kinda looks like it
   1879     # isn't needed, but just in case, please keep it in for now.
   1880     gas_finish
   1881 
   1882     # Did we find what we were looking for?  If not, flunk it.
   1883     if [expr $x == 14] then { pass $testname } else { fail $testname }
   1884 }
   1885 
   1886 
   1887 proc do_h8300s_movl {} {
   1888     set testname "movls.s: h8300s movl tests"
   1889     set x 0
   1890 
   1891     gas_start "movls.s" "-al"
   1892 
   1893     # Check each instruction bit pattern to verify it got
   1894     # assembled correctly.
   1895     while 1 {
   1896 	expect {
   1897 	    -re " +\[0-9\]+ 0000 0F81\[^\n\]*\n"   { set x [expr $x+1] }
   1898 	    -re " +\[0-9\]+ 0002 7A000000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n"   { set x [expr $x+1] }
   1899 	    -re " +\[0-9\]+ 0008 01006910\[^\n\]*\n"   { set x [expr $x+1] }
   1900 	    -re " +\[0-9\]+ 000c 01006F10\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n"   { set x [expr $x+1] }
   1901 	    -re " +\[0-9\]+ 0012 01007810\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n"   { set x [expr $x+1] }
   1902 	    -re " +\[0-9\]+ 001c 01006D10\[^\n\]*\n"   { set x [expr $x+1] }
   1903 	    -re " +\[0-9\]+ 0020 01006B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1904 	    -re " +\[0-9\]+ 0026 01006B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n"   { set x [expr $x+1] }
   1905 	    -re " +\[0-9\]+ 002e 01006990\[^\n\]*\n"   { set x [expr $x+1] }
   1906 	    -re " +\[0-9\]+ 0032 01006F90\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n"   { set x [expr $x+1] }
   1907 	    -re " +\[0-9\]+ 0038 01007890\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n"   { set x [expr $x+1] }
   1908 	    -re " +\[0-9\]+ 0042 01006D90\[^\n\]*\n"   { set x [expr $x+1] }
   1909 	    -re " +\[0-9\]+ 0046 01006B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n"   { set x [expr $x+1] }
   1910 	    -re " +\[0-9\]+ 004c 01006BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n"   { set x [expr $x+1] }
   1911 	    eof					{ break }
   1912 	}
   1913     }
   1914 
   1915     # This was intended to do any cleanup necessary.  It kinda looks like it
   1916     # isn't needed, but just in case, please keep it in for now.
   1917     gas_finish
   1918 
   1919     # Did we find what we were looking for?  If not, flunk it.
   1920     if [expr $x == 14] then { pass $testname } else { fail $testname }
   1921 }
   1922 
   1923 proc do_h8300s_pushpop {} {
   1924     set testname "pushpops.s: h8300s pushpop tests"
   1925     set x 0
   1926 
   1927     gas_start "pushpops.s" "-al"
   1928 
   1929     # Check each instruction bit pattern to verify it got
   1930     # assembled correctly.
   1931     while 1 {
   1932 	expect {
   1933 	    -re " +\[0-9\]+ 0000 6D70\[^\n\]*\n"   { set x [expr $x+1] }
   1934 	    -re " +\[0-9\]+ 0002 01006D70\[^\n\]*\n"   { set x [expr $x+1] }
   1935 	    -re " +\[0-9\]+ 0006 6DF0\[^\n\]*\n"   { set x [expr $x+1] }
   1936 	    -re " +\[0-9\]+ 0008 01006DF0\[^\n\]*\n"   { set x [expr $x+1] }
   1937 	    eof					{ break }
   1938 	}
   1939     }
   1940 
   1941     # This was intended to do any cleanup necessary.  It kinda looks like it
   1942     # isn't needed, but just in case, please keep it in for now.
   1943     gas_finish
   1944 
   1945     # Did we find what we were looking for?  If not, flunk it.
   1946     if [expr $x == 4] then { pass $testname } else { fail $testname }
   1947 }
   1948 
   1949 proc do_h8300s_rotate_shift {} {
   1950     set testname "rotshs.s: h8300s rotate and shift tests"
   1951     set x 0
   1952 
   1953     gas_start "rotshs.s" "-al"
   1954 
   1955     # Check each instruction bit pattern to verify it got
   1956     # assembled correctly.
   1957     while 1 {
   1958 	expect {
   1959 	    -re " +\[0-9\]+ 0000 1288\[^\n\]*\n"   { set x [expr $x+1] }
   1960 	    -re " +\[0-9\]+ 0002 12C8\[^\n\]*\n"   { set x [expr $x+1] }
   1961 	    -re " +\[0-9\]+ 0004 1290\[^\n\]*\n"   { set x [expr $x+1] }
   1962 	    -re " +\[0-9\]+ 0006 12D0\[^\n\]*\n"   { set x [expr $x+1] }
   1963 	    -re " +\[0-9\]+ 0008 12B0\[^\n\]*\n"   { set x [expr $x+1] }
   1964 	    -re " +\[0-9\]+ 000a 12F0\[^\n\]*\n"   { set x [expr $x+1] }
   1965 	    -re " +\[0-9\]+ 000c 1388\[^\n\]*\n"   { set x [expr $x+1] }
   1966 	    -re " +\[0-9\]+ 000e 13C8\[^\n\]*\n"   { set x [expr $x+1] }
   1967 	    -re " +\[0-9\]+ 0010 1390\[^\n\]*\n"   { set x [expr $x+1] }
   1968 	    -re " +\[0-9\]+ 0012 13D0\[^\n\]*\n"   { set x [expr $x+1] }
   1969 	    -re " +\[0-9\]+ 0014 13B0\[^\n\]*\n"   { set x [expr $x+1] }
   1970 	    -re " +\[0-9\]+ 0016 13F0\[^\n\]*\n"   { set x [expr $x+1] }
   1971 	    -re " +\[0-9\]+ 0018 1208\[^\n\]*\n"   { set x [expr $x+1] }
   1972 	    -re " +\[0-9\]+ 001a 1248\[^\n\]*\n"   { set x [expr $x+1] }
   1973 	    -re " +\[0-9\]+ 001c 1210\[^\n\]*\n"   { set x [expr $x+1] }
   1974 	    -re " +\[0-9\]+ 001e 1250\[^\n\]*\n"   { set x [expr $x+1] }
   1975 	    -re " +\[0-9\]+ 0020 1230\[^\n\]*\n"   { set x [expr $x+1] }
   1976 	    -re " +\[0-9\]+ 0022 1270\[^\n\]*\n"   { set x [expr $x+1] }
   1977 	    -re " +\[0-9\]+ 0024 1308\[^\n\]*\n"   { set x [expr $x+1] }
   1978 	    -re " +\[0-9\]+ 0026 1348\[^\n\]*\n"   { set x [expr $x+1] }
   1979 	    -re " +\[0-9\]+ 0028 1310\[^\n\]*\n"   { set x [expr $x+1] }
   1980 	    -re " +\[0-9\]+ 002a 1350\[^\n\]*\n"   { set x [expr $x+1] }
   1981 	    -re " +\[0-9\]+ 002c 1330\[^\n\]*\n"   { set x [expr $x+1] }
   1982 	    -re " +\[0-9\]+ 002e 1370\[^\n\]*\n"   { set x [expr $x+1] }
   1983 	    -re " +\[0-9\]+ 0030 1088\[^\n\]*\n"   { set x [expr $x+1] }
   1984 	    -re " +\[0-9\]+ 0032 10C8\[^\n\]*\n"   { set x [expr $x+1] }
   1985 	    -re " +\[0-9\]+ 0034 1090\[^\n\]*\n"   { set x [expr $x+1] }
   1986 	    -re " +\[0-9\]+ 0036 10D0\[^\n\]*\n"   { set x [expr $x+1] }
   1987 	    -re " +\[0-9\]+ 0038 10B0\[^\n\]*\n"   { set x [expr $x+1] }
   1988 	    -re " +\[0-9\]+ 003a 10F0\[^\n\]*\n"   { set x [expr $x+1] }
   1989 	    -re " +\[0-9\]+ 003c 1188\[^\n\]*\n"   { set x [expr $x+1] }
   1990 	    -re " +\[0-9\]+ 003e 11C8\[^\n\]*\n"   { set x [expr $x+1] }
   1991 	    -re " +\[0-9\]+ 0040 1190\[^\n\]*\n"   { set x [expr $x+1] }
   1992 	    -re " +\[0-9\]+ 0042 11D0\[^\n\]*\n"   { set x [expr $x+1] }
   1993 	    -re " +\[0-9\]+ 0044 11B0\[^\n\]*\n"   { set x [expr $x+1] }
   1994 	    -re " +\[0-9\]+ 0046 11F0\[^\n\]*\n"   { set x [expr $x+1] }
   1995 	    -re " +\[0-9\]+ 0048 1008\[^\n\]*\n"   { set x [expr $x+1] }
   1996 	    -re " +\[0-9\]+ 004a 1048\[^\n\]*\n"   { set x [expr $x+1] }
   1997 	    -re " +\[0-9\]+ 004c 1010\[^\n\]*\n"   { set x [expr $x+1] }
   1998 	    -re " +\[0-9\]+ 004e 1050\[^\n\]*\n"   { set x [expr $x+1] }
   1999 	    -re " +\[0-9\]+ 0050 1030\[^\n\]*\n"   { set x [expr $x+1] }
   2000 	    -re " +\[0-9\]+ 0052 1070\[^\n\]*\n"   { set x [expr $x+1] }
   2001 	    -re " +\[0-9\]+ 0054 1108\[^\n\]*\n"   { set x [expr $x+1] }
   2002 	    -re " +\[0-9\]+ 0056 1148\[^\n\]*\n"   { set x [expr $x+1] }
   2003 	    -re " +\[0-9\]+ 0058 1110\[^\n\]*\n"   { set x [expr $x+1] }
   2004 	    -re " +\[0-9\]+ 005a 1150\[^\n\]*\n"   { set x [expr $x+1] }
   2005 	    -re " +\[0-9\]+ 005c 1130\[^\n\]*\n"   { set x [expr $x+1] }
   2006 	    -re " +\[0-9\]+ 005e 1170\[^\n\]*\n"   { set x [expr $x+1] }
   2007 	    eof					{ break }
   2008 	}
   2009     }
   2010 
   2011     # This was intended to do any cleanup necessary.  It kinda looks like it
   2012     # isn't needed, but just in case, please keep it in for now.
   2013     gas_finish
   2014 
   2015     # Did we find what we were looking for?  If not, flunk it.
   2016     if [expr $x == 48] then { pass $testname } else { fail $testname }
   2017 }
   2018 
   2019 proc do_h8300s_extend {} {
   2020     set testname "extends.s: h8300s extend tests"
   2021     set x 0
   2022 
   2023     gas_start "extends.s" "-al"
   2024 
   2025     # Check each instruction bit pattern to verify it got
   2026     # assembled correctly.
   2027     while 1 {
   2028 	expect {
   2029 	    -re " +\[0-9\]+ 0000 17D0\[^\n\]*\n"   { set x [expr $x+1] }
   2030 	    -re " +\[0-9\]+ 0002 17F0\[^\n\]*\n"   { set x [expr $x+1] }
   2031 	    -re " +\[0-9\]+ 0004 1750\[^\n\]*\n"   { set x [expr $x+1] }
   2032 	    -re " +\[0-9\]+ 0006 1770\[^\n\]*\n"   { set x [expr $x+1] }
   2033 	    eof					{ break }
   2034 	}
   2035     }
   2036 
   2037     # This was intended to do any cleanup necessary.  It kinda looks like it
   2038     # isn't needed, but just in case, please keep it in for now.
   2039     gas_finish
   2040 
   2041     # Did we find what we were looking for?  If not, flunk it.
   2042     if [expr $x == 4] then { pass $testname } else { fail $testname }
   2043 }
   2044 
   2045 proc do_h8300s_mac {} {
   2046     set testname "macs.s: h8300s mac tests"
   2047     set x 0
   2048 
   2049     gas_start "macs.s" "-al"
   2050 
   2051     # Check each instruction bit pattern to verify it got
   2052     # assembled correctly.
   2053     while 1 {
   2054 	expect {
   2055  	    -re " +\[0-9\]+ 0000 01A0\[^\n\]*\n"   { set x [expr $x+1] }
   2056 	    -re " +\[0-9\]+ 0002 0324\[^\n\]*\n"   { set x [expr $x+1] }
   2057 	    -re " +\[0-9\]+ 0004 0335\[^\n\]*\n"   { set x [expr $x+1] }
   2058 	    -re " +\[0-9\]+ 0006 01606D45\[^\n\]*\n"   { set x [expr $x+1] }
   2059 	    -re " +\[0-9\]+ 000a 0224\[^\n\]*\n"   { set x [expr $x+1] }
   2060 	    -re " +\[0-9\]+ 000c 0235\[^\n\]*\n"   { set x [expr $x+1] }
   2061 	    eof					{ break }
   2062 	}
   2063     }
   2064 
   2065     # This was intended to do any cleanup necessary.  It kinda looks like it
   2066     # isn't needed, but just in case, please keep it in for now.
   2067     gas_finish
   2068 
   2069     # Did we find what we were looking for?  If not, flunk it.
   2070     if [expr $x == 6] then { pass $testname } else { fail $testname }
   2071 }
   2072 
   2073 proc do_h8300s_multiple {} {
   2074     set testname "multiples.s: h8300s multiple tests"
   2075     set x 0
   2076 
   2077     gas_start "multiples.s" "-al"
   2078 
   2079     # Check each instruction bit pattern to verify it got
   2080     # assembled correctly.
   2081     while 1 {
   2082 	expect {
   2083 	    -re " +\[0-9\]+ 0000 01106D71\[^\n\]*\n"   { set x [expr $x+1] }
   2084 	    -re " +\[0-9\]+ 0004 01206D72\[^\n\]*\n"   { set x [expr $x+1] }
   2085 	    -re " +\[0-9\]+ 0008 01306D73\[^\n\]*\n"   { set x [expr $x+1] }
   2086 	    -re " +\[0-9\]+ 000c 01106DF0\[^\n\]*\n"   { set x [expr $x+1] }
   2087 	    -re " +\[0-9\]+ 0010 01206DF0\[^\n\]*\n"   { set x [expr $x+1] }
   2088 	    -re " +\[0-9\]+ 0014 01306DF0\[^\n\]*\n"   { set x [expr $x+1] }
   2089             -re " +\[0-9\]+ 0018 01106D73\[^\n\]*\n"   { set x [expr $x+1] }
   2090             -re " +\[0-9\]+ 001c 01106DF2\[^\n\]*\n"   { set x [expr $x+1] }
   2091             -re " +\[0-9\]+ 0020 01106D75\[^\n\]*\n"   { set x [expr $x+1] }
   2092             -re " +\[0-9\]+ 0024 01206D76\[^\n\]*\n"   { set x [expr $x+1] }
   2093             -re " +\[0-9\]+ 0028 01106DF4\[^\n\]*\n"   { set x [expr $x+1] }
   2094             -re " +\[0-9\]+ 002c 01206DF4\[^\n\]*\n"   { set x [expr $x+1] }
   2095 
   2096 	    eof					{ break }
   2097 	}
   2098     }
   2099 
   2100     # This was intended to do any cleanup necessary.  It kinda looks like it
   2101     # isn't needed, but just in case, please keep it in for now.
   2102     gas_finish
   2103 
   2104     # Did we find what we were looking for?  If not, flunk it.
   2105     if [expr $x == 12] then { pass $testname } else { fail $testname }
   2106 }
   2107 
   2108 proc do_h8300h_mov32bug {} {
   2109     set testname "mov32bug.s: h8300h mov32bug test"
   2110     set x 0
   2111 
   2112     if [gas_test_old "mov32bug.s" "" "Proper relocation for mov.l (part 1)"] then {
   2113         objdump_start_no_subdir "a.out" "-r"
   2114 
   2115 	while 1 {
   2116 	    expect {
   2117 		-re "00000002\[^\n\]*32\[^\n\]*_a-0x77359400\[^\n\]*\n"
   2118 						{ set x [expr $x+1] }
   2119 		timeout 			{ perror "timeout\n; break }
   2120 		eof				{ break }
   2121 	    }
   2122 	}
   2123     }
   2124 
   2125     # This was intended to do any cleanup necessary.  It kinda looks like it
   2126     # isn't needed, but just in case, please keep it in for now.
   2127     objdump_finish
   2128 
   2129     # Did we find what we were looking for?  If not, flunk it.
   2130     if [expr $x == 1] then { pass $testname } else { fail $testname }
   2131 }
   2132 
   2133 proc do_h8300hn_addressgen {} {
   2134     set testname "symaddgen.s: h8300hn symbol address generation"
   2135     set x 0
   2136 
   2137     gas_start "symaddgen.s" "-al"
   2138 
   2139     # Check each instruction bit pattern to verify it got
   2140     # assembled correctly.
   2141     while 1 {
   2142 	expect {
   2143 	    -re " +\[0-9\]+ .* 01006DF6\[^\n\]*\n"   { set x [expr $x+1] }
   2144 	    -re " +\[0-9\]+ .* 0D76\[^\n\]*\n"       { set x [expr $x+1] }
   2145 	    -re " +\[0-9\]+ .* 790207D0\[^\n\]*\n"   { set x [expr $x+1] }
   2146 	    -re " +\[0-9\]+ .* 6B82F020\[^\n\]*\n"   { set x [expr $x+1] }
   2147 	    -re " +\[0-9\]+ .* 79022710\[^\n\]*\n"   { set x [expr $x+1] }
   2148 	    -re " +\[0-9\]+ .* 6B820000\[^\n\]*\n"   { set x [expr $x+1] }
   2149 	    -re " +\[0-9\]+ .* 01006D76\[^\n\]*\n"   { set x [expr $x+1] }
   2150 	    -re " +\[0-9\]+ .* 5470\[^\n\]*\n"       { set x [expr $x+1] }
   2151 
   2152 	    eof					{ break }
   2153 	}
   2154     }
   2155     # This was intended to do any cleanup necessary.  It kinda looks like it
   2156     # isn't needed, but just in case, please keep it in for now.
   2157     gas_finish
   2158     # Did we find what we were looking for?  If not, flunk it.
   2159     if [expr $x == 8] then { pass $testname } else { fail $testname }
   2160 }
   2161 
   2162 proc do_h8300_addsubrxcheck {} {
   2163     set testname "addsubrxcheck.s: h8300 check rx generation for adds subs instructions"
   2164     set x 0
   2165 
   2166     gas_start "addsubrxcheck.s" "-al"
   2167 
   2168     # Check each instruction bit pattern to verify it got
   2169     # assembled correctly.
   2170     while 1 {
   2171 	expect {
   2172 	    -re " +\[0-9\]+ .* 6DF6\[^\n\]*\n"       { set x [expr $x+1] }
   2173 	    -re " +\[0-9\]+ .* 0D76\[^\n\]*\n"       { set x [expr $x+1] }
   2174 	    -re " +\[0-9\]+ .* 1B87\[^\n\]*\n"       { set x [expr $x+1] }
   2175 	    -re " +\[0-9\]+ .* 6F62FFFE\[^\n\]*\n"   { set x [expr $x+1] }
   2176 	    -re " +\[0-9\]+ .* 1B82\[^\n\]*\n"       { set x [expr $x+1] }
   2177 	    -re " +\[0-9\]+ .* 6FE2FFFE\[^\n\]*\n"   { set x [expr $x+1] }
   2178 	    -re " +\[0-9\]+ .* 1922\[^\n\]*\n"       { set x [expr $x+1] }
   2179 	    -re " +\[0-9\]+ .* 0D20\[^\n\]*\n"       { set x [expr $x+1] }
   2180 	    -re " +\[0-9\]+ .* 0B87\[^\n\]*\n"       { set x [expr $x+1] }
   2181 	    -re " +\[0-9\]+ .* 6D76\[^\n\]*\n"       { set x [expr $x+1] }
   2182 	    -re " +\[0-9\]+ .* 5470\[^\n\]*\n"       { set x [expr $x+1] }
   2183 
   2184 	    eof					{ break }
   2185 	}
   2186     }
   2187     # This was intended to do any cleanup necessary.  It kinda looks like it
   2188     # isn't needed, but just in case, please keep it in for now.
   2189     gas_finish
   2190     # Did we find what we were looking for?  If not, flunk it.
   2191     if [expr $x == 11] then { pass $testname } else { fail $testname }
   2192 }
   2193 
   2194 if [istarget h8300*-*-*] then {
   2195     # Test the basic h8300 instruction parser
   2196     do_h8300_add_sub
   2197     do_h8300_logical
   2198     do_h8300_bitops1
   2199     do_h8300_bitops2
   2200     do_h8300_bitops3
   2201     do_h8300_bitops4
   2202     do_h8300_compare
   2203     do_h8300_decimal
   2204     do_h8300_incdec
   2205     do_h8300_divmul
   2206     do_h8300_misc
   2207     do_h8300_movb
   2208     do_h8300_movw
   2209     do_h8300_pushpop
   2210     do_h8300_rotate_shift
   2211     do_h8300hn_addressgen
   2212 
   2213     do_h8300_addsubrxcheck
   2214 
   2215     # Now test the h8300h instruction parser
   2216     do_h8300h_add_sub
   2217     do_h8300h_logical
   2218     do_h8300h_bitops1
   2219     do_h8300h_bitops2
   2220     do_h8300h_bitops3
   2221     do_h8300h_bitops4
   2222     do_h8300h_compare
   2223     do_h8300h_decimal
   2224     do_h8300h_incdec
   2225     do_h8300h_divmul
   2226     do_h8300h_misc
   2227     do_h8300h_movb
   2228     do_h8300h_movw
   2229     do_h8300h_movl
   2230     do_h8300_pushpop
   2231     do_h8300h_rotate_shift
   2232     do_h8300h_extend
   2233 
   2234     # Now test the h8300s instruction parser
   2235     do_h8300s_add_sub
   2236     do_h8300s_logical
   2237     do_h8300s_bitops1
   2238     do_h8300s_bitops2
   2239     do_h8300s_bitops3
   2240     do_h8300s_bitops4
   2241     do_h8300s_compare
   2242     do_h8300s_decimal
   2243     do_h8300s_incdec
   2244     do_h8300s_divmul
   2245     do_h8300s_misc
   2246     do_h8300s_movb
   2247     do_h8300s_movw
   2248     do_h8300s_movl
   2249     do_h8300_pushpop
   2250     do_h8300s_rotate_shift
   2251     do_h8300s_extend
   2252     do_h8300s_mac
   2253     do_h8300s_multiple
   2254 
   2255     do_h8300h_mov32bug
   2256 
   2257     # Now some random tests
   2258     set svr4pic [expr [istarget *-*-elf*] || [istarget *-*-irix5*] ]
   2259     set empic [expr [istarget *-*-ecoff*] || [istarget *-*-ultrix*] || [istarget *-*-irix\[1-4\]*] ]
   2260     set aout [expr [istarget *-*-bsd*] || [istarget *-*-netbsd*]]
   2261 
   2262     gas_test "cmpsi2.s" "" "" "cmpsi2.s"
   2263 
   2264     run_dump_test "pr3134"
   2265 }
   2266