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 h8300sx tests -- t12_bit
     19 #
     20 
     21 proc do_t12_bit_test {} {
     22     set testname "t12_bit.s -- h8sx bit tests"
     23 
     24     gas_start "t12_bit.s" "-al"
     25 
     26     # Check each instruction bit pattern to verify it got assembled correctly.
     27 
     28     set x 0
     29     expect {
     30 	-re ".*   7 0000 7071" { set x [expr $x+1]; exp_continue; }
     31 	-re ".*   8 0002 7D107070" { set x [expr $x+1]; exp_continue; }
     32 	-re ".*   9 0006 7F127070" { set x [expr $x+1]; exp_continue; }
     33 	-re ".*  10 000a 6A181234" { set x [expr $x+1]; exp_continue; }
     34 	-re ".*  10      7070" { set x [expr $x+1]; exp_continue; }
     35 	-re ".*  11 0010 6A381234" { set x [expr $x+1]; exp_continue; }
     36 	-re ".*  11      56787070" { set x [expr $x+1]; exp_continue; }
     37 	-re ".*  12              " {
     38 	    if [expr $x == 7] then {
     39 		pass "$testname: bset #0x7, ..."
     40 	    } else {
     41 		fail "$testname: bset #0x7, ... ($x)"
     42 	    }
     43 	}
     44         default	{ fail "$testname: bset #0x7, ... ($x)" }
     45     }
     46 
     47     set x 0
     48     expect {
     49 	-re ".*  13 0018 6031" { set x [expr $x+1]; exp_continue; }
     50 	-re ".*  14 001a 7D106030" { set x [expr $x+1]; exp_continue; }
     51 	-re ".*  15 001e 7F126030" { set x [expr $x+1]; exp_continue; }
     52 	-re ".*  16 0022 6A181234" { set x [expr $x+1]; exp_continue; }
     53 	-re ".*  16      6030" { set x [expr $x+1]; exp_continue; }
     54 	-re ".*  17 0028 6A381234" { set x [expr $x+1]; exp_continue; }
     55 	-re ".*  17      56786030" { set x [expr $x+1]; exp_continue; }
     56 	-re ".*  18              " {
     57 	    if [expr $x == 7] then {
     58 		pass "$testname: bset r3h, ..."
     59 	    } else {
     60 		fail "$testname: bset r3h, ... ($x)"
     61 	    }
     62 	}
     63         default	{ fail "$testname: bset r3h, ... ($x)" }
     64     }
     65 
     66     set x 0
     67     expect {
     68 	-re ".*  19 0030 7D107077" { set x [expr $x+1]; exp_continue; }
     69 	-re ".*  20 0034 7F127077" { set x [expr $x+1]; exp_continue; }
     70 	-re ".*  21 0038 6A181234" { set x [expr $x+1]; exp_continue; }
     71 	-re ".*  21      7077" { set x [expr $x+1]; exp_continue; }
     72 	-re ".*  22 003e 6A381234" { set x [expr $x+1]; exp_continue; }
     73 	-re ".*  22      56787077" { set x [expr $x+1]; exp_continue; }
     74 	-re ".*  23              " {
     75 	    if [expr $x == 6] then {
     76 		pass "$testname: bset/eq #0x7, ..."
     77 	    } else {
     78 		fail "$testname: bset/eq #0x7, ... ($x)"
     79 	    }
     80 	}
     81         default	{ fail "$testname: bset/eq #0x7, ... ($x)" }
     82     }
     83 
     84     set x 0
     85     expect {
     86 	-re ".*  24 0046 7D106037" { set x [expr $x+1]; exp_continue; }
     87 	-re ".*  25 004a 7F126037" { set x [expr $x+1]; exp_continue; }
     88 	-re ".*  26 004e 6A181234" { set x [expr $x+1]; exp_continue; }
     89 	-re ".*  26      6037" { set x [expr $x+1]; exp_continue; }
     90 	-re ".*  27 0054 6A381234" { set x [expr $x+1]; exp_continue; }
     91 	-re ".*  27      56786037" { set x [expr $x+1]; exp_continue; }
     92 	-re ".*  28              " {
     93 	    if [expr $x == 6] then {
     94 		pass "$testname: bset/eq r3h, ..."
     95 	    } else {
     96 		fail "$testname: bset/eq r3h, ... ($x)"
     97 	    }
     98 	}
     99         default	{ fail "$testname: bset/eq r3h, ... ($x)" }
    100     }
    101 
    102     set x 0
    103     expect {
    104 	-re ".*  29 005c 7D107076" { set x [expr $x+1]; exp_continue; }
    105 	-re ".*  30 0060 7F127076" { set x [expr $x+1]; exp_continue; }
    106 	-re ".*  31 0064 6A181234" { set x [expr $x+1]; exp_continue; }
    107 	-re ".*  31      7076" { set x [expr $x+1]; exp_continue; }
    108 	-re ".*  32 006a 6A381234" { set x [expr $x+1]; exp_continue; }
    109 	-re ".*  32      56787076" { set x [expr $x+1]; exp_continue; }
    110 	-re ".*  33              " {
    111 	    if [expr $x == 6] then {
    112 		pass "$testname: bset/ne #0x7, ..."
    113 	    } else {
    114 		fail "$testname: bset/ne #0x7, ... ($x)"
    115 	    }
    116 	}
    117         default	{ fail "$testname: bset/ne #0x7, ... ($x)" }
    118     }
    119 
    120     set x 0
    121     expect {
    122 	-re ".*  34 0072 7D106036" { set x [expr $x+1]; exp_continue; }
    123 	-re ".*  35 0076 7F126036" { set x [expr $x+1]; exp_continue; }
    124 	-re ".*  36 007a 6A181234" { set x [expr $x+1]; exp_continue; }
    125 	-re ".*  36      6036" { set x [expr $x+1]; exp_continue; }
    126 	-re ".*  37 0080 6A381234" { set x [expr $x+1]; exp_continue; }
    127 	-re ".*  37      56786036" { set x [expr $x+1]; exp_continue; }
    128 	-re ".*  38              " {
    129 	    if [expr $x == 6] then {
    130 		pass "$testname: bset/ne r3h, ..."
    131 	    } else {
    132 		fail "$testname: bset/ne r3h, ... ($x)"
    133 	    }
    134 	}
    135         default	{ fail "$testname: bset/ne r3h, ... ($x)" }
    136     }
    137 
    138     set x 0
    139     expect {
    140 	-re ".*  39 0088 7171" { set x [expr $x+1]; exp_continue; }
    141 	-re ".*  40 008a 7D107170" { set x [expr $x+1]; exp_continue; }
    142 	-re ".*  41 008e 7F127170" { set x [expr $x+1]; exp_continue; }
    143 	-re ".*  42 0092 6A181234" { set x [expr $x+1]; exp_continue; }
    144 	-re ".*  42      7170" { set x [expr $x+1]; exp_continue; }
    145 	-re ".*  43 0098 6A381234" { set x [expr $x+1]; exp_continue; }
    146 	-re ".*  43      56787170" { set x [expr $x+1]; exp_continue; }
    147 	-re ".*  44              " {
    148 	    if [expr $x == 7] then {
    149 		pass "$testname: bnot #0x7, ..."
    150 	    } else {
    151 		fail "$testname: bnot #0x7, ... ($x)"
    152 	    }
    153 	}
    154         default	{ fail "$testname: bnot #0x7, ... ($x)" }
    155     }
    156 
    157     set x 0
    158     expect {
    159 	-re ".*  45 00a0 6131" { set x [expr $x+1]; exp_continue; }
    160 	-re ".*  46 00a2 7D106130" { set x [expr $x+1]; exp_continue; }
    161 	-re ".*  47 00a6 7F126130" { set x [expr $x+1]; exp_continue; }
    162 	-re ".*  48 00aa 6A181234" { set x [expr $x+1]; exp_continue; }
    163 	-re ".*  48      6130" { set x [expr $x+1]; exp_continue; }
    164 	-re ".*  49 00b0 6A381234" { set x [expr $x+1]; exp_continue; }
    165 	-re ".*  49      56786130" { set x [expr $x+1]; exp_continue; }
    166 	-re ".*  50              " {
    167 	    if [expr $x == 7] then {
    168 		pass "$testname: bnot r3h, ..."
    169 	    } else {
    170 		fail "$testname: bnot r3h, ... ($x)"
    171 	    }
    172 	}
    173         default	{ fail "$testname: bnot r3h, ... ($x)" }
    174     }
    175 
    176     set x 0
    177     expect {
    178 	-re ".*  51 00b8 7271" { set x [expr $x+1]; exp_continue; }
    179 	-re ".*  52 00ba 7D107270" { set x [expr $x+1]; exp_continue; }
    180 	-re ".*  53 00be 7F127270" { set x [expr $x+1]; exp_continue; }
    181 	-re ".*  54 00c2 6A181234" { set x [expr $x+1]; exp_continue; }
    182 	-re ".*  54      7270" { set x [expr $x+1]; exp_continue; }
    183 	-re ".*  55 00c8 6A381234" { set x [expr $x+1]; exp_continue; }
    184 	-re ".*  55      56787270" { set x [expr $x+1]; exp_continue; }
    185 	-re ".*  56              " {
    186 	    if [expr $x == 7] then {
    187 		pass "$testname: bclr #0x7, ..."
    188 	    } else {
    189 		fail "$testname: bclr #0x7, ... ($x)"
    190 	    }
    191 	}
    192         default	{ fail "$testname: bclr #0x7, ... ($x)" }
    193     }
    194 
    195     set x 0
    196     expect {
    197 	-re ".*  57 00d0 6231" { set x [expr $x+1]; exp_continue; }
    198 	-re ".*  58 00d2 7D106230" { set x [expr $x+1]; exp_continue; }
    199 	-re ".*  59 00d6 7F126230" { set x [expr $x+1]; exp_continue; }
    200 	-re ".*  60 00da 6A181234" { set x [expr $x+1]; exp_continue; }
    201 	-re ".*  60      6230" { set x [expr $x+1]; exp_continue; }
    202 	-re ".*  61 00e0 6A381234" { set x [expr $x+1]; exp_continue; }
    203 	-re ".*  61      56786230" { set x [expr $x+1]; exp_continue; }
    204 	-re ".*  62              " {
    205 	    if [expr $x == 7] then {
    206 		pass "$testname: bclr r3h, ..."
    207 	    } else {
    208 		fail "$testname: bclr r3h, ... ($x)"
    209 	    }
    210 	}
    211         default	{ fail "$testname: bclr r3h, ... ($x)" }
    212     }
    213 
    214     set x 0
    215     expect {
    216 	-re ".*  63 00e8 7D107277" { set x [expr $x+1]; exp_continue; }
    217 	-re ".*  64 00ec 7F127277" { set x [expr $x+1]; exp_continue; }
    218 	-re ".*  65 00f0 6A181234" { set x [expr $x+1]; exp_continue; }
    219 	-re ".*  65      7277" { set x [expr $x+1]; exp_continue; }
    220 	-re ".*  66 00f6 6A381234" { set x [expr $x+1]; exp_continue; }
    221 	-re ".*  66      56787277" { set x [expr $x+1]; exp_continue; }
    222 	-re ".*  67              " {
    223 	    if [expr $x == 6] then {
    224 		pass "$testname: bclr/eq #0x7, ..."
    225 	    } else {
    226 		fail "$testname: bclr/eq #0x7, ... ($x)"
    227 	    }
    228 	}
    229         default	{ fail "$testname: bclr/eq #0x7, ... ($x)" }
    230     }
    231 
    232     set x 0
    233     expect {
    234 	-re ".*  68 00fe 7D106237" { set x [expr $x+1]; exp_continue; }
    235 	-re ".*  69 0102 7F126237" { set x [expr $x+1]; exp_continue; }
    236 	-re ".*  70 0106 6A181234" { set x [expr $x+1]; exp_continue; }
    237 	-re ".*  70      6237" { set x [expr $x+1]; exp_continue; }
    238 	-re ".*  71 010c 6A381234" { set x [expr $x+1]; exp_continue; }
    239 	-re ".*  71      56786237" { set x [expr $x+1]; exp_continue; }
    240 	-re ".*  72              " {
    241 	    if [expr $x == 6] then {
    242 		pass "$testname: bclr/eq r3h, ..."
    243 	    } else {
    244 		fail "$testname: bclr/eq r3h, ... ($x)"
    245 	    }
    246 	}
    247         default	{ fail "$testname: bclr/eq r3h, ... ($x)" }
    248     }
    249 
    250     set x 0
    251     expect {
    252 	-re ".*  73 0114 7D107276" { set x [expr $x+1]; exp_continue; }
    253 	-re ".*  74 0118 7F127276" { set x [expr $x+1]; exp_continue; }
    254 	-re ".*  75 011c 6A181234" { set x [expr $x+1]; exp_continue; }
    255 	-re ".*  75      7276" { set x [expr $x+1]; exp_continue; }
    256 	-re ".*  76 0122 6A381234" { set x [expr $x+1]; exp_continue; }
    257 	-re ".*  76      56787276" { set x [expr $x+1]; exp_continue; }
    258 	-re ".*  77              " {
    259 	    if [expr $x == 6] then {
    260 		pass "$testname: bclr/ne #0x7, ..."
    261 	    } else {
    262 		fail "$testname: bclr/ne #0x7, ... ($x)"
    263 	    }
    264 	}
    265         default	{ fail "$testname: bclr/ne #0x7, ... ($x)" }
    266     }
    267 
    268     set x 0
    269     expect {
    270 	-re ".*  78 012a 7D106236" { set x [expr $x+1]; exp_continue; }
    271 	-re ".*  79 012e 7F126236" { set x [expr $x+1]; exp_continue; }
    272 	-re ".*  80 0132 6A181234" { set x [expr $x+1]; exp_continue; }
    273 	-re ".*  80      6236" { set x [expr $x+1]; exp_continue; }
    274 	-re ".*  81 0138 6A381234" { set x [expr $x+1]; exp_continue; }
    275 	-re ".*  81      56786236" { set x [expr $x+1]; exp_continue; }
    276 	-re ".*  82              " {
    277 	    if [expr $x == 6] then {
    278 		pass "$testname: bclr/ne r3h, ..."
    279 	    } else {
    280 		fail "$testname: bclr/ne r3h, ... ($x)"
    281 	    }
    282 	}
    283         default	{ fail "$testname: bclr/ne r3h, ... ($x)" }
    284     }
    285 
    286     set x 0
    287     expect {
    288 	-re ".*  83 0140 7371" { set x [expr $x+1]; exp_continue; }
    289 	-re ".*  84 0142 7C107370" { set x [expr $x+1]; exp_continue; }
    290 	-re ".*  85 0146 7E127370" { set x [expr $x+1]; exp_continue; }
    291 	-re ".*  86 014a 6A101234" { set x [expr $x+1]; exp_continue; }
    292 	-re ".*  86      7370" { set x [expr $x+1]; exp_continue; }
    293 	-re ".*  87 0150 6A301234" { set x [expr $x+1]; exp_continue; }
    294 	-re ".*  87      56787370" { set x [expr $x+1]; exp_continue; }
    295 	-re ".*  88              " {
    296 	    if [expr $x == 7] then {
    297 		pass "$testname: btst #0x7, ..."
    298 	    } else {
    299 		fail "$testname: btst #0x7, ... ($x)"
    300 	    }
    301 	}
    302         default	{ fail "$testname: btst #0x7, ... ($x)" }
    303     }
    304 
    305     set x 0
    306     expect {
    307 	-re ".*  89 0158 6331" { set x [expr $x+1]; exp_continue; }
    308 	-re ".*  90 015a 7C106330" { set x [expr $x+1]; exp_continue; }
    309 	-re ".*  91 015e 7E126330" { set x [expr $x+1]; exp_continue; }
    310 	-re ".*  92 0162 6A101234" { set x [expr $x+1]; exp_continue; }
    311 	-re ".*  92      6330" { set x [expr $x+1]; exp_continue; }
    312 	-re ".*  93 0168 6A301234" { set x [expr $x+1]; exp_continue; }
    313 	-re ".*  93      56786330" { set x [expr $x+1]; exp_continue; }
    314 	-re ".*  94              " {
    315 	    if [expr $x == 7] then {
    316 		pass "$testname: btst r3h, ..."
    317 	    } else {
    318 		fail "$testname: btst r3h, ... ($x)"
    319 	    }
    320 	}
    321         default	{ fail "$testname: btst r3h, ... ($x)" }
    322     }
    323 
    324     set x 0
    325     expect {
    326 	-re ".*  95 0170 7471" { set x [expr $x+1]; exp_continue; }
    327 	-re ".*  96 0172 7C107470" { set x [expr $x+1]; exp_continue; }
    328 	-re ".*  97 0176 7E127470" { set x [expr $x+1]; exp_continue; }
    329 	-re ".*  98 017a 6A101234" { set x [expr $x+1]; exp_continue; }
    330 	-re ".*  98      7470" { set x [expr $x+1]; exp_continue; }
    331 	-re ".*  99 0180 6A301234" { set x [expr $x+1]; exp_continue; }
    332 	-re ".*  99      56787470" { set x [expr $x+1]; exp_continue; }
    333 	-re ".* 100              " {
    334 	    if [expr $x == 7] then {
    335 		pass "$testname: bor #0x7, ..."
    336 	    } else {
    337 		fail "$testname: bor #0x7, ... ($x)"
    338 	    }
    339 	}
    340         default	{ fail "$testname: bor #0x7, ... ($x)" }
    341     }
    342 
    343     set x 0
    344     expect {
    345 	-re ".* 101 0188 74F1" { set x [expr $x+1]; exp_continue; }
    346 	-re ".* 102 018a 7C1074F0" { set x [expr $x+1]; exp_continue; }
    347 	-re ".* 103 018e 7E1274F0" { set x [expr $x+1]; exp_continue; }
    348 	-re ".* 104 0192 6A101234" { set x [expr $x+1]; exp_continue; }
    349 	-re ".* 104      74F0" { set x [expr $x+1]; exp_continue; }
    350 	-re ".* 105 0198 6A301234" { set x [expr $x+1]; exp_continue; }
    351 	-re ".* 105      567874F0" { set x [expr $x+1]; exp_continue; }
    352 	-re ".* 106              " {
    353 	    if [expr $x == 7] then {
    354 		pass "$testname: bior #0x7, ..."
    355 	    } else {
    356 		fail "$testname: bior #0x7, ... ($x)"
    357 	    }
    358 	}
    359         default	{ fail "$testname: bior #0x7, ... ($x)" }
    360     }
    361 
    362     set x 0
    363     expect {
    364 	-re ".* 107 01a0 7571" { set x [expr $x+1]; exp_continue; }
    365 	-re ".* 108 01a2 7C107570" { set x [expr $x+1]; exp_continue; }
    366 	-re ".* 109 01a6 7E127570" { set x [expr $x+1]; exp_continue; }
    367 	-re ".* 110 01aa 6A101234" { set x [expr $x+1]; exp_continue; }
    368 	-re ".* 110      7570" { set x [expr $x+1]; exp_continue; }
    369 	-re ".* 111 01b0 6A301234" { set x [expr $x+1]; exp_continue; }
    370 	-re ".* 111      56787570" { set x [expr $x+1]; exp_continue; }
    371 	-re ".* 112              " {
    372 	    if [expr $x == 7] then {
    373 		pass "$testname: bxor #0x7, ..."
    374 	    } else {
    375 		fail "$testname: bxor #0x7, ... ($x)"
    376 	    }
    377 	}
    378         default	{ fail "$testname: bxor #0x7, ... ($x)" }
    379     }
    380 
    381     set x 0
    382     expect {
    383 	-re ".* 113 01b8 75F1" { set x [expr $x+1]; exp_continue; }
    384 	-re ".* 114 01ba 7C1075F0" { set x [expr $x+1]; exp_continue; }
    385 	-re ".* 115 01be 7E1275F0" { set x [expr $x+1]; exp_continue; }
    386 	-re ".* 116 01c2 6A101234" { set x [expr $x+1]; exp_continue; }
    387 	-re ".* 116      75F0" { set x [expr $x+1]; exp_continue; }
    388 	-re ".* 117 01c8 6A301234" { set x [expr $x+1]; exp_continue; }
    389 	-re ".* 117      567875F0" { set x [expr $x+1]; exp_continue; }
    390 	-re ".* 118              " {
    391 	    if [expr $x == 7] then {
    392 		pass "$testname: bixor #0x7, ..."
    393 	    } else {
    394 		fail "$testname: bixor #0x7, ... ($x)"
    395 	    }
    396 	}
    397         default	{ fail "$testname: bixor #0x7, ... ($x)" }
    398     }
    399 
    400     set x 0
    401     expect {
    402 	-re ".* 119 01d0 7671" { set x [expr $x+1]; exp_continue; }
    403 	-re ".* 120 01d2 7C107670" { set x [expr $x+1]; exp_continue; }
    404 	-re ".* 121 01d6 7E127670" { set x [expr $x+1]; exp_continue; }
    405 	-re ".* 122 01da 6A101234" { set x [expr $x+1]; exp_continue; }
    406 	-re ".* 122      7670" { set x [expr $x+1]; exp_continue; }
    407 	-re ".* 123 01e0 6A301234" { set x [expr $x+1]; exp_continue; }
    408 	-re ".* 123      56787670" { set x [expr $x+1]; exp_continue; }
    409 	-re ".* 124              " {
    410 	    if [expr $x == 7] then {
    411 		pass "$testname: band #0x7, ..."
    412 	    } else {
    413 		fail "$testname: band #0x7, ... ($x)"
    414 	    }
    415 	}
    416         default	{ fail "$testname: band #0x7, ... ($x)" }
    417     }
    418 
    419     set x 0
    420     expect {
    421 	-re ".* 125 01e8 76F1" { set x [expr $x+1]; exp_continue; }
    422 	-re ".* 126 01ea 7C1076F0" { set x [expr $x+1]; exp_continue; }
    423 	-re ".* 127 01ee 7E1276F0" { set x [expr $x+1]; exp_continue; }
    424 	-re ".* 128 01f2 6A101234" { set x [expr $x+1]; exp_continue; }
    425 	-re ".* 128      76F0" { set x [expr $x+1]; exp_continue; }
    426 	-re ".* 129 01f8 6A301234" { set x [expr $x+1]; exp_continue; }
    427 	-re ".* 129      567876F0" { set x [expr $x+1]; exp_continue; }
    428 	-re ".* 130              " {
    429 	    if [expr $x == 7] then {
    430 		pass "$testname: biand #0x7, ..."
    431 	    } else {
    432 		fail "$testname: biand #0x7, ... ($x)"
    433 	    }
    434 	}
    435         default	{ fail "$testname: biand #0x7, ... ($x)" }
    436     }
    437 
    438     set x 0
    439     expect {
    440 	-re ".* 131 0200 7771" { set x [expr $x+1]; exp_continue; }
    441 	-re ".* 132 0202 7C107770" { set x [expr $x+1]; exp_continue; }
    442 	-re ".* 133 0206 7E127770" { set x [expr $x+1]; exp_continue; }
    443 	-re ".* 134 020a 6A101234" { set x [expr $x+1]; exp_continue; }
    444 	-re ".* 134      7770" { set x [expr $x+1]; exp_continue; }
    445 	-re ".* 135 0210 6A301234" { set x [expr $x+1]; exp_continue; }
    446 	-re ".* 135      56787770" { set x [expr $x+1]; exp_continue; }
    447 	-re ".* 136              " {
    448 	    if [expr $x == 7] then {
    449 		pass "$testname: bld #0x7, ..."
    450 	    } else {
    451 		fail "$testname: bld #0x7, ... ($x)"
    452 	    }
    453 	}
    454         default	{ fail "$testname: bld #0x7, ... ($x)" }
    455     }
    456 
    457     set x 0
    458     expect {
    459 	-re ".* 137 0218 77F1" { set x [expr $x+1]; exp_continue; }
    460 	-re ".* 138 021a 7C1077F0" { set x [expr $x+1]; exp_continue; }
    461 	-re ".* 139 021e 7E1277F0" { set x [expr $x+1]; exp_continue; }
    462 	-re ".* 140 0222 6A101234" { set x [expr $x+1]; exp_continue; }
    463 	-re ".* 140      77F0" { set x [expr $x+1]; exp_continue; }
    464 	-re ".* 141 0228 6A301234" { set x [expr $x+1]; exp_continue; }
    465 	-re ".* 141      567877F0" { set x [expr $x+1]; exp_continue; }
    466 	-re ".* 142              " {
    467 	    if [expr $x == 7] then {
    468 		pass "$testname: bild #0x7, ..."
    469 	    } else {
    470 		fail "$testname: bild #0x7, ... ($x)"
    471 	    }
    472 	}
    473         default	{ fail "$testname: bild #0x7, ... ($x)" }
    474     }
    475 
    476     set x 0
    477     expect {
    478 	-re ".* 143 0230 6771" { set x [expr $x+1]; exp_continue; }
    479 	-re ".* 144 0232 7D106770" { set x [expr $x+1]; exp_continue; }
    480 	-re ".* 145 0236 7F126770" { set x [expr $x+1]; exp_continue; }
    481 	-re ".* 146 023a 6A181234" { set x [expr $x+1]; exp_continue; }
    482 	-re ".* 146      6770" { set x [expr $x+1]; exp_continue; }
    483 	-re ".* 147 0240 6A381234" { set x [expr $x+1]; exp_continue; }
    484 	-re ".* 147      56786770" { set x [expr $x+1]; exp_continue; }
    485 	-re ".* 148              " {
    486 	    if [expr $x == 7] then {
    487 		pass "$testname: bst #0x7, ..."
    488 	    } else {
    489 		fail "$testname: bst #0x7, ... ($x)"
    490 	    }
    491 	}
    492         default	{ fail "$testname: bst #0x7, ... ($x)" }
    493     }
    494 
    495     set x 0
    496     expect {
    497 	-re ".* 149 0248 7D106777" { set x [expr $x+1]; exp_continue; }
    498 	-re ".* 150 024c 7F126777" { set x [expr $x+1]; exp_continue; }
    499 	-re ".* 151 0250 6A181234" { set x [expr $x+1]; exp_continue; }
    500 	-re ".* 151      6777" { set x [expr $x+1]; exp_continue; }
    501 	-re ".* 152 0256 6A381234" { set x [expr $x+1]; exp_continue; }
    502 	-re ".* 152      56786777" { set x [expr $x+1]; exp_continue; }
    503 	-re ".* 153              " {
    504 	    if [expr $x == 6] then {
    505 		pass "$testname: bstz #0x7, ..."
    506 	    } else {
    507 		fail "$testname: bstz #0x7, ... ($x)"
    508 	    }
    509 	}
    510         default	{ fail "$testname: bstz #0x7, ... ($x)" }
    511     }
    512 
    513     set x 0
    514     expect {
    515 	-re ".* 154 025e 67F1" { set x [expr $x+1]; exp_continue; }
    516 	-re ".* 155 0260 7D1067F0" { set x [expr $x+1]; exp_continue; }
    517 	-re ".* 156 0264 7F1267F0" { set x [expr $x+1]; exp_continue; }
    518 	-re ".* 157 0268 6A181234" { set x [expr $x+1]; exp_continue; }
    519 	-re ".* 157      67F0" { set x [expr $x+1]; exp_continue; }
    520 	-re ".* 158 026e 6A381234" { set x [expr $x+1]; exp_continue; }
    521 	-re ".* 158      567867F0" { set x [expr $x+1]; exp_continue; }
    522 	-re ".* 159              " {
    523 	    if [expr $x == 7] then {
    524 		pass "$testname: bist #0x7, ..."
    525 	    } else {
    526 		fail "$testname: bist #0x7, ... ($x)"
    527 	    }
    528 	}
    529         default	{ fail "$testname: bist #0x7, ... ($x)" }
    530     }
    531 
    532     set x 0
    533     expect {
    534 	-re ".* 160 0276 7D1067F7" { set x [expr $x+1]; exp_continue; }
    535 	-re ".* 161 027a 7F1267F7" { set x [expr $x+1]; exp_continue; }
    536 	-re ".* 162 027e 6A181234" { set x [expr $x+1]; exp_continue; }
    537 	-re ".* 162      67F7" { set x [expr $x+1]; exp_continue; }
    538 	-re ".* 163 0284 6A381234" { set x [expr $x+1]; exp_continue; }
    539 	-re ".* 163      567867F7" { set x [expr $x+1]; exp_continue; }
    540 	-re ".* 164              " {
    541 	    if [expr $x == 6] then {
    542 		pass "$testname: bistz #0x7, ..."
    543 	    } else {
    544 		fail "$testname: bistz #0x7, ... ($x)"
    545 	    }
    546 	}
    547         default	{ fail "$testname: bistz #0x7, ... ($x)" }
    548     }
    549 
    550     set x 0
    551     expect {
    552 	-re ".* 165 028c 7C10F334" { set x [expr $x+1]; exp_continue; }
    553 	-re ".* 166 0290 7E12F334" { set x [expr $x+1]; exp_continue; }
    554 	-re ".* 167 0294 6A101234" { set x [expr $x+1]; exp_continue; }
    555 	-re ".* 167      F334" { set x [expr $x+1]; exp_continue; }
    556 	-re ".* 168 029a 6A301234" { set x [expr $x+1]; exp_continue; }
    557 	-re ".* 168      5678F334" { set x [expr $x+1]; exp_continue; }
    558 	-re ".* 169              " {
    559 	    if [expr $x == 6] then {
    560 		pass "$testname: bfld #0x34:8, ..., r3h"
    561 	    } else {
    562 		fail "$testname: bfld #0x34:8, ..., r3h ($x)"
    563 	    }
    564 	}
    565         default	{ fail "$testname: bfld #0x34:8, ..., r3h ($x)" }
    566     }
    567 
    568     set x 0
    569     expect {
    570 	-re ".* 170 02a2 7D10F334" { set x [expr $x+1]; exp_continue; }
    571 	-re ".* 171 02a6 7F12F334" { set x [expr $x+1]; exp_continue; }
    572 	-re ".* 172 02aa 6A181234" { set x [expr $x+1]; exp_continue; }
    573 	-re ".* 172      F334" { set x [expr $x+1]; exp_continue; }
    574 	-re ".* 173 02b0 6A381234" { set x [expr $x+1]; exp_continue; }
    575 	-re ".* 173      5678F334" { set x [expr $x+1]; exp_continue; }
    576 	-re ".* 174              " {
    577 	    if [expr $x == 6] then {
    578 		pass "$testname: bfst r3h, #0x34:8, ..."
    579 	    } else {
    580 		fail "$testname: bfst r3h, #0x34:8, ... ($x)"
    581 	    }
    582 	}
    583         default	{ fail "$testname: bfst r3h, #0x34:8, ... ($x)" }
    584     }
    585 
    586     # This was intended to do any cleanup necessary.
    587     # It kinda looks like it isn't needed, but just
    588     # in case, please keep it in for now.
    589 
    590     gas_finish
    591 
    592 }
    593 
    594 if [istarget h8300*-*-elf] then {
    595     # Test advanced h8300sx instructions.
    596     do_t12_bit_test
    597 }
    598 
    599