summaryrefslogtreecommitdiffstats
path: root/binutils-2.25/gas/testsuite/gas/h8300/t12_bit.exp
blob: 09ab62554760b7717dc3c67243b10859217ddcdd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
# Copyright 2012
# Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  

#
# Some h8300sx tests -- t12_bit
#

proc do_t12_bit_test {} {
    set testname "t12_bit.s -- h8sx bit tests"

    gas_start "t12_bit.s" "-al"

    # Check each instruction bit pattern to verify it got assembled correctly.

    set x 0
    expect {
	-re ".*   7 0000 7071" { set x [expr $x+1]; exp_continue; }
	-re ".*   8 0002 7D107070" { set x [expr $x+1]; exp_continue; }
	-re ".*   9 0006 7F127070" { set x [expr $x+1]; exp_continue; }
	-re ".*  10 000a 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  10      7070" { set x [expr $x+1]; exp_continue; }
	-re ".*  11 0010 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  11      56787070" { set x [expr $x+1]; exp_continue; }
	-re ".*  12              " {
	    if [expr $x == 7] then {
		pass "$testname: bset #0x7, ..."
	    } else {
		fail "$testname: bset #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bset #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  13 0018 6031" { set x [expr $x+1]; exp_continue; }
	-re ".*  14 001a 7D106030" { set x [expr $x+1]; exp_continue; }
	-re ".*  15 001e 7F126030" { set x [expr $x+1]; exp_continue; }
	-re ".*  16 0022 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  16      6030" { set x [expr $x+1]; exp_continue; }
	-re ".*  17 0028 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  17      56786030" { set x [expr $x+1]; exp_continue; }
	-re ".*  18              " {
	    if [expr $x == 7] then {
		pass "$testname: bset r3h, ..."
	    } else {
		fail "$testname: bset r3h, ... ($x)"
	    }
	}
        default	{ fail "$testname: bset r3h, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  19 0030 7D107077" { set x [expr $x+1]; exp_continue; }
	-re ".*  20 0034 7F127077" { set x [expr $x+1]; exp_continue; }
	-re ".*  21 0038 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  21      7077" { set x [expr $x+1]; exp_continue; }
	-re ".*  22 003e 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  22      56787077" { set x [expr $x+1]; exp_continue; }
	-re ".*  23              " {
	    if [expr $x == 6] then {
		pass "$testname: bset/eq #0x7, ..."
	    } else {
		fail "$testname: bset/eq #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bset/eq #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  24 0046 7D106037" { set x [expr $x+1]; exp_continue; }
	-re ".*  25 004a 7F126037" { set x [expr $x+1]; exp_continue; }
	-re ".*  26 004e 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  26      6037" { set x [expr $x+1]; exp_continue; }
	-re ".*  27 0054 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  27      56786037" { set x [expr $x+1]; exp_continue; }
	-re ".*  28              " {
	    if [expr $x == 6] then {
		pass "$testname: bset/eq r3h, ..."
	    } else {
		fail "$testname: bset/eq r3h, ... ($x)"
	    }
	}
        default	{ fail "$testname: bset/eq r3h, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  29 005c 7D107076" { set x [expr $x+1]; exp_continue; }
	-re ".*  30 0060 7F127076" { set x [expr $x+1]; exp_continue; }
	-re ".*  31 0064 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  31      7076" { set x [expr $x+1]; exp_continue; }
	-re ".*  32 006a 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  32      56787076" { set x [expr $x+1]; exp_continue; }
	-re ".*  33              " {
	    if [expr $x == 6] then {
		pass "$testname: bset/ne #0x7, ..."
	    } else {
		fail "$testname: bset/ne #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bset/ne #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  34 0072 7D106036" { set x [expr $x+1]; exp_continue; }
	-re ".*  35 0076 7F126036" { set x [expr $x+1]; exp_continue; }
	-re ".*  36 007a 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  36      6036" { set x [expr $x+1]; exp_continue; }
	-re ".*  37 0080 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  37      56786036" { set x [expr $x+1]; exp_continue; }
	-re ".*  38              " {
	    if [expr $x == 6] then {
		pass "$testname: bset/ne r3h, ..."
	    } else {
		fail "$testname: bset/ne r3h, ... ($x)"
	    }
	}
        default	{ fail "$testname: bset/ne r3h, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  39 0088 7171" { set x [expr $x+1]; exp_continue; }
	-re ".*  40 008a 7D107170" { set x [expr $x+1]; exp_continue; }
	-re ".*  41 008e 7F127170" { set x [expr $x+1]; exp_continue; }
	-re ".*  42 0092 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  42      7170" { set x [expr $x+1]; exp_continue; }
	-re ".*  43 0098 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  43      56787170" { set x [expr $x+1]; exp_continue; }
	-re ".*  44              " {
	    if [expr $x == 7] then {
		pass "$testname: bnot #0x7, ..."
	    } else {
		fail "$testname: bnot #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bnot #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  45 00a0 6131" { set x [expr $x+1]; exp_continue; }
	-re ".*  46 00a2 7D106130" { set x [expr $x+1]; exp_continue; }
	-re ".*  47 00a6 7F126130" { set x [expr $x+1]; exp_continue; }
	-re ".*  48 00aa 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  48      6130" { set x [expr $x+1]; exp_continue; }
	-re ".*  49 00b0 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  49      56786130" { set x [expr $x+1]; exp_continue; }
	-re ".*  50              " {
	    if [expr $x == 7] then {
		pass "$testname: bnot r3h, ..."
	    } else {
		fail "$testname: bnot r3h, ... ($x)"
	    }
	}
        default	{ fail "$testname: bnot r3h, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  51 00b8 7271" { set x [expr $x+1]; exp_continue; }
	-re ".*  52 00ba 7D107270" { set x [expr $x+1]; exp_continue; }
	-re ".*  53 00be 7F127270" { set x [expr $x+1]; exp_continue; }
	-re ".*  54 00c2 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  54      7270" { set x [expr $x+1]; exp_continue; }
	-re ".*  55 00c8 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  55      56787270" { set x [expr $x+1]; exp_continue; }
	-re ".*  56              " {
	    if [expr $x == 7] then {
		pass "$testname: bclr #0x7, ..."
	    } else {
		fail "$testname: bclr #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bclr #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  57 00d0 6231" { set x [expr $x+1]; exp_continue; }
	-re ".*  58 00d2 7D106230" { set x [expr $x+1]; exp_continue; }
	-re ".*  59 00d6 7F126230" { set x [expr $x+1]; exp_continue; }
	-re ".*  60 00da 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  60      6230" { set x [expr $x+1]; exp_continue; }
	-re ".*  61 00e0 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  61      56786230" { set x [expr $x+1]; exp_continue; }
	-re ".*  62              " {
	    if [expr $x == 7] then {
		pass "$testname: bclr r3h, ..."
	    } else {
		fail "$testname: bclr r3h, ... ($x)"
	    }
	}
        default	{ fail "$testname: bclr r3h, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  63 00e8 7D107277" { set x [expr $x+1]; exp_continue; }
	-re ".*  64 00ec 7F127277" { set x [expr $x+1]; exp_continue; }
	-re ".*  65 00f0 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  65      7277" { set x [expr $x+1]; exp_continue; }
	-re ".*  66 00f6 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  66      56787277" { set x [expr $x+1]; exp_continue; }
	-re ".*  67              " {
	    if [expr $x == 6] then {
		pass "$testname: bclr/eq #0x7, ..."
	    } else {
		fail "$testname: bclr/eq #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bclr/eq #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  68 00fe 7D106237" { set x [expr $x+1]; exp_continue; }
	-re ".*  69 0102 7F126237" { set x [expr $x+1]; exp_continue; }
	-re ".*  70 0106 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  70      6237" { set x [expr $x+1]; exp_continue; }
	-re ".*  71 010c 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  71      56786237" { set x [expr $x+1]; exp_continue; }
	-re ".*  72              " {
	    if [expr $x == 6] then {
		pass "$testname: bclr/eq r3h, ..."
	    } else {
		fail "$testname: bclr/eq r3h, ... ($x)"
	    }
	}
        default	{ fail "$testname: bclr/eq r3h, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  73 0114 7D107276" { set x [expr $x+1]; exp_continue; }
	-re ".*  74 0118 7F127276" { set x [expr $x+1]; exp_continue; }
	-re ".*  75 011c 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  75      7276" { set x [expr $x+1]; exp_continue; }
	-re ".*  76 0122 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  76      56787276" { set x [expr $x+1]; exp_continue; }
	-re ".*  77              " {
	    if [expr $x == 6] then {
		pass "$testname: bclr/ne #0x7, ..."
	    } else {
		fail "$testname: bclr/ne #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bclr/ne #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  78 012a 7D106236" { set x [expr $x+1]; exp_continue; }
	-re ".*  79 012e 7F126236" { set x [expr $x+1]; exp_continue; }
	-re ".*  80 0132 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".*  80      6236" { set x [expr $x+1]; exp_continue; }
	-re ".*  81 0138 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".*  81      56786236" { set x [expr $x+1]; exp_continue; }
	-re ".*  82              " {
	    if [expr $x == 6] then {
		pass "$testname: bclr/ne r3h, ..."
	    } else {
		fail "$testname: bclr/ne r3h, ... ($x)"
	    }
	}
        default	{ fail "$testname: bclr/ne r3h, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  83 0140 7371" { set x [expr $x+1]; exp_continue; }
	-re ".*  84 0142 7C107370" { set x [expr $x+1]; exp_continue; }
	-re ".*  85 0146 7E127370" { set x [expr $x+1]; exp_continue; }
	-re ".*  86 014a 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".*  86      7370" { set x [expr $x+1]; exp_continue; }
	-re ".*  87 0150 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".*  87      56787370" { set x [expr $x+1]; exp_continue; }
	-re ".*  88              " {
	    if [expr $x == 7] then {
		pass "$testname: btst #0x7, ..."
	    } else {
		fail "$testname: btst #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: btst #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  89 0158 6331" { set x [expr $x+1]; exp_continue; }
	-re ".*  90 015a 7C106330" { set x [expr $x+1]; exp_continue; }
	-re ".*  91 015e 7E126330" { set x [expr $x+1]; exp_continue; }
	-re ".*  92 0162 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".*  92      6330" { set x [expr $x+1]; exp_continue; }
	-re ".*  93 0168 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".*  93      56786330" { set x [expr $x+1]; exp_continue; }
	-re ".*  94              " {
	    if [expr $x == 7] then {
		pass "$testname: btst r3h, ..."
	    } else {
		fail "$testname: btst r3h, ... ($x)"
	    }
	}
        default	{ fail "$testname: btst r3h, ... ($x)" }
    }

    set x 0
    expect {
	-re ".*  95 0170 7471" { set x [expr $x+1]; exp_continue; }
	-re ".*  96 0172 7C107470" { set x [expr $x+1]; exp_continue; }
	-re ".*  97 0176 7E127470" { set x [expr $x+1]; exp_continue; }
	-re ".*  98 017a 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".*  98      7470" { set x [expr $x+1]; exp_continue; }
	-re ".*  99 0180 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".*  99      56787470" { set x [expr $x+1]; exp_continue; }
	-re ".* 100              " {
	    if [expr $x == 7] then {
		pass "$testname: bor #0x7, ..."
	    } else {
		fail "$testname: bor #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bor #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 101 0188 74F1" { set x [expr $x+1]; exp_continue; }
	-re ".* 102 018a 7C1074F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 103 018e 7E1274F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 104 0192 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".* 104      74F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 105 0198 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".* 105      567874F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 106              " {
	    if [expr $x == 7] then {
		pass "$testname: bior #0x7, ..."
	    } else {
		fail "$testname: bior #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bior #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 107 01a0 7571" { set x [expr $x+1]; exp_continue; }
	-re ".* 108 01a2 7C107570" { set x [expr $x+1]; exp_continue; }
	-re ".* 109 01a6 7E127570" { set x [expr $x+1]; exp_continue; }
	-re ".* 110 01aa 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".* 110      7570" { set x [expr $x+1]; exp_continue; }
	-re ".* 111 01b0 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".* 111      56787570" { set x [expr $x+1]; exp_continue; }
	-re ".* 112              " {
	    if [expr $x == 7] then {
		pass "$testname: bxor #0x7, ..."
	    } else {
		fail "$testname: bxor #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bxor #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 113 01b8 75F1" { set x [expr $x+1]; exp_continue; }
	-re ".* 114 01ba 7C1075F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 115 01be 7E1275F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 116 01c2 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".* 116      75F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 117 01c8 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".* 117      567875F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 118              " {
	    if [expr $x == 7] then {
		pass "$testname: bixor #0x7, ..."
	    } else {
		fail "$testname: bixor #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bixor #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 119 01d0 7671" { set x [expr $x+1]; exp_continue; }
	-re ".* 120 01d2 7C107670" { set x [expr $x+1]; exp_continue; }
	-re ".* 121 01d6 7E127670" { set x [expr $x+1]; exp_continue; }
	-re ".* 122 01da 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".* 122      7670" { set x [expr $x+1]; exp_continue; }
	-re ".* 123 01e0 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".* 123      56787670" { set x [expr $x+1]; exp_continue; }
	-re ".* 124              " {
	    if [expr $x == 7] then {
		pass "$testname: band #0x7, ..."
	    } else {
		fail "$testname: band #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: band #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 125 01e8 76F1" { set x [expr $x+1]; exp_continue; }
	-re ".* 126 01ea 7C1076F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 127 01ee 7E1276F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 128 01f2 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".* 128      76F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 129 01f8 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".* 129      567876F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 130              " {
	    if [expr $x == 7] then {
		pass "$testname: biand #0x7, ..."
	    } else {
		fail "$testname: biand #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: biand #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 131 0200 7771" { set x [expr $x+1]; exp_continue; }
	-re ".* 132 0202 7C107770" { set x [expr $x+1]; exp_continue; }
	-re ".* 133 0206 7E127770" { set x [expr $x+1]; exp_continue; }
	-re ".* 134 020a 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".* 134      7770" { set x [expr $x+1]; exp_continue; }
	-re ".* 135 0210 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".* 135      56787770" { set x [expr $x+1]; exp_continue; }
	-re ".* 136              " {
	    if [expr $x == 7] then {
		pass "$testname: bld #0x7, ..."
	    } else {
		fail "$testname: bld #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bld #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 137 0218 77F1" { set x [expr $x+1]; exp_continue; }
	-re ".* 138 021a 7C1077F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 139 021e 7E1277F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 140 0222 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".* 140      77F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 141 0228 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".* 141      567877F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 142              " {
	    if [expr $x == 7] then {
		pass "$testname: bild #0x7, ..."
	    } else {
		fail "$testname: bild #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bild #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 143 0230 6771" { set x [expr $x+1]; exp_continue; }
	-re ".* 144 0232 7D106770" { set x [expr $x+1]; exp_continue; }
	-re ".* 145 0236 7F126770" { set x [expr $x+1]; exp_continue; }
	-re ".* 146 023a 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".* 146      6770" { set x [expr $x+1]; exp_continue; }
	-re ".* 147 0240 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".* 147      56786770" { set x [expr $x+1]; exp_continue; }
	-re ".* 148              " {
	    if [expr $x == 7] then {
		pass "$testname: bst #0x7, ..."
	    } else {
		fail "$testname: bst #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bst #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 149 0248 7D106777" { set x [expr $x+1]; exp_continue; }
	-re ".* 150 024c 7F126777" { set x [expr $x+1]; exp_continue; }
	-re ".* 151 0250 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".* 151      6777" { set x [expr $x+1]; exp_continue; }
	-re ".* 152 0256 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".* 152      56786777" { set x [expr $x+1]; exp_continue; }
	-re ".* 153              " {
	    if [expr $x == 6] then {
		pass "$testname: bstz #0x7, ..."
	    } else {
		fail "$testname: bstz #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bstz #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 154 025e 67F1" { set x [expr $x+1]; exp_continue; }
	-re ".* 155 0260 7D1067F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 156 0264 7F1267F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 157 0268 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".* 157      67F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 158 026e 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".* 158      567867F0" { set x [expr $x+1]; exp_continue; }
	-re ".* 159              " {
	    if [expr $x == 7] then {
		pass "$testname: bist #0x7, ..."
	    } else {
		fail "$testname: bist #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bist #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 160 0276 7D1067F7" { set x [expr $x+1]; exp_continue; }
	-re ".* 161 027a 7F1267F7" { set x [expr $x+1]; exp_continue; }
	-re ".* 162 027e 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".* 162      67F7" { set x [expr $x+1]; exp_continue; }
	-re ".* 163 0284 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".* 163      567867F7" { set x [expr $x+1]; exp_continue; }
	-re ".* 164              " {
	    if [expr $x == 6] then {
		pass "$testname: bistz #0x7, ..."
	    } else {
		fail "$testname: bistz #0x7, ... ($x)"
	    }
	}
        default	{ fail "$testname: bistz #0x7, ... ($x)" }
    }

    set x 0
    expect {
	-re ".* 165 028c 7C10F334" { set x [expr $x+1]; exp_continue; }
	-re ".* 166 0290 7E12F334" { set x [expr $x+1]; exp_continue; }
	-re ".* 167 0294 6A101234" { set x [expr $x+1]; exp_continue; }
	-re ".* 167      F334" { set x [expr $x+1]; exp_continue; }
	-re ".* 168 029a 6A301234" { set x [expr $x+1]; exp_continue; }
	-re ".* 168      5678F334" { set x [expr $x+1]; exp_continue; }
	-re ".* 169              " {
	    if [expr $x == 6] then {
		pass "$testname: bfld #0x34:8, ..., r3h"
	    } else {
		fail "$testname: bfld #0x34:8, ..., r3h ($x)"
	    }
	}
        default	{ fail "$testname: bfld #0x34:8, ..., r3h ($x)" }
    }

    set x 0
    expect {
	-re ".* 170 02a2 7D10F334" { set x [expr $x+1]; exp_continue; }
	-re ".* 171 02a6 7F12F334" { set x [expr $x+1]; exp_continue; }
	-re ".* 172 02aa 6A181234" { set x [expr $x+1]; exp_continue; }
	-re ".* 172      F334" { set x [expr $x+1]; exp_continue; }
	-re ".* 173 02b0 6A381234" { set x [expr $x+1]; exp_continue; }
	-re ".* 173      5678F334" { set x [expr $x+1]; exp_continue; }
	-re ".* 174              " {
	    if [expr $x == 6] then {
		pass "$testname: bfst r3h, #0x34:8, ..."
	    } else {
		fail "$testname: bfst r3h, #0x34:8, ... ($x)"
	    }
	}
        default	{ fail "$testname: bfst r3h, #0x34:8, ... ($x)" }
    }

    # This was intended to do any cleanup necessary.
    # It kinda looks like it isn't needed, but just
    # in case, please keep it in for now.

    gas_finish

}

if [istarget h8300*-*-elf] then {
    # Test advanced h8300sx instructions.
    do_t12_bit_test
}