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