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