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