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