Home | History | Annotate | Line # | Download | only in gdb.disasm
      1 # Copyright (C) 2000-2024 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, see <http://www.gnu.org/licenses/>.
     15 
     16 # This file was written by Kazu Hirata. (kazu (at) hxi.com)
     17 
     18 require {istarget "h8300*-*-*"}
     19 
     20 
     21 set testfile "h8300s"
     22 set srcfile ${srcdir}/${subdir}/${testfile}.s
     23 set binfile ${objdir}/${subdir}/${testfile}
     24 if  { [gdb_compile "${srcfile}" "${binfile}" executable {debug additional_flags=-ms}] != "" } {
     25      untested "failed to compile"
     26      return -1
     27 }
     28 
     29 proc all_set_machine_h8300s { } {
     30     global gdb_prompt
     31     global hex
     32     global decimal
     33 
     34     send_gdb "set machine h8300s\n"
     35     gdb_expect {
     36 	-re "$gdb_prompt $" {}
     37     }
     38 }
     39 
     40 proc all_movb_tests { } {
     41     global gdb_prompt
     42     global hex
     43     global decimal
     44 
     45     send_gdb "x/9i movb_tests\n"
     46     gdb_expect {
     47 	-re "
     48 .*mov.b\tr0l,r0h.*
     49 .*mov.b\t#0x12,r1l.*
     50 .*mov.b\t@er0,r1h.*
     51 .*mov.b\t@\\(0x1234:16,er0\\),r2l.*
     52 .*mov.b\t@\\(0x12345678:32,er0\\),r2h.*
     53 .*mov.b\t@er0\\+,r3l.*
     54 .*mov.b\t@0x12:8,r3h.*
     55 .*mov.b\t@0x1234:16,r4l.*
     56 .*mov.b\t@0x12345678:32,r4h.*
     57 .*$gdb_prompt $" { pass "movb_tests" }
     58 	-re "$gdb_prompt $" { fail "movb_tests" }
     59 	timeout { fail "(timeout) movb_tests" }
     60     }
     61 }
     62 
     63 proc all_movw_tests { } {
     64     global gdb_prompt
     65     global hex
     66     global decimal
     67 
     68     send_gdb "x/8i movw_tests\n"
     69     gdb_expect {
     70 	-re "
     71 .*mov.w\te0,r0.*
     72 .*mov.w\t#0x1234,r1.*
     73 .*mov.w\t@er0,r2.*
     74 .*mov.w\t@\\(0x1234:16,er0\\),r3.*
     75 .*mov.w\t@\\(0x12345678:32,er0\\),r4.*
     76 .*mov.w\t@er0\\+,r5.*
     77 .*mov.w\t@0x1234:16,r6.*
     78 .*mov.w\t@0x12345678:32,r7.*
     79 .*$gdb_prompt $" { pass "movw_tests" }
     80 	-re "$gdb_prompt $" { fail "movw_tests" }
     81 	timeout { fail "(timeout) movw_tests" }
     82     }
     83 }
     84 
     85 proc all_movl_tests { } {
     86     global gdb_prompt
     87     global hex
     88     global decimal
     89 
     90     send_gdb "x/8i movl_tests\n"
     91     gdb_expect {
     92 	-re "
     93 .*mov.l\ter0,er1.*
     94 .*mov.l\t#0x12345678,er1.*
     95 .*mov.l\t@er0,er2.*
     96 .*mov.l\t@\\(0x1234:16,er0\\),er3.*
     97 .*mov.l\t@\\(0x12345678:32,er0\\),er4.*
     98 .*mov.l\t@er0\\+,er5.*
     99 .*mov.l\t@0x1234:16,er6.*
    100 .*mov.l\t@0x12345678:32,er7.*
    101 .*$gdb_prompt $" { pass "movl_tests" }
    102 	-re "$gdb_prompt $" { fail "movl_tests" }
    103 	timeout { fail "(timeout) movl_tests" }
    104     }
    105 }
    106 
    107 proc all_ldm_stm_tests { } {
    108     global gdb_prompt
    109     global hex
    110     global decimal
    111 
    112     send_gdb "x/6i ldm_stm_tests\n"
    113     gdb_expect {
    114 	-re "
    115 .*ldm.l\t@sp\\+,er0-er1.*
    116 .*ldm.l\t@sp\\+,er0-er2.*
    117 .*ldm.l\t@sp\\+,er0-er3.*
    118 .*stm.l\ter0\\-er1,@-sp.*
    119 .*stm.l\ter0\\-er2,@-sp.*
    120 .*stm.l\ter0\\-er3,@-sp.*
    121 .*$gdb_prompt $" { pass "ldm_stm_tests" }
    122 	-re "$gdb_prompt $" { fail "ldm_stm_tests" }
    123 	timeout { fail "(timeout) ldm_stm_tests" }
    124     }
    125 }
    126 
    127 proc all_movfpe_movtpe_tests { } {
    128     global gdb_prompt
    129     global hex
    130     global decimal
    131 
    132     send_gdb "x/2i movfpe_movtpe_tests\n"
    133     gdb_expect {
    134 	-re "
    135 .*movfpe\t@0x1234:16,r2l.*
    136 .*movtpe\tr2l,@0x1234:16.*
    137 .*$gdb_prompt $" { pass "movfpe_movtpe_tests" }
    138 	-re "$gdb_prompt $" { fail "movfpe_movtpe_tests" }
    139 	timeout { fail "(timeout) movfpe_movtpe_tests" }
    140     }
    141 }
    142 
    143 proc all_add_sub_addx_subx_tests { } {
    144     global gdb_prompt
    145     global hex
    146     global decimal
    147 
    148     send_gdb "x/15i add_sub_addx_subx_tests\n"
    149     gdb_expect {
    150 	-re "
    151 .*add.b\t#0x12,r0l.*
    152 .*add.b\tr1l,r1h.*
    153 .*add.w\t#0x1234,r2.*
    154 .*add.w\tr3,r4.*
    155 .*add.l\t#0x12345678,er5.*
    156 .*add.l\ter6,er7.*
    157 .*sub.b\tr1l,r1h.*
    158 .*sub.w\t#0x1234,r2.*
    159 .*sub.w\tr3,r4.*
    160 .*sub.l\t#0x12345678,er5.*
    161 .*sub.l\ter6,er7.*
    162 .*addx\t#0x12,r0l.*
    163 .*addx\tr1l,r1h.*
    164 .*subx\t#0x12,r0l.*
    165 .*subx\tr1l,r1h.*
    166 .*$gdb_prompt $" { pass "add_sub_addx_subx_tests" }
    167 	-re "$gdb_prompt $" { fail "add_sub_addx_subx_tests" }
    168 	timeout { fail "(timeout) add_sub_addx_subx_tests" }
    169     }
    170 }
    171 
    172 proc all_inc_dec_adds_subs_tests { } {
    173     global gdb_prompt
    174     global hex
    175     global decimal
    176 
    177     send_gdb "x/16i inc_dec_adds_subs_tests\n"
    178     gdb_expect {
    179 	-re "
    180 .*inc(.b|)\tr0l.*
    181 .*inc.w\t#(0x|)1,r4.*
    182 .*inc.w\t#(0x|)2,r3.*
    183 .*inc.l\t#(0x|)1,er2.*
    184 .*inc.l\t#(0x|)2,er1.*
    185 .*dec.b\tr0l.*
    186 .*dec.w\t#(0x|)1,r4.*
    187 .*dec.w\t#(0x|)2,r3.*
    188 .*dec.l\t#(0x|)1,er2.*
    189 .*dec.l\t#(0x|)2,er1.*
    190 .*adds\t#(0x|)1,er7.*
    191 .*adds\t#(0x|)2,er6.*
    192 .*adds\t#(0x|)4,er5.*
    193 .*subs\t#(0x|)1,er7.*
    194 .*subs\t#(0x|)2,er6.*
    195 .*subs\t#(0x|)4,er5.*
    196 .*$gdb_prompt $" { pass "inc_dec_adds_subs_tests" }
    197 	-re "$gdb_prompt $" { fail "inc_dec_adds_subs_tests" }
    198 	timeout { fail "(timeout) inc_dec_adds_subs_tests" }
    199     }
    200 }
    201 
    202 proc all_daa_das_tests { } {
    203     global gdb_prompt
    204     global hex
    205     global decimal
    206 
    207     send_gdb "x/2i daa_das_tests\n"
    208     gdb_expect {
    209 	-re "
    210 .*daa\tr0l.*
    211 .*das\tr0h.*
    212 .*$gdb_prompt $" { pass "daa_das_tests" }
    213 	-re "$gdb_prompt $" { fail "daa_das_tests" }
    214 	timeout { fail "(timeout) daa_das_tests" }
    215     }
    216 }
    217 
    218 proc all_mul_div_tests { } {
    219     global gdb_prompt
    220     global hex
    221     global decimal
    222 
    223     send_gdb "x/8i mul_div_tests\n"
    224     gdb_expect {
    225 	-re "
    226 .*mulxs.b\tr0l,r1.*
    227 .*mulxs.w\tr2,er3.*
    228 .*mulxu.b\tr0l,e1.*
    229 .*mulxu.w\te2,er3.*
    230 .*divxs.b\tr0l,r1.*
    231 .*divxs.w\tr2,er3.*
    232 .*divxu.b\tr0l,e1.*
    233 .*divxu.w\te2,er3.*
    234 .*$gdb_prompt $" { pass "mul_div_tests" }
    235 	-re "$gdb_prompt $" { fail "mul_div_tests" }
    236 	timeout { fail "(timeout) mul_div_tests" }
    237     }
    238 }
    239 
    240 proc all_cmp_tests { } {
    241     global gdb_prompt
    242     global hex
    243     global decimal
    244 
    245     send_gdb "x/8i cmp_tests\n"
    246     gdb_expect {
    247 	-re "
    248 .*cmp.b\t#0x12,r0l.*
    249 .*cmp.b\tr1l,r1h.*
    250 .*cmp.w\t#0x1234,r2.*
    251 .*cmp.w\tr3,e3.*
    252 .*cmp.l\t#0x12345678,er4.*
    253 .*cmp.l\ter5,er6.*
    254 .*$gdb_prompt $" { pass "cmp_tests" }
    255 	-re "$gdb_prompt $" { fail "cmp_tests" }
    256 	timeout { fail "(timeout) cmp_tests" }
    257     }
    258 }
    259 
    260 proc all_neg_tests { } {
    261     global gdb_prompt
    262     global hex
    263     global decimal
    264 
    265     send_gdb "x/3i neg_tests\n"
    266     gdb_expect {
    267 	-re "
    268 .*neg.b\tr0l.*
    269 .*neg.w\tr2.*
    270 .*neg.l\ter3.*
    271 .*$gdb_prompt $" { pass "neg_tests" }
    272 	-re "$gdb_prompt $" { fail "neg_tests" }
    273 	timeout { fail "(timeout) neg_tests" }
    274     }
    275 }
    276 
    277 proc all_ext_tests { } {
    278     global gdb_prompt
    279     global hex
    280     global decimal
    281 
    282     send_gdb "x/4i ext_tests\n"
    283     gdb_expect {
    284 	-re "
    285 .*exts.w\tr0.*
    286 .*exts.l\ter1.*
    287 .*extu.w\tr2.*
    288 .*extu.l\ter3.*
    289 .*$gdb_prompt $" { pass "ext_tests" }
    290 	-re "$gdb_prompt $" { fail "ext_tests" }
    291 	timeout { fail "(timeout) ext_tests" }
    292     }
    293 }
    294 
    295 proc all_tas_mac_tests { } {
    296     global gdb_prompt
    297     global hex
    298     global decimal
    299 
    300     send_gdb "x/7i tas_mac_tests\n"
    301     gdb_expect {
    302 	-re "
    303 .*tas\t@er0.*
    304 .*mac\t@er1\\+,@er2\\+.*
    305 .*clrmac.*
    306 .*ldmac\ter4,mach.*
    307 .*ldmac\ter5,macl.*
    308 .*stmac\tmach,er6.*
    309 .*stmac\tmacl,er7.*
    310 .*$gdb_prompt $" { pass "tas_mac_tests" }
    311 	-re "$gdb_prompt $" { fail "tas_mac_tests" }
    312 	timeout { fail "(timeout) tas_mac_tests" }
    313     }
    314 }
    315 
    316 proc all_logic_operations_tests { } {
    317     global gdb_prompt
    318     global hex
    319     global decimal
    320 
    321     send_gdb "x/21i logic_operations_tests\n"
    322     gdb_expect {
    323 	-re "
    324 .*and.b\t#0x12,r0l.*
    325 .*and.b\tr1l,r2h.*
    326 .*and.w\t#0x1234,r0.*
    327 .*and.w\tr1,r2.*
    328 .*and.l\t#0x12345678,er0.*
    329 .*and.l\ter1,er2.*
    330 .*or.b\t#0x12,r0l.*
    331 .*or.b\tr1l,r2h.*
    332 .*or.w\t#0x1234,r0.*
    333 .*or.w\tr1,r2.*
    334 .*or.l\t#0x12345678,er0.*
    335 .*or.l\ter1,er2.*
    336 .*xor(.b|)\t#0x12,r0l.*
    337 .*xor(.b|)\tr1l,r2h.*
    338 .*xor.w\t#0x1234,r0.*
    339 .*xor.w\tr1,r2.*
    340 .*xor.l\t#0x12345678,er0.*
    341 .*xor.l\ter1,er2.*
    342 .*not.b\tr0l.*
    343 .*not.w\tr1.*
    344 .*not.l\ter2.*
    345 .*$gdb_prompt $" { pass "logic_operations_tests" }
    346 	-re "$gdb_prompt $" { fail "logic_operations_tests" }
    347 	timeout { fail "(timeout) logic_operations_tests" }
    348     }
    349 }
    350 
    351 proc all_sha_shl_tests { } {
    352     global gdb_prompt
    353     global hex
    354     global decimal
    355 
    356     send_gdb "x/12i sha_shl_tests\n"
    357     gdb_expect {
    358 	-re "
    359 .*shal(.b|)\tr0l.*
    360 .*shal(.w|)\tr1.*
    361 .*shal(.l|)\ter2.*
    362 .*shar(.b|)\tr3l.*
    363 .*shar(.w|)\tr4.*
    364 .*shar(.l|)\ter5.*
    365 .*shll(.b|)\tr0l.*
    366 .*shll(.w|)\tr1.*
    367 .*shll(.l|)\ter2.*
    368 .*shlr(.b|)\tr3l.*
    369 .*shlr(.w|)\tr4.*
    370 .*shlr(.l|)\ter5.*
    371 .*$gdb_prompt $" { pass "sha_shl_tests" }
    372 	-re "$gdb_prompt $" { fail "sha_shl_tests" }
    373 	timeout { fail "(timeout) sha_shl_tests" }
    374     }
    375 }
    376 
    377 proc all_rot_rotx_tests { } {
    378     global gdb_prompt
    379     global hex
    380     global decimal
    381 
    382     send_gdb "x/12i rot_rotx_tests\n"
    383     gdb_expect {
    384 	-re "
    385 .*rotl(.b|)\tr0l.*
    386 .*rotl(.w|)\tr1.*
    387 .*rotl(.l|)\ter2.*
    388 .*rotr(.b|)\tr3l.*
    389 .*rotr(.w|)\tr4.*
    390 .*rotr(.l|)\ter5.*
    391 .*rotxl(.b|)\tr0l.*
    392 .*rotxl(.w|)\tr1.*
    393 .*rotxl(.l|)\ter2.*
    394 .*rotxr(.b|)\tr3l.*
    395 .*rotxr(.w|)\tr4.*
    396 .*rotxr(.l|)\ter5.*
    397 .*$gdb_prompt $" { pass "rot_rotx_tests" }
    398 	-re "$gdb_prompt $" { fail "rot_rotx_tests" }
    399 	timeout { fail "(timeout) rot_rotx_tests" }
    400     }
    401 }
    402 
    403 proc all_bset_bclr_tests { } {
    404     global gdb_prompt
    405     global hex
    406     global decimal
    407 
    408     send_gdb "x/20i bset_bclr_tests\n"
    409     gdb_expect {
    410 	-re "
    411 .*bset\t#0x7,r0l.*
    412 .*bset\t#0x6,@er1.*
    413 .*bset\t#0x5,@0x12:8.*
    414 .*bset\t#0x4,@0x1234:16.*
    415 .*bset\t#0x3,@0x12345678:32.*
    416 .*bset\tr7l,r0h.*
    417 .*bset\tr6l,@er1.*
    418 .*bset\tr5l,@0x12:8.*
    419 .*bset\tr4l,@0x1234:16.*
    420 .*bset\tr3l,@0x12345678:32.*
    421 .*bclr\t#0x7,r0l.*
    422 .*bclr\t#0x6,@er1.*
    423 .*bclr\t#0x5,@0x12:8.*
    424 .*bclr\t#0x4,@0x1234:16.*
    425 .*bclr\t#0x3,@0x12345678:32.*
    426 .*bclr\tr7h,r0h.*
    427 .*bclr\tr6h,@er1.*
    428 .*bclr\tr5h,@0x12:8.*
    429 .*bclr\tr4h,@0x1234:16.*
    430 .*bclr\tr3h,@0x12345678:32.*
    431 .*$gdb_prompt $" { pass "bset_bclr_tests" }
    432 	-re "$gdb_prompt $" { fail "bset_bclr_tests" }
    433 	timeout { fail "(timeout) bset_bclr_tests" }
    434     }
    435 }
    436 
    437 proc all_bnot_btst_tests { } {
    438     global gdb_prompt
    439     global hex
    440     global decimal
    441 
    442     send_gdb "x/20i bnot_btst_tests\n"
    443     gdb_expect {
    444 	-re "
    445 .*bnot\t#0x7,r0l.*
    446 .*bnot\t#0x6,@er1.*
    447 .*bnot\t#0x5,@0x12:8.*
    448 .*bnot\t#0x4,@0x1234:16.*
    449 .*bnot\t#0x3,@0x12345678:32.*
    450 .*bnot\tr7l,r0h.*
    451 .*bnot\tr6l,@er1.*
    452 .*bnot\tr5l,@0x12:8.*
    453 .*bnot\tr4l,@0x1234:16.*
    454 .*bnot\tr3l,@0x12345678:32.*
    455 .*btst\t#0x7,r0l.*
    456 .*btst\t#0x6,@er1.*
    457 .*btst\t#0x5,@0x12:8.*
    458 .*btst\t#0x4,@0x1234:16.*
    459 .*btst\t#0x3,@0x12345678:32.*
    460 .*btst\tr7h,r0h.*
    461 .*btst\tr6h,@er1.*
    462 .*btst\tr5h,@0x12:8.*
    463 .*btst\tr4h,@0x1234:16.*
    464 .*btst\tr3h,@0x12345678:32.*
    465 .*$gdb_prompt $" { pass "bnot_btst_tests" }
    466 	-re "$gdb_prompt $" { fail "bnot_btst_tests" }
    467 	timeout { fail "(timeout) bnot_btst_tests" }
    468     }
    469 }
    470 
    471 proc all_band_bor_bxor_tests { } {
    472     global gdb_prompt
    473     global hex
    474     global decimal
    475 
    476     send_gdb "x/15i band_bor_bxor_tests\n"
    477     gdb_expect {
    478 	-re "
    479 .*band\t#0x7,r0l.*
    480 .*band\t#0x6,@er1.*
    481 .*band\t#0x5,@0x12:8.*
    482 .*band\t#0x4,@0x1234:16.*
    483 .*band\t#0x3,@0x12345678:32.*
    484 .*bor\t#0x7,r0l.*
    485 .*bor\t#0x6,@er1.*
    486 .*bor\t#0x5,@0x12:8.*
    487 .*bor\t#0x4,@0x1234:16.*
    488 .*bor\t#0x3,@0x12345678:32.*
    489 .*bxor\t#0x7,r0l.*
    490 .*bxor\t#0x6,@er1.*
    491 .*bxor\t#0x5,@0x12:8.*
    492 .*bxor\t#0x4,@0x1234:16.*
    493 .*bxor\t#0x3,@0x12345678:32.*
    494 .*$gdb_prompt $" { pass "band_bor_bxor_tests" }
    495 	-re "$gdb_prompt $" { fail "band_bor_bxor_tests" }
    496 	timeout { fail "(timeout) band_bor_bxor_tests" }
    497     }
    498 }
    499 
    500 proc all_bld_bst_tests { } {
    501     global gdb_prompt
    502     global hex
    503     global decimal
    504 
    505     send_gdb "x/20i bld_bst_tests\n"
    506     gdb_expect {
    507 	-re "
    508 .*bld\t#0x7,r0l.*
    509 .*bld\t#0x6,@er1.*
    510 .*bld\t#0x5,@0x12:8.*
    511 .*bld\t#0x4,@0x1234:16.*
    512 .*bld\t#0x3,@0x12345678:32.*
    513 .*bild\t#0x7,r0l.*
    514 .*bild\t#0x6,@er1.*
    515 .*bild\t#0x5,@0x12:8.*
    516 .*bild\t#0x4,@0x1234:16.*
    517 .*bild\t#0x3,@0x12345678:32.*
    518 .*bst\t#0x7,r0l.*
    519 .*bst\t#0x6,@er1.*
    520 .*bst\t#0x5,@0x12:8.*
    521 .*bst\t#0x4,@0x1234:16.*
    522 .*bst\t#0x3,@0x12345678:32.*
    523 .*bist\t#0x7,r0l.*
    524 .*bist\t#0x6,@er1.*
    525 .*bist\t#0x5,@0x12:8.*
    526 .*bist\t#0x4,@0x1234:16.*
    527 .*bist\t#0x3,@0x12345678:32.*
    528 .*$gdb_prompt $" { pass "bld_bst_tests" }
    529 	-re "$gdb_prompt $" { fail "bld_bst_tests" }
    530 	timeout { fail "(timeout) bld_bst_tests" }
    531     }
    532 }
    533 
    534 proc all_branch_tests { } {
    535     global gdb_prompt
    536     global hex
    537     global decimal
    538 
    539     send_gdb "x/25i branch_tests\n"
    540     gdb_expect {
    541 	-re "
    542 .*bra\t(branch_tests|.-2 ).*
    543 .*brn\t(branch_tests|.-4 ).*
    544 .*bhi\t(branch_tests|.-6 ).*
    545 .*bls\t(branch_tests|.-8 ).*
    546 .*bcc\t(branch_tests|.-10 ).*
    547 .*bcs\t(branch_tests|.-12 ).*
    548 .*bne\t(branch_tests|.-14 ).*
    549 .*beq\t(branch_tests|.-16 ).*
    550 .*bvc\t(branch_tests|.-18 ).*
    551 .*bvs\t(branch_tests|.-20 ).*
    552 .*bpl\t(branch_tests|.-22 ).*
    553 .*bmi\t(branch_tests|.-24 ).*
    554 .*bge\t(branch_tests|.-26 ).*
    555 .*blt\t(branch_tests|.-28 ).*
    556 .*bgt\t(branch_tests|.-30 ).*
    557 .*ble\t(branch_tests|.-32 ).*
    558 .*jmp\t@er0.*
    559 .*jmp\t@(branch_tests|0x).*
    560 .*jmp\t@@0 \\((0x|)0\\).*
    561 .*bsr\t(branch_tests|.-42 ).*
    562 .*bsr\t(branch_tests|.-46 ).*
    563 .*jsr\t@er0.*
    564 .*jsr\t@(branch_tests|0x).*
    565 .*jsr\t@@0 \\((0x|)0\\).*
    566 .*rts.*
    567 .*$gdb_prompt $" { pass "branch_tests" }
    568 	-re "$gdb_prompt $" { fail "branch_tests" }
    569 	timeout { fail "(timeout) branch_tests" }
    570     }
    571 }
    572 
    573 proc all_system_control_tests { } {
    574     global gdb_prompt
    575     global hex
    576     global decimal
    577 
    578     send_gdb "x/40i system_control_tests\n"
    579     gdb_expect {
    580 	-re "
    581 .*trapa\t#0x2.*
    582 .*rte.*
    583 .*sleep.*
    584 .*ldc\t#0x12,ccr*.
    585 .*ldc\tr3l,ccr.*
    586 .*ldc\t@er0,ccr.*
    587 .*ldc\t@\\(0x1234:16,er0\\),ccr.*
    588 .*ldc\t@\\(0x12345678:32,er0\\),ccr.*
    589 .*ldc\t@er1\\+,ccr.*
    590 .*ldc\t@0x1234:16,ccr.*
    591 .*ldc\t@0x12345678:32,ccr.*
    592 .*stc\tccr,r3l.*
    593 .*stc\tccr,@er0.*
    594 .*stc\tccr,@\\(0x1234:16,er0\\).*
    595 .*stc\tccr,@\\(0x12345678:32,er0\\).*
    596 .*stc\tccr,@\\-er1.*
    597 .*stc\tccr,@0x1234:16.*
    598 .*stc\tccr,@0x12345678:32.*
    599 .*andc\t#0x12,ccr.*
    600 .*orc\t#0x34,ccr.*
    601 .*xorc\t#0x56,ccr.*
    602 .*ldc\t#0x12,exr*.
    603 .*ldc\tr3l,exr.*
    604 .*ldc\t@er0,exr.*
    605 .*ldc\t@\\(0x1234:16,er0\\),exr.*
    606 .*ldc\t@\\(0x12345678:32,er0\\),exr.*
    607 .*ldc\t@er1\\+,exr.*
    608 .*ldc\t@0x1234:16,exr.*
    609 .*ldc\t@0x12345678:32,exr.*
    610 .*stc\texr,r3l.*
    611 .*stc\texr,@er0.*
    612 .*stc\texr,@\\(0x1234:16,er0\\).*
    613 .*stc\texr,@\\(0x12345678:32,er0\\).*
    614 .*stc\texr,@\\-er1.*
    615 .*stc\texr,@0x1234:16.*
    616 .*stc\texr,@0x12345678:32.*
    617 .*andc\t#0x12,exr.*
    618 .*orc\t#0x34,exr.*
    619 .*xorc\t#0x56,exr.*
    620 .*nop.*
    621 .*$gdb_prompt $" { pass "system_control_tests" }
    622 	-re "$gdb_prompt $" { fail "system_control_tests" }
    623 	timeout { fail "(timeout) system_control_tests" }
    624     }
    625 }
    626 
    627 proc all_block_data_transfer_tests { } {
    628     global gdb_prompt
    629     global hex
    630     global decimal
    631 
    632     send_gdb "x/2i block_data_transfer_tests\n"
    633     gdb_expect {
    634 	-re "
    635 .*eepmov.b.*
    636 .*eepmov.w.*
    637 .*$gdb_prompt $" { pass "block_data_transfer_tests" }
    638 	-re "$gdb_prompt $" { fail "block_data_transfer_tests" }
    639 	timeout { fail "(timeout) block_data_transfer_tests" }
    640     }
    641 }
    642 
    643 clean_restart
    644 all_set_machine_h8300s
    645 gdb_load $binfile
    646 
    647 # Data transfer
    648 all_movb_tests
    649 all_movw_tests
    650 all_movl_tests
    651 all_ldm_stm_tests
    652 all_movfpe_movtpe_tests
    653 
    654 # Arithmetic operations
    655 all_add_sub_addx_subx_tests
    656 all_inc_dec_adds_subs_tests
    657 all_daa_das_tests
    658 all_mul_div_tests
    659 all_cmp_tests
    660 all_neg_tests
    661 all_ext_tests
    662 all_tas_mac_tests
    663 
    664 # Logic operations
    665 all_logic_operations_tests
    666 
    667 # Shift
    668 all_sha_shl_tests
    669 all_rot_rotx_tests
    670 
    671 # Bit manipulation
    672 all_bset_bclr_tests
    673 all_bnot_btst_tests
    674 all_band_bor_bxor_tests
    675 all_bld_bst_tests
    676 
    677 # Branch
    678 all_branch_tests
    679 
    680 # System control
    681 all_system_control_tests
    682 
    683 # Block data transfer
    684 all_block_data_transfer_tests
    685