1#
2# Some h8300sx tests -- t07_ari3
3#
4
5proc do_t07_ari3_test {} {
6    set testname "t07_ari3.s -- h8sx arithmetic tests"
7
8    gas_start "t07_ari3.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 1781" { set x [expr $x+1]; exp_continue; }
15	-re ".*   8 0002 7D101780" { set x [expr $x+1]; exp_continue; }
16	-re ".*   9 0006 01776818" { set x [expr $x+1]; exp_continue; }
17	-re ".*   9      1780" { set x [expr $x+1]; exp_continue; }
18	-re ".*  10 000c 01746C18" { set x [expr $x+1]; exp_continue; }
19	-re ".*  10      1780" { set x [expr $x+1]; exp_continue; }
20	-re ".*  11 0012 01776C18" { set x [expr $x+1]; exp_continue; }
21	-re ".*  11      1780" { set x [expr $x+1]; exp_continue; }
22	-re ".*  12 0018 01756C18" { set x [expr $x+1]; exp_continue; }
23	-re ".*  12      1780" { set x [expr $x+1]; exp_continue; }
24	-re ".*  13 001e 01766C18" { set x [expr $x+1]; exp_continue; }
25	-re ".*  13      1780" { set x [expr $x+1]; exp_continue; }
26	-re ".*  14 0024 01746E18" { set x [expr $x+1]; exp_continue; }
27	-re ".*  14      12341780" { set x [expr $x+1]; exp_continue; }
28	-re ".*  15 002c 78146A28" { set x [expr $x+1]; exp_continue; }
29	-re ".*  15      12345678" { set x [expr $x+1]; exp_continue; }
30	-re ".*  15      1780" { set x [expr $x+1]; exp_continue; }
31	-re ".*  16 0036 01756E28" { set x [expr $x+1]; exp_continue; }
32	-re ".*  16      12341780" { set x [expr $x+1]; exp_continue; }
33	-re ".*  17 003e 01766E28" { set x [expr $x+1]; exp_continue; }
34	-re ".*  17      12341780" { set x [expr $x+1]; exp_continue; }
35	-re ".*  18 0046 01776E28" { set x [expr $x+1]; exp_continue; }
36	-re ".*  18      12341780" { set x [expr $x+1]; exp_continue; }
37	-re ".*  19 004e 78256A28" { set x [expr $x+1]; exp_continue; }
38	-re ".*  19      12345678" { set x [expr $x+1]; exp_continue; }
39	-re ".*  19      1780" { set x [expr $x+1]; exp_continue; }
40	-re ".*  20 0058 78266A28" { set x [expr $x+1]; exp_continue; }
41	-re ".*  20      12345678" { set x [expr $x+1]; exp_continue; }
42	-re ".*  20      1780" { set x [expr $x+1]; exp_continue; }
43	-re ".*  21 0062 78276A28" { set x [expr $x+1]; exp_continue; }
44	-re ".*  21      12345678" { set x [expr $x+1]; exp_continue; }
45	-re ".*  21      1780" { set x [expr $x+1]; exp_continue; }
46	-re ".*  22 006c 7F121780" { set x [expr $x+1]; exp_continue; }
47	-re ".*  23 0070 6A181234" { set x [expr $x+1]; exp_continue; }
48	-re ".*  23      1780" { set x [expr $x+1]; exp_continue; }
49	-re ".*  24 0076 6A381234" { set x [expr $x+1]; exp_continue; }
50	-re ".*  24      56781780" { set x [expr $x+1]; exp_continue; }
51	-re ".*  25              " {
52	    if [expr $x == 37] then {
53		pass "$testname: neg.b ..."
54	    } else {
55		fail "$testname: neg.b ... ($x)"
56	    }
57	}
58        default	{ fail "$testname: neg.b ... ($x)" }
59    }
60
61    set x 0
62    expect {
63	-re ".*  26 007e 1791" { set x [expr $x+1]; exp_continue; }
64	-re ".*  27 0080 7D901790" { set x [expr $x+1]; exp_continue; }
65	-re ".*  28 0084 01576918" { set x [expr $x+1]; exp_continue; }
66	-re ".*  28      1790" { set x [expr $x+1]; exp_continue; }
67	-re ".*  29 008a 01546D18" { set x [expr $x+1]; exp_continue; }
68	-re ".*  29      1790" { set x [expr $x+1]; exp_continue; }
69	-re ".*  30 0090 01576D18" { set x [expr $x+1]; exp_continue; }
70	-re ".*  30      1790" { set x [expr $x+1]; exp_continue; }
71	-re ".*  31 0096 01556D18" { set x [expr $x+1]; exp_continue; }
72	-re ".*  31      1790" { set x [expr $x+1]; exp_continue; }
73	-re ".*  32 009c 01566D18" { set x [expr $x+1]; exp_continue; }
74	-re ".*  32      1790" { set x [expr $x+1]; exp_continue; }
75	-re ".*  33 00a2 01546F18" { set x [expr $x+1]; exp_continue; }
76	-re ".*  33      12341790" { set x [expr $x+1]; exp_continue; }
77	-re ".*  34 00aa 78146B28" { set x [expr $x+1]; exp_continue; }
78	-re ".*  34      12345678" { set x [expr $x+1]; exp_continue; }
79	-re ".*  34      1790" { set x [expr $x+1]; exp_continue; }
80	-re ".*  35 00b4 01556F28" { set x [expr $x+1]; exp_continue; }
81	-re ".*  35      12341790" { set x [expr $x+1]; exp_continue; }
82	-re ".*  36 00bc 01566F28" { set x [expr $x+1]; exp_continue; }
83	-re ".*  36      12341790" { set x [expr $x+1]; exp_continue; }
84	-re ".*  37 00c4 01576F28" { set x [expr $x+1]; exp_continue; }
85	-re ".*  37      12341790" { set x [expr $x+1]; exp_continue; }
86	-re ".*  38 00cc 78256B28" { set x [expr $x+1]; exp_continue; }
87	-re ".*  38      12345678" { set x [expr $x+1]; exp_continue; }
88	-re ".*  38      1790" { set x [expr $x+1]; exp_continue; }
89	-re ".*  39 00d6 78266B28" { set x [expr $x+1]; exp_continue; }
90	-re ".*  39      12345678" { set x [expr $x+1]; exp_continue; }
91	-re ".*  39      1790" { set x [expr $x+1]; exp_continue; }
92	-re ".*  40 00e0 78276B28" { set x [expr $x+1]; exp_continue; }
93	-re ".*  40      12345678" { set x [expr $x+1]; exp_continue; }
94	-re ".*  40      1790" { set x [expr $x+1]; exp_continue; }
95	-re ".*  41 00ea 6B181234" { set x [expr $x+1]; exp_continue; }
96	-re ".*  41      1790" { set x [expr $x+1]; exp_continue; }
97	-re ".*  42 00f0 6B381234" { set x [expr $x+1]; exp_continue; }
98	-re ".*  42      56781790" { set x [expr $x+1]; exp_continue; }
99	-re ".*  43              " {
100	    if [expr $x == 36] then {
101		pass "$testname: neg.w ..."
102	    } else {
103		fail "$testname: neg.w ... ($x)"
104	    }
105	}
106        default	{ fail "$testname: neg.w ... ($x)" }
107    }
108
109    set x 0
110    expect {
111	-re ".*  44 00f8 17B1" { set x [expr $x+1]; exp_continue; }
112	-re ".*  45 00fa 01046918" { set x [expr $x+1]; exp_continue; }
113	-re ".*  45      17B0" { set x [expr $x+1]; exp_continue; }
114	-re ".*  46 0100 01076918" { set x [expr $x+1]; exp_continue; }
115	-re ".*  46      17B0" { set x [expr $x+1]; exp_continue; }
116	-re ".*  47 0106 01046D18" { set x [expr $x+1]; exp_continue; }
117	-re ".*  47      17B0" { set x [expr $x+1]; exp_continue; }
118	-re ".*  48 010c 01076D18" { set x [expr $x+1]; exp_continue; }
119	-re ".*  48      17B0" { set x [expr $x+1]; exp_continue; }
120	-re ".*  49 0112 01056D18" { set x [expr $x+1]; exp_continue; }
121	-re ".*  49      17B0" { set x [expr $x+1]; exp_continue; }
122	-re ".*  50 0118 01066D18" { set x [expr $x+1]; exp_continue; }
123	-re ".*  50      17B0" { set x [expr $x+1]; exp_continue; }
124	-re ".*  51 011e 01046F18" { set x [expr $x+1]; exp_continue; }
125	-re ".*  51      123417B0" { set x [expr $x+1]; exp_continue; }
126	-re ".*  52 0126 78946B28" { set x [expr $x+1]; exp_continue; }
127	-re ".*  52      12345678" { set x [expr $x+1]; exp_continue; }
128	-re ".*  52      17B0" { set x [expr $x+1]; exp_continue; }
129	-re ".*  53 0130 01056F28" { set x [expr $x+1]; exp_continue; }
130	-re ".*  53      123417B0" { set x [expr $x+1]; exp_continue; }
131	-re ".*  54 0138 01066F28" { set x [expr $x+1]; exp_continue; }
132	-re ".*  54      123417B0" { set x [expr $x+1]; exp_continue; }
133	-re ".*  55 0140 01076F28" { set x [expr $x+1]; exp_continue; }
134	-re ".*  55      123417B0" { set x [expr $x+1]; exp_continue; }
135	-re ".*  56 0148 78A56B28" { set x [expr $x+1]; exp_continue; }
136	-re ".*  56      12345678" { set x [expr $x+1]; exp_continue; }
137	-re ".*  56      17B0" { set x [expr $x+1]; exp_continue; }
138	-re ".*  57 0152 78A66B28" { set x [expr $x+1]; exp_continue; }
139	-re ".*  57      12345678" { set x [expr $x+1]; exp_continue; }
140	-re ".*  57      17B0" { set x [expr $x+1]; exp_continue; }
141	-re ".*  58 015c 78A76B28" { set x [expr $x+1]; exp_continue; }
142	-re ".*  58      12345678" { set x [expr $x+1]; exp_continue; }
143	-re ".*  58      17B0" { set x [expr $x+1]; exp_continue; }
144	-re ".*  59 0166 01046B08" { set x [expr $x+1]; exp_continue; }
145	-re ".*  59      123417B0" { set x [expr $x+1]; exp_continue; }
146	-re ".*  60 016e 01046B28" { set x [expr $x+1]; exp_continue; }
147	-re ".*  60      12345678" { set x [expr $x+1]; exp_continue; }
148	-re ".*  60      17B0" { set x [expr $x+1]; exp_continue; }
149	-re ".*  61              " {
150	    if [expr $x == 38] then {
151		pass "$testname: neg.l ..."
152	    } else {
153		fail "$testname: neg.l ... ($x)"
154	    }
155	}
156        default	{ fail "$testname: neg.l ... ($x)" }
157    }
158
159    set x 0
160    expect {
161	-re ".*  62 0178 01E07B1C" { set x [expr $x+1]; exp_continue; }
162	-re ".*  63              " {
163	    if [expr $x == 1] then {
164		pass "$testname: tas @er1"
165	    } else {
166		fail "$testname: tas @er1 ($x)"
167	    }
168	}
169        default	{ fail "$testname: tas @er1 ($x)" }
170    }
171
172    set x 0
173    expect {
174	-re ".*  64 017c 1751" { set x [expr $x+1]; exp_continue; }
175	-re ".*  65 017e 7D901750" { set x [expr $x+1]; exp_continue; }
176	-re ".*  66 0182 01576918" { set x [expr $x+1]; exp_continue; }
177	-re ".*  66      1750" { set x [expr $x+1]; exp_continue; }
178	-re ".*  67 0188 01546D18" { set x [expr $x+1]; exp_continue; }
179	-re ".*  67      1750" { set x [expr $x+1]; exp_continue; }
180	-re ".*  68 018e 01576D18" { set x [expr $x+1]; exp_continue; }
181	-re ".*  68      1750" { set x [expr $x+1]; exp_continue; }
182	-re ".*  69 0194 01556D18" { set x [expr $x+1]; exp_continue; }
183	-re ".*  69      1750" { set x [expr $x+1]; exp_continue; }
184	-re ".*  70 019a 01566D18" { set x [expr $x+1]; exp_continue; }
185	-re ".*  70      1750" { set x [expr $x+1]; exp_continue; }
186	-re ".*  71 01a0 01546F18" { set x [expr $x+1]; exp_continue; }
187	-re ".*  71      12341750" { set x [expr $x+1]; exp_continue; }
188	-re ".*  72 01a8 78146B28" { set x [expr $x+1]; exp_continue; }
189	-re ".*  72      12345678" { set x [expr $x+1]; exp_continue; }
190	-re ".*  72      1750" { set x [expr $x+1]; exp_continue; }
191	-re ".*  73 01b2 01556F28" { set x [expr $x+1]; exp_continue; }
192	-re ".*  73      12341750" { set x [expr $x+1]; exp_continue; }
193	-re ".*  74 01ba 01566F28" { set x [expr $x+1]; exp_continue; }
194	-re ".*  74      12341750" { set x [expr $x+1]; exp_continue; }
195	-re ".*  75 01c2 01576F28" { set x [expr $x+1]; exp_continue; }
196	-re ".*  75      12341750" { set x [expr $x+1]; exp_continue; }
197	-re ".*  76 01ca 78256B28" { set x [expr $x+1]; exp_continue; }
198	-re ".*  76      12345678" { set x [expr $x+1]; exp_continue; }
199	-re ".*  76      1750" { set x [expr $x+1]; exp_continue; }
200	-re ".*  77 01d4 78266B28" { set x [expr $x+1]; exp_continue; }
201	-re ".*  77      12345678" { set x [expr $x+1]; exp_continue; }
202	-re ".*  77      1750" { set x [expr $x+1]; exp_continue; }
203	-re ".*  78 01de 78276B28" { set x [expr $x+1]; exp_continue; }
204	-re ".*  78      12345678" { set x [expr $x+1]; exp_continue; }
205	-re ".*  78      1750" { set x [expr $x+1]; exp_continue; }
206	-re ".*  79 01e8 6B181234" { set x [expr $x+1]; exp_continue; }
207	-re ".*  79      1750" { set x [expr $x+1]; exp_continue; }
208	-re ".*  80 01ee 6B381234" { set x [expr $x+1]; exp_continue; }
209	-re ".*  80      56781750" { set x [expr $x+1]; exp_continue; }
210	-re ".*  81              " {
211	    if [expr $x == 36] then {
212		pass "$testname: extu.w ..."
213	    } else {
214		fail "$testname: extu.w ... ($x)"
215	    }
216	}
217        default	{ fail "$testname: extu.w ... ($x)" }
218    }
219
220    set x 0
221    expect {
222	-re ".*  82 01f6 1771" { set x [expr $x+1]; exp_continue; }
223	-re ".*  83 01f8 01046918" { set x [expr $x+1]; exp_continue; }
224	-re ".*  83      1770" { set x [expr $x+1]; exp_continue; }
225	-re ".*  84 01fe 01076918" { set x [expr $x+1]; exp_continue; }
226	-re ".*  84      1770" { set x [expr $x+1]; exp_continue; }
227	-re ".*  85 0204 01046D18" { set x [expr $x+1]; exp_continue; }
228	-re ".*  85      1770" { set x [expr $x+1]; exp_continue; }
229	-re ".*  86 020a 01076D18" { set x [expr $x+1]; exp_continue; }
230	-re ".*  86      1770" { set x [expr $x+1]; exp_continue; }
231	-re ".*  87 0210 01056D18" { set x [expr $x+1]; exp_continue; }
232	-re ".*  87      1770" { set x [expr $x+1]; exp_continue; }
233	-re ".*  88 0216 01066D18" { set x [expr $x+1]; exp_continue; }
234	-re ".*  88      1770" { set x [expr $x+1]; exp_continue; }
235	-re ".*  89 021c 01046F18" { set x [expr $x+1]; exp_continue; }
236	-re ".*  89      12341770" { set x [expr $x+1]; exp_continue; }
237	-re ".*  90 0224 78946B28" { set x [expr $x+1]; exp_continue; }
238	-re ".*  90      12345678" { set x [expr $x+1]; exp_continue; }
239	-re ".*  90      1770" { set x [expr $x+1]; exp_continue; }
240	-re ".*  91 022e 01056F28" { set x [expr $x+1]; exp_continue; }
241	-re ".*  91      12341770" { set x [expr $x+1]; exp_continue; }
242	-re ".*  92 0236 01066F28" { set x [expr $x+1]; exp_continue; }
243	-re ".*  92      12341770" { set x [expr $x+1]; exp_continue; }
244	-re ".*  93 023e 01076F28" { set x [expr $x+1]; exp_continue; }
245	-re ".*  93      12341770" { set x [expr $x+1]; exp_continue; }
246	-re ".*  94 0246 78A56B28" { set x [expr $x+1]; exp_continue; }
247	-re ".*  94      12345678" { set x [expr $x+1]; exp_continue; }
248	-re ".*  94      1770" { set x [expr $x+1]; exp_continue; }
249	-re ".*  95 0250 78A66B28" { set x [expr $x+1]; exp_continue; }
250	-re ".*  95      12345678" { set x [expr $x+1]; exp_continue; }
251	-re ".*  95      1770" { set x [expr $x+1]; exp_continue; }
252	-re ".*  96 025a 78A76B28" { set x [expr $x+1]; exp_continue; }
253	-re ".*  96      12345678" { set x [expr $x+1]; exp_continue; }
254	-re ".*  96      1770" { set x [expr $x+1]; exp_continue; }
255	-re ".*  97 0264 01046B08" { set x [expr $x+1]; exp_continue; }
256	-re ".*  97      12341770" { set x [expr $x+1]; exp_continue; }
257	-re ".*  98 026c 01046B28" { set x [expr $x+1]; exp_continue; }
258	-re ".*  98      12345678" { set x [expr $x+1]; exp_continue; }
259	-re ".*  98      1770" { set x [expr $x+1]; exp_continue; }
260	-re ".*  99              " {
261	    if [expr $x == 38] then {
262		pass "$testname: extu.l ..."
263	    } else {
264		fail "$testname: extu.l ... ($x)"
265	    }
266	}
267        default	{ fail "$testname: extu.l ... ($x)" }
268    }
269
270    set x 0
271    expect {
272	-re ".* 100 0276 1761" { set x [expr $x+1]; exp_continue; }
273	-re ".* 101 0278 01046918" { set x [expr $x+1]; exp_continue; }
274	-re ".* 101      1760" { set x [expr $x+1]; exp_continue; }
275	-re ".* 102 027e 01076918" { set x [expr $x+1]; exp_continue; }
276	-re ".* 102      1760" { set x [expr $x+1]; exp_continue; }
277	-re ".* 103 0284 01046D18" { set x [expr $x+1]; exp_continue; }
278	-re ".* 103      1760" { set x [expr $x+1]; exp_continue; }
279	-re ".* 104 028a 01076D18" { set x [expr $x+1]; exp_continue; }
280	-re ".* 104      1760" { set x [expr $x+1]; exp_continue; }
281	-re ".* 105 0290 01056D18" { set x [expr $x+1]; exp_continue; }
282	-re ".* 105      1760" { set x [expr $x+1]; exp_continue; }
283	-re ".* 106 0296 01066D18" { set x [expr $x+1]; exp_continue; }
284	-re ".* 106      1760" { set x [expr $x+1]; exp_continue; }
285	-re ".* 107 029c 01046F18" { set x [expr $x+1]; exp_continue; }
286	-re ".* 107      12341760" { set x [expr $x+1]; exp_continue; }
287	-re ".* 108 02a4 78946B28" { set x [expr $x+1]; exp_continue; }
288	-re ".* 108      12345678" { set x [expr $x+1]; exp_continue; }
289	-re ".* 108      1760" { set x [expr $x+1]; exp_continue; }
290	-re ".* 109 02ae 01056F28" { set x [expr $x+1]; exp_continue; }
291	-re ".* 109      12341760" { set x [expr $x+1]; exp_continue; }
292	-re ".* 110 02b6 01066F28" { set x [expr $x+1]; exp_continue; }
293	-re ".* 110      12341760" { set x [expr $x+1]; exp_continue; }
294	-re ".* 111 02be 01076F28" { set x [expr $x+1]; exp_continue; }
295	-re ".* 111      12341760" { set x [expr $x+1]; exp_continue; }
296	-re ".* 112 02c6 78A56B28" { set x [expr $x+1]; exp_continue; }
297	-re ".* 112      12345678" { set x [expr $x+1]; exp_continue; }
298	-re ".* 112      1760" { set x [expr $x+1]; exp_continue; }
299	-re ".* 113 02d0 78A66B28" { set x [expr $x+1]; exp_continue; }
300	-re ".* 113      12345678" { set x [expr $x+1]; exp_continue; }
301	-re ".* 113      1760" { set x [expr $x+1]; exp_continue; }
302	-re ".* 114 02da 78A76B28" { set x [expr $x+1]; exp_continue; }
303	-re ".* 114      12345678" { set x [expr $x+1]; exp_continue; }
304	-re ".* 114      1760" { set x [expr $x+1]; exp_continue; }
305	-re ".* 115 02e4 01046B08" { set x [expr $x+1]; exp_continue; }
306	-re ".* 115      12341760" { set x [expr $x+1]; exp_continue; }
307	-re ".* 116 02ec 01046B28" { set x [expr $x+1]; exp_continue; }
308	-re ".* 116      12345678" { set x [expr $x+1]; exp_continue; }
309	-re ".* 116      1760" { set x [expr $x+1]; exp_continue; }
310	-re ".* 117              " {
311	    if [expr $x == 38] then {
312		pass "$testname: extu.l #2, ..."
313	    } else {
314		fail "$testname: extu.l #2, ... ($x)"
315	    }
316	}
317        default	{ fail "$testname: extu.l #2, ... ($x)" }
318    }
319
320    set x 0
321    expect {
322	-re ".* 118 02f6 17D1" { set x [expr $x+1]; exp_continue; }
323	-re ".* 119 02f8 7D9017D0" { set x [expr $x+1]; exp_continue; }
324	-re ".* 120 02fc 01576918" { set x [expr $x+1]; exp_continue; }
325	-re ".* 120      17D0" { set x [expr $x+1]; exp_continue; }
326	-re ".* 121 0302 01546D18" { set x [expr $x+1]; exp_continue; }
327	-re ".* 121      17D0" { set x [expr $x+1]; exp_continue; }
328	-re ".* 122 0308 01576D18" { set x [expr $x+1]; exp_continue; }
329	-re ".* 122      17D0" { set x [expr $x+1]; exp_continue; }
330	-re ".* 123 030e 01556D18" { set x [expr $x+1]; exp_continue; }
331	-re ".* 123      17D0" { set x [expr $x+1]; exp_continue; }
332	-re ".* 124 0314 01566D18" { set x [expr $x+1]; exp_continue; }
333	-re ".* 124      17D0" { set x [expr $x+1]; exp_continue; }
334	-re ".* 125 031a 01546F18" { set x [expr $x+1]; exp_continue; }
335	-re ".* 125      123417D0" { set x [expr $x+1]; exp_continue; }
336	-re ".* 126 0322 78146B28" { set x [expr $x+1]; exp_continue; }
337	-re ".* 126      12345678" { set x [expr $x+1]; exp_continue; }
338	-re ".* 126      17D0" { set x [expr $x+1]; exp_continue; }
339	-re ".* 127 032c 01556F28" { set x [expr $x+1]; exp_continue; }
340	-re ".* 127      123417D0" { set x [expr $x+1]; exp_continue; }
341	-re ".* 128 0334 01566F28" { set x [expr $x+1]; exp_continue; }
342	-re ".* 128      123417D0" { set x [expr $x+1]; exp_continue; }
343	-re ".* 129 033c 01576F28" { set x [expr $x+1]; exp_continue; }
344	-re ".* 129      123417D0" { set x [expr $x+1]; exp_continue; }
345	-re ".* 130 0344 78256B28" { set x [expr $x+1]; exp_continue; }
346	-re ".* 130      12345678" { set x [expr $x+1]; exp_continue; }
347	-re ".* 130      17D0" { set x [expr $x+1]; exp_continue; }
348	-re ".* 131 034e 78266B28" { set x [expr $x+1]; exp_continue; }
349	-re ".* 131      12345678" { set x [expr $x+1]; exp_continue; }
350	-re ".* 131      17D0" { set x [expr $x+1]; exp_continue; }
351	-re ".* 132 0358 78276B28" { set x [expr $x+1]; exp_continue; }
352	-re ".* 132      12345678" { set x [expr $x+1]; exp_continue; }
353	-re ".* 132      17D0" { set x [expr $x+1]; exp_continue; }
354	-re ".* 133 0362 6B181234" { set x [expr $x+1]; exp_continue; }
355	-re ".* 133      17D0" { set x [expr $x+1]; exp_continue; }
356	-re ".* 134 0368 6B381234" { set x [expr $x+1]; exp_continue; }
357	-re ".* 134      567817D0" { set x [expr $x+1]; exp_continue; }
358	-re ".* 135              " {
359	    if [expr $x == 36] then {
360		pass "$testname: exts.w ..."
361	    } else {
362		fail "$testname: exts.w ... ($x)"
363	    }
364	}
365        default	{ fail "$testname: exts.w ... ($x)" }
366    }
367
368    set x 0
369    expect {
370	-re ".* 136 0370 17F1" { set x [expr $x+1]; exp_continue; }
371	-re ".* 137 0372 01046918" { set x [expr $x+1]; exp_continue; }
372	-re ".* 137      17F0" { set x [expr $x+1]; exp_continue; }
373	-re ".* 138 0378 01076918" { set x [expr $x+1]; exp_continue; }
374	-re ".* 138      17F0" { set x [expr $x+1]; exp_continue; }
375	-re ".* 139 037e 01046D18" { set x [expr $x+1]; exp_continue; }
376	-re ".* 139      17F0" { set x [expr $x+1]; exp_continue; }
377	-re ".* 140 0384 01076D18" { set x [expr $x+1]; exp_continue; }
378	-re ".* 140      17F0" { set x [expr $x+1]; exp_continue; }
379	-re ".* 141 038a 01056D18" { set x [expr $x+1]; exp_continue; }
380	-re ".* 141      17F0" { set x [expr $x+1]; exp_continue; }
381	-re ".* 142 0390 01066D18" { set x [expr $x+1]; exp_continue; }
382	-re ".* 142      17F0" { set x [expr $x+1]; exp_continue; }
383	-re ".* 143 0396 01046F18" { set x [expr $x+1]; exp_continue; }
384	-re ".* 143      123417F0" { set x [expr $x+1]; exp_continue; }
385	-re ".* 144 039e 78946B28" { set x [expr $x+1]; exp_continue; }
386	-re ".* 144      12345678" { set x [expr $x+1]; exp_continue; }
387	-re ".* 144      17F0" { set x [expr $x+1]; exp_continue; }
388	-re ".* 145 03a8 01056F28" { set x [expr $x+1]; exp_continue; }
389	-re ".* 145      123417F0" { set x [expr $x+1]; exp_continue; }
390	-re ".* 146 03b0 01066F28" { set x [expr $x+1]; exp_continue; }
391	-re ".* 146      123417F0" { set x [expr $x+1]; exp_continue; }
392	-re ".* 147 03b8 01076F28" { set x [expr $x+1]; exp_continue; }
393	-re ".* 147      123417F0" { set x [expr $x+1]; exp_continue; }
394	-re ".* 148 03c0 78A56B28" { set x [expr $x+1]; exp_continue; }
395	-re ".* 148      12345678" { set x [expr $x+1]; exp_continue; }
396	-re ".* 148      17F0" { set x [expr $x+1]; exp_continue; }
397	-re ".* 149 03ca 78A66B28" { set x [expr $x+1]; exp_continue; }
398	-re ".* 149      12345678" { set x [expr $x+1]; exp_continue; }
399	-re ".* 149      17F0" { set x [expr $x+1]; exp_continue; }
400	-re ".* 150 03d4 78A76B28" { set x [expr $x+1]; exp_continue; }
401	-re ".* 150      12345678" { set x [expr $x+1]; exp_continue; }
402	-re ".* 150      17F0" { set x [expr $x+1]; exp_continue; }
403	-re ".* 151 03de 01046B08" { set x [expr $x+1]; exp_continue; }
404	-re ".* 151      123417F0" { set x [expr $x+1]; exp_continue; }
405	-re ".* 152 03e6 01046B28" { set x [expr $x+1]; exp_continue; }
406	-re ".* 152      12345678" { set x [expr $x+1]; exp_continue; }
407	-re ".* 152      17F0" { set x [expr $x+1]; exp_continue; }
408	-re ".* 153              " {
409	    if [expr $x == 38] then {
410		pass "$testname: exts.l ..."
411	    } else {
412		fail "$testname: exts.l ... ($x)"
413	    }
414	}
415        default	{ fail "$testname: exts.l ... ($x)" }
416    }
417
418    set x 0
419    expect {
420	-re ".* 154 03f0 17E1" { set x [expr $x+1]; exp_continue; }
421	-re ".* 155 03f2 01046918" { set x [expr $x+1]; exp_continue; }
422	-re ".* 155      17E0" { set x [expr $x+1]; exp_continue; }
423	-re ".* 156 03f8 01076918" { set x [expr $x+1]; exp_continue; }
424	-re ".* 156      17E0" { set x [expr $x+1]; exp_continue; }
425	-re ".* 157 03fe 01046D18" { set x [expr $x+1]; exp_continue; }
426	-re ".* 157      17E0" { set x [expr $x+1]; exp_continue; }
427	-re ".* 158 0404 01076D18" { set x [expr $x+1]; exp_continue; }
428	-re ".* 158      17E0" { set x [expr $x+1]; exp_continue; }
429	-re ".* 159 040a 01056D18" { set x [expr $x+1]; exp_continue; }
430	-re ".* 159      17E0" { set x [expr $x+1]; exp_continue; }
431	-re ".* 160 0410 01066D18" { set x [expr $x+1]; exp_continue; }
432	-re ".* 160      17E0" { set x [expr $x+1]; exp_continue; }
433	-re ".* 161 0416 01046F18" { set x [expr $x+1]; exp_continue; }
434	-re ".* 161      123417E0" { set x [expr $x+1]; exp_continue; }
435	-re ".* 162 041e 78946B28" { set x [expr $x+1]; exp_continue; }
436	-re ".* 162      12345678" { set x [expr $x+1]; exp_continue; }
437	-re ".* 162      17E0" { set x [expr $x+1]; exp_continue; }
438	-re ".* 163 0428 01056F28" { set x [expr $x+1]; exp_continue; }
439	-re ".* 163      123417E0" { set x [expr $x+1]; exp_continue; }
440	-re ".* 164 0430 01066F28" { set x [expr $x+1]; exp_continue; }
441	-re ".* 164      123417E0" { set x [expr $x+1]; exp_continue; }
442	-re ".* 165 0438 01076F28" { set x [expr $x+1]; exp_continue; }
443	-re ".* 165      123417E0" { set x [expr $x+1]; exp_continue; }
444	-re ".* 166 0440 78A56B28" { set x [expr $x+1]; exp_continue; }
445	-re ".* 166      12345678" { set x [expr $x+1]; exp_continue; }
446	-re ".* 166      17E0" { set x [expr $x+1]; exp_continue; }
447	-re ".* 167 044a 78A66B28" { set x [expr $x+1]; exp_continue; }
448	-re ".* 167      12345678" { set x [expr $x+1]; exp_continue; }
449	-re ".* 167      17E0" { set x [expr $x+1]; exp_continue; }
450	-re ".* 168 0454 78A76B28" { set x [expr $x+1]; exp_continue; }
451	-re ".* 168      12345678" { set x [expr $x+1]; exp_continue; }
452	-re ".* 168      17E0" { set x [expr $x+1]; exp_continue; }
453	-re ".* 169 045e 01046B08" { set x [expr $x+1]; exp_continue; }
454	-re ".* 169      123417E0" { set x [expr $x+1]; exp_continue; }
455	-re ".* 170 0466 01046B28" { set x [expr $x+1]; exp_continue; }
456	-re ".* 170      12345678" { set x [expr $x+1]; exp_continue; }
457	-re ".* 170      17E0" { set x [expr $x+1]; exp_continue; }
458	-re ".* 171              " {
459	    if [expr $x == 38] then {
460		pass "$testname: exts.l #2, ..."
461	    } else {
462		fail "$testname: exts.l #2, ... ($x)"
463	    }
464	}
465        default	{ fail "$testname: exts.l #2, ... ($x)" }
466    }
467
468    # This was intended to do any cleanup necessary.
469    # It kinda looks like it isn't needed, but just
470    # in case, please keep it in for now.
471
472    gas_finish
473
474}
475
476if [istarget h8300*-*-elf] then {
477    # Test advanced h8300sx instructions.
478    do_t07_ari3_test
479}
480
481