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 -- t06_ari2
     19 #
     20 
     21 proc do_t06_ari2_test {} {
     22     set testname "t06_ari2.s -- h8sx arithmetic tests"
     23 
     24     gas_start "t06_ari2.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 9112" { set x [expr $x+1]; exp_continue; }
     31 	-re ".*   8 0002 7D109012" { set x [expr $x+1]; exp_continue; }
     32 	-re ".*   9 0006 01766C18" { set x [expr $x+1]; exp_continue; }
     33 	-re ".*   9      9012" { set x [expr $x+1]; exp_continue; }
     34 	-re ".*  10              " {
     35 	    if [expr $x == 4] then {
     36 		pass "$testname: addx.b #0x12:8, ..."
     37 	    } else {
     38 		fail "$testname: addx.b #0x12:8, ... ($x)"
     39 	    }
     40 	}
     41         default	{ fail "$testname: addx.b #0x12:8, ... ($x)" }
     42     }
     43 
     44     set x 0
     45     expect {
     46 	-re ".*  11 000c 0E31" { set x [expr $x+1]; exp_continue; }
     47 	-re ".*  12 000e 7D100E30" { set x [expr $x+1]; exp_continue; }
     48 	-re ".*  13 0012 01766C18" { set x [expr $x+1]; exp_continue; }
     49 	-re ".*  13      0E30" { set x [expr $x+1]; exp_continue; }
     50 	-re ".*  14              " {
     51 	    if [expr $x == 4] then {
     52 		pass "$testname: addx.b r3h, ..."
     53 	    } else {
     54 		fail "$testname: addx.b r3h, ... ($x)"
     55 	    }
     56 	}
     57         default	{ fail "$testname: addx.b r3h, ... ($x)" }
     58     }
     59 
     60     set x 0
     61     expect {
     62 	-re ".*  15 0018 7C300E01" { set x [expr $x+1]; exp_continue; }
     63 	-re ".*  16 001c 0174683D" { set x [expr $x+1]; exp_continue; }
     64 	-re ".*  16      0110" { set x [expr $x+1]; exp_continue; }
     65 	-re ".*  17              " {
     66 	    if [expr $x == 3] then {
     67 		pass "$testname: addx.b @er3, ..."
     68 	    } else {
     69 		fail "$testname: addx.b @er3, ... ($x)"
     70 	    }
     71 	}
     72         default	{ fail "$testname: addx.b @er3, ... ($x)" }
     73     }
     74 
     75     set x 0
     76     expect {
     77 	-re ".*  18 0022 01766C30" { set x [expr $x+1]; exp_continue; }
     78 	-re ".*  18      0E01" { set x [expr $x+1]; exp_continue; }
     79 	-re ".*  19 0028 01766C3D" { set x [expr $x+1]; exp_continue; }
     80 	-re ".*  19      A110" { set x [expr $x+1]; exp_continue; }
     81 	-re ".*  20              " {
     82 	    if [expr $x == 4] then {
     83 		pass "$testname: addx.b @er3-, ..."
     84 	    } else {
     85 		fail "$testname: addx.b @er3-, ... ($x)"
     86 	    }
     87 	}
     88         default	{ fail "$testname: addx.b @er3-, ... ($x)" }
     89     }
     90 
     91     set x 0
     92     expect {
     93 	-re ".*  21 002e 01517911" { set x [expr $x+1]; exp_continue; }
     94 	-re ".*  21      1234" { set x [expr $x+1]; exp_continue; }
     95 	-re ".*  22 0034 7D917910" { set x [expr $x+1]; exp_continue; }
     96 	-re ".*  22      1234" { set x [expr $x+1]; exp_continue; }
     97 	-re ".*  23 003a 01566D19" { set x [expr $x+1]; exp_continue; }
     98 	-re ".*  23      79101234" { set x [expr $x+1]; exp_continue; }
     99 	-re ".*  24              " {
    100 	    if [expr $x == 6] then {
    101 		pass "$testname: addx.w #0x1234:16, ..."
    102 	    } else {
    103 		fail "$testname: addx.w #0x1234:16, ... ($x)"
    104 	    }
    105 	}
    106         default	{ fail "$testname: addx.w #0x1234:16, ... ($x)" }
    107     }
    108 
    109     set x 0
    110     expect {
    111 	-re ".*  25 0042 01510931" { set x [expr $x+1]; exp_continue; }
    112 	-re ".*  26 0046 7D910930" { set x [expr $x+1]; exp_continue; }
    113 	-re ".*  27 004a 01566D19" { set x [expr $x+1]; exp_continue; }
    114 	-re ".*  27      0930" { set x [expr $x+1]; exp_continue; }
    115 	-re ".*  28              " {
    116 	    if [expr $x == 4] then {
    117 		pass "$testname: addx.w r3, ..."
    118 	    } else {
    119 		fail "$testname: addx.w r3, ... ($x)"
    120 	    }
    121 	}
    122         default	{ fail "$testname: addx.w r3, ... ($x)" }
    123     }
    124 
    125     set x 0
    126     expect {
    127 	-re ".*  29 0050 7CB10901" { set x [expr $x+1]; exp_continue; }
    128 	-re ".*  30 0054 0154693D" { set x [expr $x+1]; exp_continue; }
    129 	-re ".*  30      0110" { set x [expr $x+1]; exp_continue; }
    130 	-re ".*  31              " {
    131 	    if [expr $x == 3] then {
    132 		pass "$testname: addx.w @er3, ..."
    133 	    } else {
    134 		fail "$testname: addx.w @er3, ... ($x)"
    135 	    }
    136 	}
    137         default	{ fail "$testname: addx.w @er3, ... ($x)" }
    138     }
    139 
    140     set x 0
    141     expect {
    142 	-re ".*  32 005a 01566D31" { set x [expr $x+1]; exp_continue; }
    143 	-re ".*  32      0901" { set x [expr $x+1]; exp_continue; }
    144 	-re ".*  33 0060 01566D3D" { set x [expr $x+1]; exp_continue; }
    145 	-re ".*  33      A110" { set x [expr $x+1]; exp_continue; }
    146 	-re ".*  34              " {
    147 	    if [expr $x == 4] then {
    148 		pass "$testname: addx.w @er3-, ..."
    149 	    } else {
    150 		fail "$testname: addx.w @er3-, ... ($x)"
    151 	    }
    152 	}
    153         default	{ fail "$testname: addx.w @er3-, ... ($x)" }
    154     }
    155 
    156     set x 0
    157     expect {
    158 	-re ".*  35 0066 01017A11" { set x [expr $x+1]; exp_continue; }
    159 	-re ".*  35      12345678" { set x [expr $x+1]; exp_continue; }
    160 	-re ".*  36 006e 01046919" { set x [expr $x+1]; exp_continue; }
    161 	-re ".*  36      7A101234" { set x [expr $x+1]; exp_continue; }
    162 	-re ".*  36      5678" { set x [expr $x+1]; exp_continue; }
    163 	-re ".*  37 0078 01066D19" { set x [expr $x+1]; exp_continue; }
    164 	-re ".*  37      7A101234" { set x [expr $x+1]; exp_continue; }
    165 	-re ".*  37      5678" { set x [expr $x+1]; exp_continue; }
    166 	-re ".*  38              " {
    167 	    if [expr $x == 8] then {
    168 		pass "$testname: addx.l #0x12345678:32, ..."
    169 	    } else {
    170 		fail "$testname: addx.l #0x12345678:32, ... ($x)"
    171 	    }
    172 	}
    173         default	{ fail "$testname: addx.l #0x12345678:32, ... ($x)" }
    174     }
    175 
    176     set x 0
    177     expect {
    178 	-re ".*  39 0082 01010AB1" { set x [expr $x+1]; exp_continue; }
    179 	-re ".*  40 0086 01046919" { set x [expr $x+1]; exp_continue; }
    180 	-re ".*  40      0AB0" { set x [expr $x+1]; exp_continue; }
    181 	-re ".*  41 008c 01066D19" { set x [expr $x+1]; exp_continue; }
    182 	-re ".*  41      0AB0" { set x [expr $x+1]; exp_continue; }
    183 	-re ".*  42              " {
    184 	    if [expr $x == 5] then {
    185 		pass "$testname: addx.l er3, ..."
    186 	    } else {
    187 		fail "$testname: addx.l er3, ... ($x)"
    188 	    }
    189 	}
    190         default	{ fail "$testname: addx.l er3, ... ($x)" }
    191     }
    192 
    193     set x 0
    194     expect {
    195 	-re ".*  43 0092 01046931" { set x [expr $x+1]; exp_continue; }
    196 	-re ".*  43      0A81" { set x [expr $x+1]; exp_continue; }
    197 	-re ".*  44 0098 0104693D" { set x [expr $x+1]; exp_continue; }
    198 	-re ".*  44      0110" { set x [expr $x+1]; exp_continue; }
    199 	-re ".*  45              " {
    200 	    if [expr $x == 4] then {
    201 		pass "$testname: addx.l @er3, ..."
    202 	    } else {
    203 		fail "$testname: addx.l @er3, ... ($x)"
    204 	    }
    205 	}
    206         default	{ fail "$testname: addx.l @er3, ... ($x)" }
    207     }
    208 
    209     set x 0
    210     expect {
    211 	-re ".*  46 009e 01066D31" { set x [expr $x+1]; exp_continue; }
    212 	-re ".*  46      0A81" { set x [expr $x+1]; exp_continue; }
    213 	-re ".*  47 00a4 01066D3D" { set x [expr $x+1]; exp_continue; }
    214 	-re ".*  47      A110" { set x [expr $x+1]; exp_continue; }
    215 	-re ".*  48              " {
    216 	    if [expr $x == 4] then {
    217 		pass "$testname: addx.l @er3-, ..."
    218 	    } else {
    219 		fail "$testname: addx.l @er3-, ... ($x)"
    220 	    }
    221 	}
    222         default	{ fail "$testname: addx.l @er3-, ... ($x)" }
    223     }
    224 
    225     set x 0
    226     expect {
    227 	-re ".*  49 00aa B112" { set x [expr $x+1]; exp_continue; }
    228 	-re ".*  50 00ac 7D10B012" { set x [expr $x+1]; exp_continue; }
    229 	-re ".*  51 00b0 01766C18" { set x [expr $x+1]; exp_continue; }
    230 	-re ".*  51      B012" { set x [expr $x+1]; exp_continue; }
    231 	-re ".*  52              " {
    232 	    if [expr $x == 4] then {
    233 		pass "$testname: subx.b #0x12:8, ..."
    234 	    } else {
    235 		fail "$testname: subx.b #0x12:8, ... ($x)"
    236 	    }
    237 	}
    238         default	{ fail "$testname: subx.b #0x12:8, ... ($x)" }
    239     }
    240 
    241     set x 0
    242     expect {
    243 	-re ".*  53 00b6 1E31" { set x [expr $x+1]; exp_continue; }
    244 	-re ".*  54 00b8 7D101E30" { set x [expr $x+1]; exp_continue; }
    245 	-re ".*  55 00bc 01766C18" { set x [expr $x+1]; exp_continue; }
    246 	-re ".*  55      1E30" { set x [expr $x+1]; exp_continue; }
    247 	-re ".*  56              " {
    248 	    if [expr $x == 4] then {
    249 		pass "$testname: subx.b r3h, ..."
    250 	    } else {
    251 		fail "$testname: subx.b r3h, ... ($x)"
    252 	    }
    253 	}
    254         default	{ fail "$testname: subx.b r3h, ... ($x)" }
    255     }
    256 
    257     set x 0
    258     expect {
    259 	-re ".*  57 00c2 7C301E01" { set x [expr $x+1]; exp_continue; }
    260 	-re ".*  58 00c6 0174683D" { set x [expr $x+1]; exp_continue; }
    261 	-re ".*  58      0130" { set x [expr $x+1]; exp_continue; }
    262 	-re ".*  59              " {
    263 	    if [expr $x == 3] then {
    264 		pass "$testname: subx.b @er3, ..."
    265 	    } else {
    266 		fail "$testname: subx.b @er3, ... ($x)"
    267 	    }
    268 	}
    269         default	{ fail "$testname: subx.b @er3, ... ($x)" }
    270     }
    271 
    272     set x 0
    273     expect {
    274 	-re ".*  60 00cc 01766C30" { set x [expr $x+1]; exp_continue; }
    275 	-re ".*  60      1E01" { set x [expr $x+1]; exp_continue; }
    276 	-re ".*  61 00d2 01766C3D" { set x [expr $x+1]; exp_continue; }
    277 	-re ".*  61      A130" { set x [expr $x+1]; exp_continue; }
    278 	-re ".*  62              " {
    279 	    if [expr $x == 4] then {
    280 		pass "$testname: subx.b @er3-, ..."
    281 	    } else {
    282 		fail "$testname: subx.b @er3-, ... ($x)"
    283 	    }
    284 	}
    285         default	{ fail "$testname: subx.b @er3-, ... ($x)" }
    286     }
    287 
    288     set x 0
    289     expect {
    290 	-re ".*  63 00d8 01517931" { set x [expr $x+1]; exp_continue; }
    291 	-re ".*  63      1234" { set x [expr $x+1]; exp_continue; }
    292 	-re ".*  64 00de 7D917930" { set x [expr $x+1]; exp_continue; }
    293 	-re ".*  64      1234" { set x [expr $x+1]; exp_continue; }
    294 	-re ".*  65 00e4 01566D19" { set x [expr $x+1]; exp_continue; }
    295 	-re ".*  65      79301234" { set x [expr $x+1]; exp_continue; }
    296 	-re ".*  66              " {
    297 	    if [expr $x == 6] then {
    298 		pass "$testname: subx.w #0x1234:16, ..."
    299 	    } else {
    300 		fail "$testname: subx.w #0x1234:16, ... ($x)"
    301 	    }
    302 	}
    303         default	{ fail "$testname: subx.w #0x1234:16, ... ($x)" }
    304     }
    305 
    306     set x 0
    307     expect {
    308 	-re ".*  67 00ec 01511931" { set x [expr $x+1]; exp_continue; }
    309 	-re ".*  68 00f0 7D911930" { set x [expr $x+1]; exp_continue; }
    310 	-re ".*  69 00f4 01566D19" { set x [expr $x+1]; exp_continue; }
    311 	-re ".*  69      1930" { set x [expr $x+1]; exp_continue; }
    312 	-re ".*  70              " {
    313 	    if [expr $x == 4] then {
    314 		pass "$testname: subx.w r3, ..."
    315 	    } else {
    316 		fail "$testname: subx.w r3, ... ($x)"
    317 	    }
    318 	}
    319         default	{ fail "$testname: subx.w r3, ... ($x)" }
    320     }
    321 
    322     set x 0
    323     expect {
    324 	-re ".*  71 00fa 7CB11901" { set x [expr $x+1]; exp_continue; }
    325 	-re ".*  72 00fe 0154693D" { set x [expr $x+1]; exp_continue; }
    326 	-re ".*  72      0130" { set x [expr $x+1]; exp_continue; }
    327 	-re ".*  73              " {
    328 	    if [expr $x == 3] then {
    329 		pass "$testname: subx.w @er3, ..."
    330 	    } else {
    331 		fail "$testname: subx.w @er3, ... ($x)"
    332 	    }
    333 	}
    334         default	{ fail "$testname: subx.w @er3, ... ($x)" }
    335     }
    336 
    337     set x 0
    338     expect {
    339 	-re ".*  74 0104 01566D31" { set x [expr $x+1]; exp_continue; }
    340 	-re ".*  74      1901" { set x [expr $x+1]; exp_continue; }
    341 	-re ".*  75 010a 01566D3D" { set x [expr $x+1]; exp_continue; }
    342 	-re ".*  75      A130" { set x [expr $x+1]; exp_continue; }
    343 	-re ".*  76              " {
    344 	    if [expr $x == 4] then {
    345 		pass "$testname: subx.w @er3-, ..."
    346 	    } else {
    347 		fail "$testname: subx.w @er3-, ... ($x)"
    348 	    }
    349 	}
    350         default	{ fail "$testname: subx.w @er3-, ... ($x)" }
    351     }
    352 
    353     set x 0
    354     expect {
    355 	-re ".*  77 0110 01017A31" { set x [expr $x+1]; exp_continue; }
    356 	-re ".*  77      12345678" { set x [expr $x+1]; exp_continue; }
    357 	-re ".*  78 0118 01046919" { set x [expr $x+1]; exp_continue; }
    358 	-re ".*  78      7A301234" { set x [expr $x+1]; exp_continue; }
    359 	-re ".*  78      5678" { set x [expr $x+1]; exp_continue; }
    360 	-re ".*  79 0122 01066D19" { set x [expr $x+1]; exp_continue; }
    361 	-re ".*  79      7A301234" { set x [expr $x+1]; exp_continue; }
    362 	-re ".*  79      5678" { set x [expr $x+1]; exp_continue; }
    363 	-re ".*  80              " {
    364 	    if [expr $x == 8] then {
    365 		pass "$testname: subx.l #0x12345678:32, ..."
    366 	    } else {
    367 		fail "$testname: subx.l #0x12345678:32, ... ($x)"
    368 	    }
    369 	}
    370         default	{ fail "$testname: subx.l #0x12345678:32, ... ($x)" }
    371     }
    372 
    373     set x 0
    374     expect {
    375 	-re ".*  81 012c 01011AB1" { set x [expr $x+1]; exp_continue; }
    376 	-re ".*  82 0130 01046919" { set x [expr $x+1]; exp_continue; }
    377 	-re ".*  82      1AB0" { set x [expr $x+1]; exp_continue; }
    378 	-re ".*  83 0136 01066D19" { set x [expr $x+1]; exp_continue; }
    379 	-re ".*  83      1AB0" { set x [expr $x+1]; exp_continue; }
    380 	-re ".*  84              " {
    381 	    if [expr $x == 5] then {
    382 		pass "$testname: subx.l er3, ..."
    383 	    } else {
    384 		fail "$testname: subx.l er3, ... ($x)"
    385 	    }
    386 	}
    387         default	{ fail "$testname: subx.l er3, ... ($x)" }
    388     }
    389 
    390     set x 0
    391     expect {
    392 	-re ".*  85 013c 01046931" { set x [expr $x+1]; exp_continue; }
    393 	-re ".*  85      1A81" { set x [expr $x+1]; exp_continue; }
    394 	-re ".*  86 0142 0104693D" { set x [expr $x+1]; exp_continue; }
    395 	-re ".*  86      0130" { set x [expr $x+1]; exp_continue; }
    396 	-re ".*  87              " {
    397 	    if [expr $x == 4] then {
    398 		pass "$testname: subx.l @er3, ..."
    399 	    } else {
    400 		fail "$testname: subx.l @er3, ... ($x)"
    401 	    }
    402 	}
    403         default	{ fail "$testname: subx.l @er3, ... ($x)" }
    404     }
    405 
    406     set x 0
    407     expect {
    408 	-re ".*  88 0148 01066D31" { set x [expr $x+1]; exp_continue; }
    409 	-re ".*  88      1A81" { set x [expr $x+1]; exp_continue; }
    410 	-re ".*  89 014e 01066D3D" { set x [expr $x+1]; exp_continue; }
    411 	-re ".*  89      A130" { set x [expr $x+1]; exp_continue; }
    412 	-re ".*  90              " {
    413 	    if [expr $x == 4] then {
    414 		pass "$testname: subx.l @er3-, ..."
    415 	    } else {
    416 		fail "$testname: subx.l @er3-, ... ($x)"
    417 	    }
    418 	}
    419         default	{ fail "$testname: subx.l @er3-, ... ($x)" }
    420     }
    421 
    422     set x 0
    423     expect {
    424 	-re ".*  91 0154 0A01" { set x [expr $x+1]; exp_continue; }
    425 	-re ".*  92 0156 0B51" { set x [expr $x+1]; exp_continue; }
    426 	-re ".*  93 0158 0BD1" { set x [expr $x+1]; exp_continue; }
    427 	-re ".*  94 015a 0B71" { set x [expr $x+1]; exp_continue; }
    428 	-re ".*  95 015c 0BF1" { set x [expr $x+1]; exp_continue; }
    429 	-re ".*  96              " {
    430 	    if [expr $x == 5] then {
    431 		pass "$testname: inc"
    432 	    } else {
    433 		fail "$testname: inc ($x)"
    434 	    }
    435 	}
    436         default	{ fail "$testname: inc ($x)" }
    437     }
    438 
    439     set x 0
    440     expect {
    441 	-re ".*  97 015e 1A01" { set x [expr $x+1]; exp_continue; }
    442 	-re ".*  98 0160 1B51" { set x [expr $x+1]; exp_continue; }
    443 	-re ".*  99 0162 1BD1" { set x [expr $x+1]; exp_continue; }
    444 	-re ".* 100 0164 1B71" { set x [expr $x+1]; exp_continue; }
    445 	-re ".* 101 0166 1BF1" { set x [expr $x+1]; exp_continue; }
    446 	-re ".* 102              " {
    447 	    if [expr $x == 5] then {
    448 		pass "$testname: dec"
    449 	    } else {
    450 		fail "$testname: dec ($x)"
    451 	    }
    452 	}
    453         default	{ fail "$testname: dec ($x)" }
    454     }
    455 
    456     set x 0
    457     expect {
    458 	-re ".* 103 0168 0B01" { set x [expr $x+1]; exp_continue; }
    459 	-re ".* 104 016a 0B81" { set x [expr $x+1]; exp_continue; }
    460 	-re ".* 105 016c 0B91" { set x [expr $x+1]; exp_continue; }
    461 	-re ".* 106              " {
    462 	    if [expr $x == 3] then {
    463 		pass "$testname: adds.l ..., er1"
    464 	    } else {
    465 		fail "$testname: adds.l ..., er1 ($x)"
    466 	    }
    467 	}
    468         default	{ fail "$testname: adds.l ..., er1 ($x)" }
    469     }
    470 
    471     set x 0
    472     expect {
    473 	-re ".* 107 016e 1B01" { set x [expr $x+1]; exp_continue; }
    474 	-re ".* 108 0170 1B81" { set x [expr $x+1]; exp_continue; }
    475 	-re ".* 109 0172 1B91" { set x [expr $x+1]; exp_continue; }
    476 	-re ".* 110              " {
    477 	    if [expr $x == 3] then {
    478 		pass "$testname: subs.l #4,er1"
    479 	    } else {
    480 		fail "$testname: subs.l #4,er1 ($x)"
    481 	    }
    482 	}
    483         default	{ fail "$testname: subs.l #4,er1 ($x)" }
    484     }
    485 
    486     set x 0
    487     expect {
    488 	-re ".* 111 0174 0F01" { set x [expr $x+1]; exp_continue; }
    489 	-re ".* 112              " {
    490 	    if [expr $x == 1] then {
    491 		pass "$testname: daa.b r1h"
    492 	    } else {
    493 		fail "$testname: daa.b r1h ($x)"
    494 	    }
    495 	}
    496         default	{ fail "$testname: daa.b r1h ($x)" }
    497     }
    498 
    499     set x 0
    500     expect {
    501 	-re ".* 113 0176 1F01" { set x [expr $x+1]; exp_continue; }
    502 	-re ".* 114              " {
    503 	    if [expr $x == 1] then {
    504 		pass "$testname: das.b r1h"
    505 	    } else {
    506 		fail "$testname: das.b r1h ($x)"
    507 	    }
    508 	}
    509         default	{ fail "$testname: das.b r1h ($x)" }
    510     }
    511 
    512     set x 0
    513     expect {
    514 	-re ".* 115 0178 01CC50F1" { set x [expr $x+1]; exp_continue; }
    515 	-re ".* 116              " {
    516 	    if [expr $x == 1] then {
    517 		pass "$testname: mulxu.b #0xf:4,r1"
    518 	    } else {
    519 		fail "$testname: mulxu.b #0xf:4,r1 ($x)"
    520 	    }
    521 	}
    522         default	{ fail "$testname: mulxu.b #0xf:4,r1 ($x)" }
    523     }
    524 
    525     set x 0
    526     expect {
    527 	-re ".* 117 017c 5031" { set x [expr $x+1]; exp_continue; }
    528 	-re ".* 118              " {
    529 	    if [expr $x == 1] then {
    530 		pass "$testname: mulxu.b r3h,r1"
    531 	    } else {
    532 		fail "$testname: mulxu.b r3h,r1 ($x)"
    533 	    }
    534 	}
    535         default	{ fail "$testname: mulxu.b r3h,r1 ($x)" }
    536     }
    537 
    538     set x 0
    539     expect {
    540 	-re ".* 119 017e 01CC52F1" { set x [expr $x+1]; exp_continue; }
    541 	-re ".* 120              " {
    542 	    if [expr $x == 1] then {
    543 		pass "$testname: mulxu.w #0xf:4,er1"
    544 	    } else {
    545 		fail "$testname: mulxu.w #0xf:4,er1 ($x)"
    546 	    }
    547 	}
    548         default	{ fail "$testname: mulxu.w #0xf:4,er1 ($x)" }
    549     }
    550 
    551     set x 0
    552     expect {
    553 	-re ".* 121 0182 5231" { set x [expr $x+1]; exp_continue; }
    554 	-re ".* 122              " {
    555 	    if [expr $x == 1] then {
    556 		pass "$testname: mulxu.w r3,er1"
    557 	    } else {
    558 		fail "$testname: mulxu.w r3,er1 ($x)"
    559 	    }
    560 	}
    561         default	{ fail "$testname: mulxu.w r3,er1 ($x)" }
    562     }
    563 
    564     set x 0
    565     expect {
    566 	-re ".* 123 0184 01DC51F1" { set x [expr $x+1]; exp_continue; }
    567 	-re ".* 124              " {
    568 	    if [expr $x == 1] then {
    569 		pass "$testname: divxu.b #0xf:4,r1"
    570 	    } else {
    571 		fail "$testname: divxu.b #0xf:4,r1 ($x)"
    572 	    }
    573 	}
    574         default	{ fail "$testname: divxu.b #0xf:4,r1 ($x)" }
    575     }
    576 
    577     set x 0
    578     expect {
    579 	-re ".* 125 0188 5131" { set x [expr $x+1]; exp_continue; }
    580 	-re ".* 126              " {
    581 	    if [expr $x == 1] then {
    582 		pass "$testname: divxu.b r3h,r1"
    583 	    } else {
    584 		fail "$testname: divxu.b r3h,r1 ($x)"
    585 	    }
    586 	}
    587         default	{ fail "$testname: divxu.b r3h,r1 ($x)" }
    588     }
    589 
    590     set x 0
    591     expect {
    592 	-re ".* 127 018a 01DC53F1" { set x [expr $x+1]; exp_continue; }
    593 	-re ".* 128              " {
    594 	    if [expr $x == 1] then {
    595 		pass "$testname: divxu.w #0xf:4,er1"
    596 	    } else {
    597 		fail "$testname: divxu.w #0xf:4,er1 ($x)"
    598 	    }
    599 	}
    600         default	{ fail "$testname: divxu.w #0xf:4,er1 ($x)" }
    601     }
    602 
    603     set x 0
    604     expect {
    605 	-re ".* 129 018e 5331" { set x [expr $x+1]; exp_continue; }
    606 	-re ".* 130              " {
    607 	    if [expr $x == 1] then {
    608 		pass "$testname: divxu.w r3,er1"
    609 	    } else {
    610 		fail "$testname: divxu.w r3,er1 ($x)"
    611 	    }
    612 	}
    613         default	{ fail "$testname: divxu.w r3,er1 ($x)" }
    614     }
    615 
    616     set x 0
    617     expect {
    618 	-re ".* 131 0190 01C450F1" { set x [expr $x+1]; exp_continue; }
    619 	-re ".* 132              " {
    620 	    if [expr $x == 1] then {
    621 		pass "$testname: mulxs.b #0xf:4,r1"
    622 	    } else {
    623 		fail "$testname: mulxs.b #0xf:4,r1 ($x)"
    624 	    }
    625 	}
    626         default	{ fail "$testname: mulxs.b #0xf:4,r1 ($x)" }
    627     }
    628 
    629     set x 0
    630     expect {
    631 	-re ".* 133 0194 01C05031" { set x [expr $x+1]; exp_continue; }
    632 	-re ".* 134              " {
    633 	    if [expr $x == 1] then {
    634 		pass "$testname: mulxs.b r3h,r1"
    635 	    } else {
    636 		fail "$testname: mulxs.b r3h,r1 ($x)"
    637 	    }
    638 	}
    639         default	{ fail "$testname: mulxs.b r3h,r1 ($x)" }
    640     }
    641 
    642     set x 0
    643     expect {
    644 	-re ".* 135 0198 01C452F1" { set x [expr $x+1]; exp_continue; }
    645 	-re ".* 136              " {
    646 	    if [expr $x == 1] then {
    647 		pass "$testname: mulxs.w #0xf:4,er1"
    648 	    } else {
    649 		fail "$testname: mulxs.w #0xf:4,er1 ($x)"
    650 	    }
    651 	}
    652         default	{ fail "$testname: mulxs.w #0xf:4,er1 ($x)" }
    653     }
    654 
    655     set x 0
    656     expect {
    657 	-re ".* 137 019c 01C05231" { set x [expr $x+1]; exp_continue; }
    658 	-re ".* 138              " {
    659 	    if [expr $x == 1] then {
    660 		pass "$testname: mulxs.w r3,er1"
    661 	    } else {
    662 		fail "$testname: mulxs.w r3,er1 ($x)"
    663 	    }
    664 	}
    665         default	{ fail "$testname: mulxs.w r3,er1 ($x)" }
    666     }
    667 
    668     set x 0
    669     expect {
    670 	-re ".* 139 01a0 01D451F1" { set x [expr $x+1]; exp_continue; }
    671 	-re ".* 140              " {
    672 	    if [expr $x == 1] then {
    673 		pass "$testname: divxs.b #0xf:4,r1"
    674 	    } else {
    675 		fail "$testname: divxs.b #0xf:4,r1 ($x)"
    676 	    }
    677 	}
    678         default	{ fail "$testname: divxs.b #0xf:4,r1 ($x)" }
    679     }
    680 
    681     set x 0
    682     expect {
    683 	-re ".* 141 01a4 01D05131" { set x [expr $x+1]; exp_continue; }
    684 	-re ".* 142              " {
    685 	    if [expr $x == 1] then {
    686 		pass "$testname: divxs.b r3h,r1"
    687 	    } else {
    688 		fail "$testname: divxs.b r3h,r1 ($x)"
    689 	    }
    690 	}
    691         default	{ fail "$testname: divxs.b r3h,r1 ($x)" }
    692     }
    693 
    694     set x 0
    695     expect {
    696 	-re ".* 143 01a8 01D453F1" { set x [expr $x+1]; exp_continue; }
    697 	-re ".* 144              " {
    698 	    if [expr $x == 1] then {
    699 		pass "$testname: divxs.w #0xf:4,er1"
    700 	    } else {
    701 		fail "$testname: divxs.w #0xf:4,er1 ($x)"
    702 	    }
    703 	}
    704         default	{ fail "$testname: divxs.w #0xf:4,er1 ($x)" }
    705     }
    706 
    707     set x 0
    708     expect {
    709 	-re ".* 145 01ac 01D05331" { set x [expr $x+1]; exp_continue; }
    710 	-re ".* 146              " {
    711 	    if [expr $x == 1] then {
    712 		pass "$testname: divxs.w r3,er1"
    713 	    } else {
    714 		fail "$testname: divxs.w r3,er1 ($x)"
    715 	    }
    716 	}
    717         default	{ fail "$testname: divxs.w r3,er1 ($x)" }
    718     }
    719 
    720     set x 0
    721     expect {
    722 	-re ".* 147 01b0 01CE50F1" { set x [expr $x+1]; exp_continue; }
    723 	-re ".* 148              " {
    724 	    if [expr $x == 1] then {
    725 		pass "$testname: mulu.w #0xf:4,r1"
    726 	    } else {
    727 		fail "$testname: mulu.w #0xf:4,r1 ($x)"
    728 	    }
    729 	}
    730         default	{ fail "$testname: mulu.w #0xf:4,r1 ($x)" }
    731     }
    732 
    733     set x 0
    734     expect {
    735 	-re ".* 149 01b4 01CA5031" { set x [expr $x+1]; exp_continue; }
    736 	-re ".* 150              " {
    737 	    if [expr $x == 1] then {
    738 		pass "$testname: mulu.w r3,r1"
    739 	    } else {
    740 		fail "$testname: mulu.w r3,r1 ($x)"
    741 	    }
    742 	}
    743         default	{ fail "$testname: mulu.w r3,r1 ($x)" }
    744     }
    745 
    746     set x 0
    747     expect {
    748 	-re ".* 151 01b8 01CE52F1" { set x [expr $x+1]; exp_continue; }
    749 	-re ".* 152              " {
    750 	    if [expr $x == 1] then {
    751 		pass "$testname: mulu.l #0xf:4,er1"
    752 	    } else {
    753 		fail "$testname: mulu.l #0xf:4,er1 ($x)"
    754 	    }
    755 	}
    756         default	{ fail "$testname: mulu.l #0xf:4,er1 ($x)" }
    757     }
    758 
    759     set x 0
    760     expect {
    761 	-re ".* 153 01bc 01CA5231" { set x [expr $x+1]; exp_continue; }
    762 	-re ".* 154              " {
    763 	    if [expr $x == 1] then {
    764 		pass "$testname: mulu.l er3,er1"
    765 	    } else {
    766 		fail "$testname: mulu.l er3,er1 ($x)"
    767 	    }
    768 	}
    769         default	{ fail "$testname: mulu.l er3,er1 ($x)" }
    770     }
    771 
    772     set x 0
    773     expect {
    774 	-re ".* 155 01c0 01CF52F1" { set x [expr $x+1]; exp_continue; }
    775 	-re ".* 156              " {
    776 	    if [expr $x == 1] then {
    777 		pass "$testname: mulu/u.l #0xf:4,er1"
    778 	    } else {
    779 		fail "$testname: mulu/u.l #0xf:4,er1 ($x)"
    780 	    }
    781 	}
    782         default	{ fail "$testname: mulu/u.l #0xf:4,er1 ($x)" }
    783     }
    784 
    785     set x 0
    786     expect {
    787 	-re ".* 157 01c4 01CB5231" { set x [expr $x+1]; exp_continue; }
    788 	-re ".* 158              " {
    789 	    if [expr $x == 1] then {
    790 		pass "$testname: mulu/u.l er3,er1"
    791 	    } else {
    792 		fail "$testname: mulu/u.l er3,er1 ($x)"
    793 	    }
    794 	}
    795         default	{ fail "$testname: mulu/u.l er3,er1 ($x)" }
    796     }
    797 
    798     set x 0
    799     expect {
    800 	-re ".* 159 01c8 01C650F1" { set x [expr $x+1]; exp_continue; }
    801 	-re ".* 160              " {
    802 	    if [expr $x == 1] then {
    803 		pass "$testname: muls.w #0xf:4,r1"
    804 	    } else {
    805 		fail "$testname: muls.w #0xf:4,r1 ($x)"
    806 	    }
    807 	}
    808         default	{ fail "$testname: muls.w #0xf:4,r1 ($x)" }
    809     }
    810 
    811     set x 0
    812     expect {
    813 	-re ".* 161 01cc 01C25031" { set x [expr $x+1]; exp_continue; }
    814 	-re ".* 162              " {
    815 	    if [expr $x == 1] then {
    816 		pass "$testname: muls.w r3,r1"
    817 	    } else {
    818 		fail "$testname: muls.w r3,r1 ($x)"
    819 	    }
    820 	}
    821         default	{ fail "$testname: muls.w r3,r1 ($x)" }
    822     }
    823 
    824     set x 0
    825     expect {
    826 	-re ".* 163 01d0 01C652F1" { set x [expr $x+1]; exp_continue; }
    827 	-re ".* 164              " {
    828 	    if [expr $x == 1] then {
    829 		pass "$testname: muls.l #0xf:4,er1"
    830 	    } else {
    831 		fail "$testname: muls.l #0xf:4,er1 ($x)"
    832 	    }
    833 	}
    834         default	{ fail "$testname: muls.l #0xf:4,er1 ($x)" }
    835     }
    836 
    837     set x 0
    838     expect {
    839 	-re ".* 165 01d4 01C25231" { set x [expr $x+1]; exp_continue; }
    840 	-re ".* 166              " {
    841 	    if [expr $x == 1] then {
    842 		pass "$testname: muls.l er3,er1"
    843 	    } else {
    844 		fail "$testname: muls.l er3,er1 ($x)"
    845 	    }
    846 	}
    847         default	{ fail "$testname: muls.l er3,er1 ($x)" }
    848     }
    849 
    850     set x 0
    851     expect {
    852 	-re ".* 167 01d8 01C752F1" { set x [expr $x+1]; exp_continue; }
    853 	-re ".* 168              " {
    854 	    if [expr $x == 1] then {
    855 		pass "$testname: muls/u.l #0xf:4,er1"
    856 	    } else {
    857 		fail "$testname: muls/u.l #0xf:4,er1 ($x)"
    858 	    }
    859 	}
    860         default	{ fail "$testname: muls/u.l #0xf:4,er1 ($x)" }
    861     }
    862 
    863     set x 0
    864     expect {
    865 	-re ".* 169 01dc 01C35231" { set x [expr $x+1]; exp_continue; }
    866 	-re ".* 170              " {
    867 	    if [expr $x == 1] then {
    868 		pass "$testname: muls/u.l er3,er1"
    869 	    } else {
    870 		fail "$testname: muls/u.l er3,er1 ($x)"
    871 	    }
    872 	}
    873         default	{ fail "$testname: muls/u.l er3,er1 ($x)" }
    874     }
    875 
    876     set x 0
    877     expect {
    878 	-re ".* 171 01e0 01DE51F1" { set x [expr $x+1]; exp_continue; }
    879 	-re ".* 172              " {
    880 	    if [expr $x == 1] then {
    881 		pass "$testname: divu.w #0xf:4,r1"
    882 	    } else {
    883 		fail "$testname: divu.w #0xf:4,r1 ($x)"
    884 	    }
    885 	}
    886         default	{ fail "$testname: divu.w #0xf:4,r1 ($x)" }
    887     }
    888 
    889     set x 0
    890     expect {
    891 	-re ".* 173 01e4 01DA5131" { set x [expr $x+1]; exp_continue; }
    892 	-re ".* 174              " {
    893 	    if [expr $x == 1] then {
    894 		pass "$testname: divu.w r3,r1"
    895 	    } else {
    896 		fail "$testname: divu.w r3,r1 ($x)"
    897 	    }
    898 	}
    899         default	{ fail "$testname: divu.w r3,r1 ($x)" }
    900     }
    901 
    902     set x 0
    903     expect {
    904 	-re ".* 175 01e8 01DE53F1" { set x [expr $x+1]; exp_continue; }
    905 	-re ".* 176              " {
    906 	    if [expr $x == 1] then {
    907 		pass "$testname: divu.l #0xf:4,er1"
    908 	    } else {
    909 		fail "$testname: divu.l #0xf:4,er1 ($x)"
    910 	    }
    911 	}
    912         default	{ fail "$testname: divu.l #0xf:4,er1 ($x)" }
    913     }
    914 
    915     set x 0
    916     expect {
    917 	-re ".* 177 01ec 01DA5331" { set x [expr $x+1]; exp_continue; }
    918 	-re ".* 178              " {
    919 	    if [expr $x == 1] then {
    920 		pass "$testname: divu.l er3,er1"
    921 	    } else {
    922 		fail "$testname: divu.l er3,er1 ($x)"
    923 	    }
    924 	}
    925         default	{ fail "$testname: divu.l er3,er1 ($x)" }
    926     }
    927 
    928     set x 0
    929     expect {
    930 	-re ".* 179 01f0 01D651F1" { set x [expr $x+1]; exp_continue; }
    931 	-re ".* 180              " {
    932 	    if [expr $x == 1] then {
    933 		pass "$testname: divs.w #0xf:4,r1"
    934 	    } else {
    935 		fail "$testname: divs.w #0xf:4,r1 ($x)"
    936 	    }
    937 	}
    938         default	{ fail "$testname: divs.w #0xf:4,r1 ($x)" }
    939     }
    940 
    941     set x 0
    942     expect {
    943 	-re ".* 181 01f4 01D25131" { set x [expr $x+1]; exp_continue; }
    944 	-re ".* 182              " {
    945 	    if [expr $x == 1] then {
    946 		pass "$testname: divs.w r3,r1"
    947 	    } else {
    948 		fail "$testname: divs.w r3,r1 ($x)"
    949 	    }
    950 	}
    951         default	{ fail "$testname: divs.w r3,r1 ($x)" }
    952     }
    953 
    954     set x 0
    955     expect {
    956 	-re ".* 183 01f8 01D653F1" { set x [expr $x+1]; exp_continue; }
    957 	-re ".* 184              " {
    958 	    if [expr $x == 1] then {
    959 		pass "$testname: divs.l #0xf:4,er1"
    960 	    } else {
    961 		fail "$testname: divs.l #0xf:4,er1 ($x)"
    962 	    }
    963 	}
    964         default	{ fail "$testname: divs.l #0xf:4,er1 ($x)" }
    965     }
    966 
    967     set x 0
    968     expect {
    969 	-re ".* 185 01fc 01D25331" { set x [expr $x+1]; exp_continue; }
    970 	-re ".* 186              " {
    971 	    if [expr $x == 1] then {
    972 		pass "$testname: divs.l er3,er1"
    973 	    } else {
    974 		fail "$testname: divs.l er3,er1 ($x)"
    975 	    }
    976 	}
    977         default	{ fail "$testname: divs.l er3,er1 ($x)" }
    978     }
    979 
    980     # This was intended to do any cleanup necessary.
    981     # It kinda looks like it isn't needed, but just
    982     # in case, please keep it in for now.
    983 
    984     gas_finish
    985 
    986 }
    987 
    988 if [istarget h8300*-*-elf] then {
    989     # Test advanced h8300sx instructions.
    990     do_t06_ari2_test
    991 }
    992 
    993