Commit | Line | Data |
---|---|---|
219d1afa | 1 | # Copyright (C) 2012-2018 Free Software Foundation, Inc. |
5bf135a7 NC |
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 | ||
fe8aec39 MS |
17 | # |
18 | # Some h8300sx tests -- t06_ari2 | |
19 | # | |
20 | ||
21 | proc do_t06_ari2_test {} { | |
22 | set testname "t06_ari2.s -- h8sx arithmetic tests" | |
23 | ||
24 | gas_start "t06_ari2.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 9112" { set x [expr $x+1]; exp_continue; } | |
31 | -re ".* 8 0002 7D109012" { set x [expr $x+1]; exp_continue; } | |
32 | -re ".* 9 0006 01766C18" { set x [expr $x+1]; exp_continue; } | |
33 | -re ".* 9 9012" { set x [expr $x+1]; exp_continue; } | |
34 | -re ".* 10 " { | |
35 | if [expr $x == 4] then { | |
36 | pass "$testname: addx.b #0x12:8, ..." | |
37 | } else { | |
38 | fail "$testname: addx.b #0x12:8, ... ($x)" | |
39 | } | |
40 | } | |
41 | default { fail "$testname: addx.b #0x12:8, ... ($x)" } | |
42 | } | |
43 | ||
44 | set x 0 | |
45 | expect { | |
46 | -re ".* 11 000c 0E31" { set x [expr $x+1]; exp_continue; } | |
47 | -re ".* 12 000e 7D100E30" { set x [expr $x+1]; exp_continue; } | |
48 | -re ".* 13 0012 01766C18" { set x [expr $x+1]; exp_continue; } | |
49 | -re ".* 13 0E30" { set x [expr $x+1]; exp_continue; } | |
50 | -re ".* 14 " { | |
51 | if [expr $x == 4] then { | |
52 | pass "$testname: addx.b r3h, ..." | |
53 | } else { | |
54 | fail "$testname: addx.b r3h, ... ($x)" | |
55 | } | |
56 | } | |
57 | default { fail "$testname: addx.b r3h, ... ($x)" } | |
58 | } | |
59 | ||
60 | set x 0 | |
61 | expect { | |
62 | -re ".* 15 0018 7C300E01" { set x [expr $x+1]; exp_continue; } | |
63 | -re ".* 16 001c 0174683D" { set x [expr $x+1]; exp_continue; } | |
64 | -re ".* 16 0110" { set x [expr $x+1]; exp_continue; } | |
65 | -re ".* 17 " { | |
66 | if [expr $x == 3] then { | |
67 | pass "$testname: addx.b @er3, ..." | |
68 | } else { | |
69 | fail "$testname: addx.b @er3, ... ($x)" | |
70 | } | |
71 | } | |
72 | default { fail "$testname: addx.b @er3, ... ($x)" } | |
73 | } | |
74 | ||
75 | set x 0 | |
76 | expect { | |
77 | -re ".* 18 0022 01766C30" { set x [expr $x+1]; exp_continue; } | |
78 | -re ".* 18 0E01" { set x [expr $x+1]; exp_continue; } | |
79 | -re ".* 19 0028 01766C3D" { set x [expr $x+1]; exp_continue; } | |
80 | -re ".* 19 A110" { set x [expr $x+1]; exp_continue; } | |
81 | -re ".* 20 " { | |
82 | if [expr $x == 4] then { | |
83 | pass "$testname: addx.b @er3-, ..." | |
84 | } else { | |
85 | fail "$testname: addx.b @er3-, ... ($x)" | |
86 | } | |
87 | } | |
88 | default { fail "$testname: addx.b @er3-, ... ($x)" } | |
89 | } | |
90 | ||
91 | set x 0 | |
92 | expect { | |
93 | -re ".* 21 002e 01517911" { set x [expr $x+1]; exp_continue; } | |
94 | -re ".* 21 1234" { set x [expr $x+1]; exp_continue; } | |
95 | -re ".* 22 0034 7D917910" { set x [expr $x+1]; exp_continue; } | |
96 | -re ".* 22 1234" { set x [expr $x+1]; exp_continue; } | |
97 | -re ".* 23 003a 01566D19" { set x [expr $x+1]; exp_continue; } | |
98 | -re ".* 23 79101234" { set x [expr $x+1]; exp_continue; } | |
99 | -re ".* 24 " { | |
100 | if [expr $x == 6] then { | |
101 | pass "$testname: addx.w #0x1234:16, ..." | |
102 | } else { | |
103 | fail "$testname: addx.w #0x1234:16, ... ($x)" | |
104 | } | |
105 | } | |
106 | default { fail "$testname: addx.w #0x1234:16, ... ($x)" } | |
107 | } | |
108 | ||
109 | set x 0 | |
110 | expect { | |
111 | -re ".* 25 0042 01510931" { set x [expr $x+1]; exp_continue; } | |
112 | -re ".* 26 0046 7D910930" { set x [expr $x+1]; exp_continue; } | |
113 | -re ".* 27 004a 01566D19" { set x [expr $x+1]; exp_continue; } | |
114 | -re ".* 27 0930" { set x [expr $x+1]; exp_continue; } | |
115 | -re ".* 28 " { | |
116 | if [expr $x == 4] then { | |
117 | pass "$testname: addx.w r3, ..." | |
118 | } else { | |
119 | fail "$testname: addx.w r3, ... ($x)" | |
120 | } | |
121 | } | |
122 | default { fail "$testname: addx.w r3, ... ($x)" } | |
123 | } | |
124 | ||
125 | set x 0 | |
126 | expect { | |
127 | -re ".* 29 0050 7CB10901" { set x [expr $x+1]; exp_continue; } | |
128 | -re ".* 30 0054 0154693D" { set x [expr $x+1]; exp_continue; } | |
129 | -re ".* 30 0110" { set x [expr $x+1]; exp_continue; } | |
130 | -re ".* 31 " { | |
131 | if [expr $x == 3] then { | |
132 | pass "$testname: addx.w @er3, ..." | |
133 | } else { | |
134 | fail "$testname: addx.w @er3, ... ($x)" | |
135 | } | |
136 | } | |
137 | default { fail "$testname: addx.w @er3, ... ($x)" } | |
138 | } | |
139 | ||
140 | set x 0 | |
141 | expect { | |
142 | -re ".* 32 005a 01566D31" { set x [expr $x+1]; exp_continue; } | |
143 | -re ".* 32 0901" { set x [expr $x+1]; exp_continue; } | |
144 | -re ".* 33 0060 01566D3D" { set x [expr $x+1]; exp_continue; } | |
145 | -re ".* 33 A110" { set x [expr $x+1]; exp_continue; } | |
146 | -re ".* 34 " { | |
147 | if [expr $x == 4] then { | |
148 | pass "$testname: addx.w @er3-, ..." | |
149 | } else { | |
150 | fail "$testname: addx.w @er3-, ... ($x)" | |
151 | } | |
152 | } | |
153 | default { fail "$testname: addx.w @er3-, ... ($x)" } | |
154 | } | |
155 | ||
156 | set x 0 | |
157 | expect { | |
158 | -re ".* 35 0066 01017A11" { set x [expr $x+1]; exp_continue; } | |
159 | -re ".* 35 12345678" { set x [expr $x+1]; exp_continue; } | |
160 | -re ".* 36 006e 01046919" { set x [expr $x+1]; exp_continue; } | |
161 | -re ".* 36 7A101234" { set x [expr $x+1]; exp_continue; } | |
162 | -re ".* 36 5678" { set x [expr $x+1]; exp_continue; } | |
163 | -re ".* 37 0078 01066D19" { set x [expr $x+1]; exp_continue; } | |
164 | -re ".* 37 7A101234" { set x [expr $x+1]; exp_continue; } | |
165 | -re ".* 37 5678" { set x [expr $x+1]; exp_continue; } | |
166 | -re ".* 38 " { | |
167 | if [expr $x == 8] then { | |
168 | pass "$testname: addx.l #0x12345678:32, ..." | |
169 | } else { | |
170 | fail "$testname: addx.l #0x12345678:32, ... ($x)" | |
171 | } | |
172 | } | |
173 | default { fail "$testname: addx.l #0x12345678:32, ... ($x)" } | |
174 | } | |
175 | ||
176 | set x 0 | |
177 | expect { | |
178 | -re ".* 39 0082 01010AB1" { set x [expr $x+1]; exp_continue; } | |
179 | -re ".* 40 0086 01046919" { set x [expr $x+1]; exp_continue; } | |
180 | -re ".* 40 0AB0" { set x [expr $x+1]; exp_continue; } | |
181 | -re ".* 41 008c 01066D19" { set x [expr $x+1]; exp_continue; } | |
182 | -re ".* 41 0AB0" { set x [expr $x+1]; exp_continue; } | |
183 | -re ".* 42 " { | |
184 | if [expr $x == 5] then { | |
185 | pass "$testname: addx.l er3, ..." | |
186 | } else { | |
187 | fail "$testname: addx.l er3, ... ($x)" | |
188 | } | |
189 | } | |
190 | default { fail "$testname: addx.l er3, ... ($x)" } | |
191 | } | |
192 | ||
193 | set x 0 | |
194 | expect { | |
195 | -re ".* 43 0092 01046931" { set x [expr $x+1]; exp_continue; } | |
196 | -re ".* 43 0A81" { set x [expr $x+1]; exp_continue; } | |
197 | -re ".* 44 0098 0104693D" { set x [expr $x+1]; exp_continue; } | |
198 | -re ".* 44 0110" { set x [expr $x+1]; exp_continue; } | |
199 | -re ".* 45 " { | |
200 | if [expr $x == 4] then { | |
201 | pass "$testname: addx.l @er3, ..." | |
202 | } else { | |
203 | fail "$testname: addx.l @er3, ... ($x)" | |
204 | } | |
205 | } | |
206 | default { fail "$testname: addx.l @er3, ... ($x)" } | |
207 | } | |
208 | ||
209 | set x 0 | |
210 | expect { | |
211 | -re ".* 46 009e 01066D31" { set x [expr $x+1]; exp_continue; } | |
212 | -re ".* 46 0A81" { set x [expr $x+1]; exp_continue; } | |
213 | -re ".* 47 00a4 01066D3D" { set x [expr $x+1]; exp_continue; } | |
214 | -re ".* 47 A110" { set x [expr $x+1]; exp_continue; } | |
215 | -re ".* 48 " { | |
216 | if [expr $x == 4] then { | |
217 | pass "$testname: addx.l @er3-, ..." | |
218 | } else { | |
219 | fail "$testname: addx.l @er3-, ... ($x)" | |
220 | } | |
221 | } | |
222 | default { fail "$testname: addx.l @er3-, ... ($x)" } | |
223 | } | |
224 | ||
225 | set x 0 | |
226 | expect { | |
227 | -re ".* 49 00aa B112" { set x [expr $x+1]; exp_continue; } | |
228 | -re ".* 50 00ac 7D10B012" { set x [expr $x+1]; exp_continue; } | |
229 | -re ".* 51 00b0 01766C18" { set x [expr $x+1]; exp_continue; } | |
230 | -re ".* 51 B012" { set x [expr $x+1]; exp_continue; } | |
231 | -re ".* 52 " { | |
232 | if [expr $x == 4] then { | |
233 | pass "$testname: subx.b #0x12:8, ..." | |
234 | } else { | |
235 | fail "$testname: subx.b #0x12:8, ... ($x)" | |
236 | } | |
237 | } | |
238 | default { fail "$testname: subx.b #0x12:8, ... ($x)" } | |
239 | } | |
240 | ||
241 | set x 0 | |
242 | expect { | |
243 | -re ".* 53 00b6 1E31" { set x [expr $x+1]; exp_continue; } | |
244 | -re ".* 54 00b8 7D101E30" { set x [expr $x+1]; exp_continue; } | |
245 | -re ".* 55 00bc 01766C18" { set x [expr $x+1]; exp_continue; } | |
246 | -re ".* 55 1E30" { set x [expr $x+1]; exp_continue; } | |
247 | -re ".* 56 " { | |
248 | if [expr $x == 4] then { | |
249 | pass "$testname: subx.b r3h, ..." | |
250 | } else { | |
251 | fail "$testname: subx.b r3h, ... ($x)" | |
252 | } | |
253 | } | |
254 | default { fail "$testname: subx.b r3h, ... ($x)" } | |
255 | } | |
256 | ||
257 | set x 0 | |
258 | expect { | |
259 | -re ".* 57 00c2 7C301E01" { set x [expr $x+1]; exp_continue; } | |
260 | -re ".* 58 00c6 0174683D" { set x [expr $x+1]; exp_continue; } | |
261 | -re ".* 58 0130" { set x [expr $x+1]; exp_continue; } | |
262 | -re ".* 59 " { | |
263 | if [expr $x == 3] then { | |
264 | pass "$testname: subx.b @er3, ..." | |
265 | } else { | |
266 | fail "$testname: subx.b @er3, ... ($x)" | |
267 | } | |
268 | } | |
269 | default { fail "$testname: subx.b @er3, ... ($x)" } | |
270 | } | |
271 | ||
272 | set x 0 | |
273 | expect { | |
274 | -re ".* 60 00cc 01766C30" { set x [expr $x+1]; exp_continue; } | |
275 | -re ".* 60 1E01" { set x [expr $x+1]; exp_continue; } | |
276 | -re ".* 61 00d2 01766C3D" { set x [expr $x+1]; exp_continue; } | |
277 | -re ".* 61 A130" { set x [expr $x+1]; exp_continue; } | |
278 | -re ".* 62 " { | |
279 | if [expr $x == 4] then { | |
280 | pass "$testname: subx.b @er3-, ..." | |
281 | } else { | |
282 | fail "$testname: subx.b @er3-, ... ($x)" | |
283 | } | |
284 | } | |
285 | default { fail "$testname: subx.b @er3-, ... ($x)" } | |
286 | } | |
287 | ||
288 | set x 0 | |
289 | expect { | |
290 | -re ".* 63 00d8 01517931" { set x [expr $x+1]; exp_continue; } | |
291 | -re ".* 63 1234" { set x [expr $x+1]; exp_continue; } | |
292 | -re ".* 64 00de 7D917930" { set x [expr $x+1]; exp_continue; } | |
293 | -re ".* 64 1234" { set x [expr $x+1]; exp_continue; } | |
294 | -re ".* 65 00e4 01566D19" { set x [expr $x+1]; exp_continue; } | |
295 | -re ".* 65 79301234" { set x [expr $x+1]; exp_continue; } | |
296 | -re ".* 66 " { | |
297 | if [expr $x == 6] then { | |
298 | pass "$testname: subx.w #0x1234:16, ..." | |
299 | } else { | |
300 | fail "$testname: subx.w #0x1234:16, ... ($x)" | |
301 | } | |
302 | } | |
303 | default { fail "$testname: subx.w #0x1234:16, ... ($x)" } | |
304 | } | |
305 | ||
306 | set x 0 | |
307 | expect { | |
308 | -re ".* 67 00ec 01511931" { set x [expr $x+1]; exp_continue; } | |
309 | -re ".* 68 00f0 7D911930" { set x [expr $x+1]; exp_continue; } | |
310 | -re ".* 69 00f4 01566D19" { set x [expr $x+1]; exp_continue; } | |
311 | -re ".* 69 1930" { set x [expr $x+1]; exp_continue; } | |
312 | -re ".* 70 " { | |
313 | if [expr $x == 4] then { | |
314 | pass "$testname: subx.w r3, ..." | |
315 | } else { | |
316 | fail "$testname: subx.w r3, ... ($x)" | |
317 | } | |
318 | } | |
319 | default { fail "$testname: subx.w r3, ... ($x)" } | |
320 | } | |
321 | ||
322 | set x 0 | |
323 | expect { | |
324 | -re ".* 71 00fa 7CB11901" { set x [expr $x+1]; exp_continue; } | |
325 | -re ".* 72 00fe 0154693D" { set x [expr $x+1]; exp_continue; } | |
326 | -re ".* 72 0130" { set x [expr $x+1]; exp_continue; } | |
327 | -re ".* 73 " { | |
328 | if [expr $x == 3] then { | |
329 | pass "$testname: subx.w @er3, ..." | |
330 | } else { | |
331 | fail "$testname: subx.w @er3, ... ($x)" | |
332 | } | |
333 | } | |
334 | default { fail "$testname: subx.w @er3, ... ($x)" } | |
335 | } | |
336 | ||
337 | set x 0 | |
338 | expect { | |
339 | -re ".* 74 0104 01566D31" { set x [expr $x+1]; exp_continue; } | |
340 | -re ".* 74 1901" { set x [expr $x+1]; exp_continue; } | |
341 | -re ".* 75 010a 01566D3D" { set x [expr $x+1]; exp_continue; } | |
342 | -re ".* 75 A130" { set x [expr $x+1]; exp_continue; } | |
343 | -re ".* 76 " { | |
344 | if [expr $x == 4] then { | |
345 | pass "$testname: subx.w @er3-, ..." | |
346 | } else { | |
347 | fail "$testname: subx.w @er3-, ... ($x)" | |
348 | } | |
349 | } | |
350 | default { fail "$testname: subx.w @er3-, ... ($x)" } | |
351 | } | |
352 | ||
353 | set x 0 | |
354 | expect { | |
355 | -re ".* 77 0110 01017A31" { set x [expr $x+1]; exp_continue; } | |
356 | -re ".* 77 12345678" { set x [expr $x+1]; exp_continue; } | |
357 | -re ".* 78 0118 01046919" { set x [expr $x+1]; exp_continue; } | |
358 | -re ".* 78 7A301234" { set x [expr $x+1]; exp_continue; } | |
359 | -re ".* 78 5678" { set x [expr $x+1]; exp_continue; } | |
360 | -re ".* 79 0122 01066D19" { set x [expr $x+1]; exp_continue; } | |
361 | -re ".* 79 7A301234" { set x [expr $x+1]; exp_continue; } | |
362 | -re ".* 79 5678" { set x [expr $x+1]; exp_continue; } | |
363 | -re ".* 80 " { | |
364 | if [expr $x == 8] then { | |
365 | pass "$testname: subx.l #0x12345678:32, ..." | |
366 | } else { | |
367 | fail "$testname: subx.l #0x12345678:32, ... ($x)" | |
368 | } | |
369 | } | |
370 | default { fail "$testname: subx.l #0x12345678:32, ... ($x)" } | |
371 | } | |
372 | ||
373 | set x 0 | |
374 | expect { | |
375 | -re ".* 81 012c 01011AB1" { set x [expr $x+1]; exp_continue; } | |
376 | -re ".* 82 0130 01046919" { set x [expr $x+1]; exp_continue; } | |
377 | -re ".* 82 1AB0" { set x [expr $x+1]; exp_continue; } | |
378 | -re ".* 83 0136 01066D19" { set x [expr $x+1]; exp_continue; } | |
379 | -re ".* 83 1AB0" { set x [expr $x+1]; exp_continue; } | |
380 | -re ".* 84 " { | |
381 | if [expr $x == 5] then { | |
382 | pass "$testname: subx.l er3, ..." | |
383 | } else { | |
384 | fail "$testname: subx.l er3, ... ($x)" | |
385 | } | |
386 | } | |
387 | default { fail "$testname: subx.l er3, ... ($x)" } | |
388 | } | |
389 | ||
390 | set x 0 | |
391 | expect { | |
392 | -re ".* 85 013c 01046931" { set x [expr $x+1]; exp_continue; } | |
393 | -re ".* 85 1A81" { set x [expr $x+1]; exp_continue; } | |
394 | -re ".* 86 0142 0104693D" { set x [expr $x+1]; exp_continue; } | |
395 | -re ".* 86 0130" { set x [expr $x+1]; exp_continue; } | |
396 | -re ".* 87 " { | |
397 | if [expr $x == 4] then { | |
398 | pass "$testname: subx.l @er3, ..." | |
399 | } else { | |
400 | fail "$testname: subx.l @er3, ... ($x)" | |
401 | } | |
402 | } | |
403 | default { fail "$testname: subx.l @er3, ... ($x)" } | |
404 | } | |
405 | ||
406 | set x 0 | |
407 | expect { | |
408 | -re ".* 88 0148 01066D31" { set x [expr $x+1]; exp_continue; } | |
409 | -re ".* 88 1A81" { set x [expr $x+1]; exp_continue; } | |
410 | -re ".* 89 014e 01066D3D" { set x [expr $x+1]; exp_continue; } | |
411 | -re ".* 89 A130" { set x [expr $x+1]; exp_continue; } | |
412 | -re ".* 90 " { | |
413 | if [expr $x == 4] then { | |
414 | pass "$testname: subx.l @er3-, ..." | |
415 | } else { | |
416 | fail "$testname: subx.l @er3-, ... ($x)" | |
417 | } | |
418 | } | |
419 | default { fail "$testname: subx.l @er3-, ... ($x)" } | |
420 | } | |
421 | ||
422 | set x 0 | |
423 | expect { | |
424 | -re ".* 91 0154 0A01" { set x [expr $x+1]; exp_continue; } | |
425 | -re ".* 92 0156 0B51" { set x [expr $x+1]; exp_continue; } | |
426 | -re ".* 93 0158 0BD1" { set x [expr $x+1]; exp_continue; } | |
427 | -re ".* 94 015a 0B71" { set x [expr $x+1]; exp_continue; } | |
428 | -re ".* 95 015c 0BF1" { set x [expr $x+1]; exp_continue; } | |
429 | -re ".* 96 " { | |
430 | if [expr $x == 5] then { | |
431 | pass "$testname: inc" | |
432 | } else { | |
433 | fail "$testname: inc ($x)" | |
434 | } | |
435 | } | |
436 | default { fail "$testname: inc ($x)" } | |
437 | } | |
438 | ||
439 | set x 0 | |
440 | expect { | |
441 | -re ".* 97 015e 1A01" { set x [expr $x+1]; exp_continue; } | |
442 | -re ".* 98 0160 1B51" { set x [expr $x+1]; exp_continue; } | |
443 | -re ".* 99 0162 1BD1" { set x [expr $x+1]; exp_continue; } | |
444 | -re ".* 100 0164 1B71" { set x [expr $x+1]; exp_continue; } | |
445 | -re ".* 101 0166 1BF1" { set x [expr $x+1]; exp_continue; } | |
446 | -re ".* 102 " { | |
447 | if [expr $x == 5] then { | |
448 | pass "$testname: dec" | |
449 | } else { | |
450 | fail "$testname: dec ($x)" | |
451 | } | |
452 | } | |
453 | default { fail "$testname: dec ($x)" } | |
454 | } | |
455 | ||
456 | set x 0 | |
457 | expect { | |
458 | -re ".* 103 0168 0B01" { set x [expr $x+1]; exp_continue; } | |
459 | -re ".* 104 016a 0B81" { set x [expr $x+1]; exp_continue; } | |
460 | -re ".* 105 016c 0B91" { set x [expr $x+1]; exp_continue; } | |
461 | -re ".* 106 " { | |
462 | if [expr $x == 3] then { | |
463 | pass "$testname: adds.l ..., er1" | |
464 | } else { | |
465 | fail "$testname: adds.l ..., er1 ($x)" | |
466 | } | |
467 | } | |
468 | default { fail "$testname: adds.l ..., er1 ($x)" } | |
469 | } | |
470 | ||
471 | set x 0 | |
472 | expect { | |
473 | -re ".* 107 016e 1B01" { set x [expr $x+1]; exp_continue; } | |
474 | -re ".* 108 0170 1B81" { set x [expr $x+1]; exp_continue; } | |
475 | -re ".* 109 0172 1B91" { set x [expr $x+1]; exp_continue; } | |
476 | -re ".* 110 " { | |
477 | if [expr $x == 3] then { | |
478 | pass "$testname: subs.l #4,er1" | |
479 | } else { | |
480 | fail "$testname: subs.l #4,er1 ($x)" | |
481 | } | |
482 | } | |
483 | default { fail "$testname: subs.l #4,er1 ($x)" } | |
484 | } | |
485 | ||
486 | set x 0 | |
487 | expect { | |
488 | -re ".* 111 0174 0F01" { set x [expr $x+1]; exp_continue; } | |
489 | -re ".* 112 " { | |
490 | if [expr $x == 1] then { | |
491 | pass "$testname: daa.b r1h" | |
492 | } else { | |
493 | fail "$testname: daa.b r1h ($x)" | |
494 | } | |
495 | } | |
496 | default { fail "$testname: daa.b r1h ($x)" } | |
497 | } | |
498 | ||
499 | set x 0 | |
500 | expect { | |
501 | -re ".* 113 0176 1F01" { set x [expr $x+1]; exp_continue; } | |
502 | -re ".* 114 " { | |
503 | if [expr $x == 1] then { | |
504 | pass "$testname: das.b r1h" | |
505 | } else { | |
506 | fail "$testname: das.b r1h ($x)" | |
507 | } | |
508 | } | |
509 | default { fail "$testname: das.b r1h ($x)" } | |
510 | } | |
511 | ||
512 | set x 0 | |
513 | expect { | |
514 | -re ".* 115 0178 01CC50F1" { set x [expr $x+1]; exp_continue; } | |
515 | -re ".* 116 " { | |
516 | if [expr $x == 1] then { | |
517 | pass "$testname: mulxu.b #0xf:4,r1" | |
518 | } else { | |
519 | fail "$testname: mulxu.b #0xf:4,r1 ($x)" | |
520 | } | |
521 | } | |
522 | default { fail "$testname: mulxu.b #0xf:4,r1 ($x)" } | |
523 | } | |
524 | ||
525 | set x 0 | |
526 | expect { | |
527 | -re ".* 117 017c 5031" { set x [expr $x+1]; exp_continue; } | |
528 | -re ".* 118 " { | |
529 | if [expr $x == 1] then { | |
530 | pass "$testname: mulxu.b r3h,r1" | |
531 | } else { | |
532 | fail "$testname: mulxu.b r3h,r1 ($x)" | |
533 | } | |
534 | } | |
535 | default { fail "$testname: mulxu.b r3h,r1 ($x)" } | |
536 | } | |
537 | ||
538 | set x 0 | |
539 | expect { | |
540 | -re ".* 119 017e 01CC52F1" { set x [expr $x+1]; exp_continue; } | |
541 | -re ".* 120 " { | |
542 | if [expr $x == 1] then { | |
543 | pass "$testname: mulxu.w #0xf:4,er1" | |
544 | } else { | |
545 | fail "$testname: mulxu.w #0xf:4,er1 ($x)" | |
546 | } | |
547 | } | |
548 | default { fail "$testname: mulxu.w #0xf:4,er1 ($x)" } | |
549 | } | |
550 | ||
551 | set x 0 | |
552 | expect { | |
553 | -re ".* 121 0182 5231" { set x [expr $x+1]; exp_continue; } | |
554 | -re ".* 122 " { | |
555 | if [expr $x == 1] then { | |
556 | pass "$testname: mulxu.w r3,er1" | |
557 | } else { | |
558 | fail "$testname: mulxu.w r3,er1 ($x)" | |
559 | } | |
560 | } | |
561 | default { fail "$testname: mulxu.w r3,er1 ($x)" } | |
562 | } | |
563 | ||
564 | set x 0 | |
565 | expect { | |
566 | -re ".* 123 0184 01DC51F1" { set x [expr $x+1]; exp_continue; } | |
567 | -re ".* 124 " { | |
568 | if [expr $x == 1] then { | |
569 | pass "$testname: divxu.b #0xf:4,r1" | |
570 | } else { | |
571 | fail "$testname: divxu.b #0xf:4,r1 ($x)" | |
572 | } | |
573 | } | |
574 | default { fail "$testname: divxu.b #0xf:4,r1 ($x)" } | |
575 | } | |
576 | ||
577 | set x 0 | |
578 | expect { | |
579 | -re ".* 125 0188 5131" { set x [expr $x+1]; exp_continue; } | |
580 | -re ".* 126 " { | |
581 | if [expr $x == 1] then { | |
582 | pass "$testname: divxu.b r3h,r1" | |
583 | } else { | |
584 | fail "$testname: divxu.b r3h,r1 ($x)" | |
585 | } | |
586 | } | |
587 | default { fail "$testname: divxu.b r3h,r1 ($x)" } | |
588 | } | |
589 | ||
590 | set x 0 | |
591 | expect { | |
592 | -re ".* 127 018a 01DC53F1" { set x [expr $x+1]; exp_continue; } | |
593 | -re ".* 128 " { | |
594 | if [expr $x == 1] then { | |
595 | pass "$testname: divxu.w #0xf:4,er1" | |
596 | } else { | |
597 | fail "$testname: divxu.w #0xf:4,er1 ($x)" | |
598 | } | |
599 | } | |
600 | default { fail "$testname: divxu.w #0xf:4,er1 ($x)" } | |
601 | } | |
602 | ||
603 | set x 0 | |
604 | expect { | |
605 | -re ".* 129 018e 5331" { set x [expr $x+1]; exp_continue; } | |
606 | -re ".* 130 " { | |
607 | if [expr $x == 1] then { | |
608 | pass "$testname: divxu.w r3,er1" | |
609 | } else { | |
610 | fail "$testname: divxu.w r3,er1 ($x)" | |
611 | } | |
612 | } | |
613 | default { fail "$testname: divxu.w r3,er1 ($x)" } | |
614 | } | |
615 | ||
616 | set x 0 | |
617 | expect { | |
618 | -re ".* 131 0190 01C450F1" { set x [expr $x+1]; exp_continue; } | |
619 | -re ".* 132 " { | |
620 | if [expr $x == 1] then { | |
621 | pass "$testname: mulxs.b #0xf:4,r1" | |
622 | } else { | |
623 | fail "$testname: mulxs.b #0xf:4,r1 ($x)" | |
624 | } | |
625 | } | |
626 | default { fail "$testname: mulxs.b #0xf:4,r1 ($x)" } | |
627 | } | |
628 | ||
629 | set x 0 | |
630 | expect { | |
631 | -re ".* 133 0194 01C05031" { set x [expr $x+1]; exp_continue; } | |
632 | -re ".* 134 " { | |
633 | if [expr $x == 1] then { | |
634 | pass "$testname: mulxs.b r3h,r1" | |
635 | } else { | |
636 | fail "$testname: mulxs.b r3h,r1 ($x)" | |
637 | } | |
638 | } | |
639 | default { fail "$testname: mulxs.b r3h,r1 ($x)" } | |
640 | } | |
641 | ||
642 | set x 0 | |
643 | expect { | |
644 | -re ".* 135 0198 01C452F1" { set x [expr $x+1]; exp_continue; } | |
645 | -re ".* 136 " { | |
646 | if [expr $x == 1] then { | |
647 | pass "$testname: mulxs.w #0xf:4,er1" | |
648 | } else { | |
649 | fail "$testname: mulxs.w #0xf:4,er1 ($x)" | |
650 | } | |
651 | } | |
652 | default { fail "$testname: mulxs.w #0xf:4,er1 ($x)" } | |
653 | } | |
654 | ||
655 | set x 0 | |
656 | expect { | |
657 | -re ".* 137 019c 01C05231" { set x [expr $x+1]; exp_continue; } | |
658 | -re ".* 138 " { | |
659 | if [expr $x == 1] then { | |
660 | pass "$testname: mulxs.w r3,er1" | |
661 | } else { | |
662 | fail "$testname: mulxs.w r3,er1 ($x)" | |
663 | } | |
664 | } | |
665 | default { fail "$testname: mulxs.w r3,er1 ($x)" } | |
666 | } | |
667 | ||
668 | set x 0 | |
669 | expect { | |
670 | -re ".* 139 01a0 01D451F1" { set x [expr $x+1]; exp_continue; } | |
671 | -re ".* 140 " { | |
672 | if [expr $x == 1] then { | |
673 | pass "$testname: divxs.b #0xf:4,r1" | |
674 | } else { | |
675 | fail "$testname: divxs.b #0xf:4,r1 ($x)" | |
676 | } | |
677 | } | |
678 | default { fail "$testname: divxs.b #0xf:4,r1 ($x)" } | |
679 | } | |
680 | ||
681 | set x 0 | |
682 | expect { | |
683 | -re ".* 141 01a4 01D05131" { set x [expr $x+1]; exp_continue; } | |
684 | -re ".* 142 " { | |
685 | if [expr $x == 1] then { | |
686 | pass "$testname: divxs.b r3h,r1" | |
687 | } else { | |
688 | fail "$testname: divxs.b r3h,r1 ($x)" | |
689 | } | |
690 | } | |
691 | default { fail "$testname: divxs.b r3h,r1 ($x)" } | |
692 | } | |
693 | ||
694 | set x 0 | |
695 | expect { | |
696 | -re ".* 143 01a8 01D453F1" { set x [expr $x+1]; exp_continue; } | |
697 | -re ".* 144 " { | |
698 | if [expr $x == 1] then { | |
699 | pass "$testname: divxs.w #0xf:4,er1" | |
700 | } else { | |
701 | fail "$testname: divxs.w #0xf:4,er1 ($x)" | |
702 | } | |
703 | } | |
704 | default { fail "$testname: divxs.w #0xf:4,er1 ($x)" } | |
705 | } | |
706 | ||
707 | set x 0 | |
708 | expect { | |
709 | -re ".* 145 01ac 01D05331" { set x [expr $x+1]; exp_continue; } | |
710 | -re ".* 146 " { | |
711 | if [expr $x == 1] then { | |
712 | pass "$testname: divxs.w r3,er1" | |
713 | } else { | |
714 | fail "$testname: divxs.w r3,er1 ($x)" | |
715 | } | |
716 | } | |
717 | default { fail "$testname: divxs.w r3,er1 ($x)" } | |
718 | } | |
719 | ||
720 | set x 0 | |
721 | expect { | |
722 | -re ".* 147 01b0 01CE50F1" { set x [expr $x+1]; exp_continue; } | |
723 | -re ".* 148 " { | |
724 | if [expr $x == 1] then { | |
725 | pass "$testname: mulu.w #0xf:4,r1" | |
726 | } else { | |
727 | fail "$testname: mulu.w #0xf:4,r1 ($x)" | |
728 | } | |
729 | } | |
730 | default { fail "$testname: mulu.w #0xf:4,r1 ($x)" } | |
731 | } | |
732 | ||
733 | set x 0 | |
734 | expect { | |
735 | -re ".* 149 01b4 01CA5031" { set x [expr $x+1]; exp_continue; } | |
736 | -re ".* 150 " { | |
737 | if [expr $x == 1] then { | |
738 | pass "$testname: mulu.w r3,r1" | |
739 | } else { | |
740 | fail "$testname: mulu.w r3,r1 ($x)" | |
741 | } | |
742 | } | |
743 | default { fail "$testname: mulu.w r3,r1 ($x)" } | |
744 | } | |
745 | ||
746 | set x 0 | |
747 | expect { | |
748 | -re ".* 151 01b8 01CE52F1" { set x [expr $x+1]; exp_continue; } | |
749 | -re ".* 152 " { | |
750 | if [expr $x == 1] then { | |
751 | pass "$testname: mulu.l #0xf:4,er1" | |
752 | } else { | |
753 | fail "$testname: mulu.l #0xf:4,er1 ($x)" | |
754 | } | |
755 | } | |
756 | default { fail "$testname: mulu.l #0xf:4,er1 ($x)" } | |
757 | } | |
758 | ||
759 | set x 0 | |
760 | expect { | |
761 | -re ".* 153 01bc 01CA5231" { set x [expr $x+1]; exp_continue; } | |
762 | -re ".* 154 " { | |
763 | if [expr $x == 1] then { | |
764 | pass "$testname: mulu.l er3,er1" | |
765 | } else { | |
766 | fail "$testname: mulu.l er3,er1 ($x)" | |
767 | } | |
768 | } | |
769 | default { fail "$testname: mulu.l er3,er1 ($x)" } | |
770 | } | |
771 | ||
772 | set x 0 | |
773 | expect { | |
774 | -re ".* 155 01c0 01CF52F1" { set x [expr $x+1]; exp_continue; } | |
775 | -re ".* 156 " { | |
776 | if [expr $x == 1] then { | |
777 | pass "$testname: mulu/u.l #0xf:4,er1" | |
778 | } else { | |
779 | fail "$testname: mulu/u.l #0xf:4,er1 ($x)" | |
780 | } | |
781 | } | |
782 | default { fail "$testname: mulu/u.l #0xf:4,er1 ($x)" } | |
783 | } | |
784 | ||
785 | set x 0 | |
786 | expect { | |
787 | -re ".* 157 01c4 01CB5231" { set x [expr $x+1]; exp_continue; } | |
788 | -re ".* 158 " { | |
789 | if [expr $x == 1] then { | |
790 | pass "$testname: mulu/u.l er3,er1" | |
791 | } else { | |
792 | fail "$testname: mulu/u.l er3,er1 ($x)" | |
793 | } | |
794 | } | |
795 | default { fail "$testname: mulu/u.l er3,er1 ($x)" } | |
796 | } | |
797 | ||
798 | set x 0 | |
799 | expect { | |
800 | -re ".* 159 01c8 01C650F1" { set x [expr $x+1]; exp_continue; } | |
801 | -re ".* 160 " { | |
802 | if [expr $x == 1] then { | |
803 | pass "$testname: muls.w #0xf:4,r1" | |
804 | } else { | |
805 | fail "$testname: muls.w #0xf:4,r1 ($x)" | |
806 | } | |
807 | } | |
808 | default { fail "$testname: muls.w #0xf:4,r1 ($x)" } | |
809 | } | |
810 | ||
811 | set x 0 | |
812 | expect { | |
813 | -re ".* 161 01cc 01C25031" { set x [expr $x+1]; exp_continue; } | |
814 | -re ".* 162 " { | |
815 | if [expr $x == 1] then { | |
816 | pass "$testname: muls.w r3,r1" | |
817 | } else { | |
818 | fail "$testname: muls.w r3,r1 ($x)" | |
819 | } | |
820 | } | |
821 | default { fail "$testname: muls.w r3,r1 ($x)" } | |
822 | } | |
823 | ||
824 | set x 0 | |
825 | expect { | |
826 | -re ".* 163 01d0 01C652F1" { set x [expr $x+1]; exp_continue; } | |
827 | -re ".* 164 " { | |
828 | if [expr $x == 1] then { | |
829 | pass "$testname: muls.l #0xf:4,er1" | |
830 | } else { | |
831 | fail "$testname: muls.l #0xf:4,er1 ($x)" | |
832 | } | |
833 | } | |
834 | default { fail "$testname: muls.l #0xf:4,er1 ($x)" } | |
835 | } | |
836 | ||
837 | set x 0 | |
838 | expect { | |
839 | -re ".* 165 01d4 01C25231" { set x [expr $x+1]; exp_continue; } | |
840 | -re ".* 166 " { | |
841 | if [expr $x == 1] then { | |
842 | pass "$testname: muls.l er3,er1" | |
843 | } else { | |
844 | fail "$testname: muls.l er3,er1 ($x)" | |
845 | } | |
846 | } | |
847 | default { fail "$testname: muls.l er3,er1 ($x)" } | |
848 | } | |
849 | ||
850 | set x 0 | |
851 | expect { | |
852 | -re ".* 167 01d8 01C752F1" { set x [expr $x+1]; exp_continue; } | |
853 | -re ".* 168 " { | |
854 | if [expr $x == 1] then { | |
855 | pass "$testname: muls/u.l #0xf:4,er1" | |
856 | } else { | |
857 | fail "$testname: muls/u.l #0xf:4,er1 ($x)" | |
858 | } | |
859 | } | |
860 | default { fail "$testname: muls/u.l #0xf:4,er1 ($x)" } | |
861 | } | |
862 | ||
863 | set x 0 | |
864 | expect { | |
865 | -re ".* 169 01dc 01C35231" { set x [expr $x+1]; exp_continue; } | |
866 | -re ".* 170 " { | |
867 | if [expr $x == 1] then { | |
868 | pass "$testname: muls/u.l er3,er1" | |
869 | } else { | |
870 | fail "$testname: muls/u.l er3,er1 ($x)" | |
871 | } | |
872 | } | |
873 | default { fail "$testname: muls/u.l er3,er1 ($x)" } | |
874 | } | |
875 | ||
876 | set x 0 | |
877 | expect { | |
878 | -re ".* 171 01e0 01DE51F1" { set x [expr $x+1]; exp_continue; } | |
879 | -re ".* 172 " { | |
880 | if [expr $x == 1] then { | |
881 | pass "$testname: divu.w #0xf:4,r1" | |
882 | } else { | |
883 | fail "$testname: divu.w #0xf:4,r1 ($x)" | |
884 | } | |
885 | } | |
886 | default { fail "$testname: divu.w #0xf:4,r1 ($x)" } | |
887 | } | |
888 | ||
889 | set x 0 | |
890 | expect { | |
891 | -re ".* 173 01e4 01DA5131" { set x [expr $x+1]; exp_continue; } | |
892 | -re ".* 174 " { | |
893 | if [expr $x == 1] then { | |
894 | pass "$testname: divu.w r3,r1" | |
895 | } else { | |
896 | fail "$testname: divu.w r3,r1 ($x)" | |
897 | } | |
898 | } | |
899 | default { fail "$testname: divu.w r3,r1 ($x)" } | |
900 | } | |
901 | ||
902 | set x 0 | |
903 | expect { | |
904 | -re ".* 175 01e8 01DE53F1" { set x [expr $x+1]; exp_continue; } | |
905 | -re ".* 176 " { | |
906 | if [expr $x == 1] then { | |
907 | pass "$testname: divu.l #0xf:4,er1" | |
908 | } else { | |
909 | fail "$testname: divu.l #0xf:4,er1 ($x)" | |
910 | } | |
911 | } | |
912 | default { fail "$testname: divu.l #0xf:4,er1 ($x)" } | |
913 | } | |
914 | ||
915 | set x 0 | |
916 | expect { | |
917 | -re ".* 177 01ec 01DA5331" { set x [expr $x+1]; exp_continue; } | |
918 | -re ".* 178 " { | |
919 | if [expr $x == 1] then { | |
920 | pass "$testname: divu.l er3,er1" | |
921 | } else { | |
922 | fail "$testname: divu.l er3,er1 ($x)" | |
923 | } | |
924 | } | |
925 | default { fail "$testname: divu.l er3,er1 ($x)" } | |
926 | } | |
927 | ||
928 | set x 0 | |
929 | expect { | |
930 | -re ".* 179 01f0 01D651F1" { set x [expr $x+1]; exp_continue; } | |
931 | -re ".* 180 " { | |
932 | if [expr $x == 1] then { | |
933 | pass "$testname: divs.w #0xf:4,r1" | |
934 | } else { | |
935 | fail "$testname: divs.w #0xf:4,r1 ($x)" | |
936 | } | |
937 | } | |
938 | default { fail "$testname: divs.w #0xf:4,r1 ($x)" } | |
939 | } | |
940 | ||
941 | set x 0 | |
942 | expect { | |
943 | -re ".* 181 01f4 01D25131" { set x [expr $x+1]; exp_continue; } | |
944 | -re ".* 182 " { | |
945 | if [expr $x == 1] then { | |
946 | pass "$testname: divs.w r3,r1" | |
947 | } else { | |
948 | fail "$testname: divs.w r3,r1 ($x)" | |
949 | } | |
950 | } | |
951 | default { fail "$testname: divs.w r3,r1 ($x)" } | |
952 | } | |
953 | ||
954 | set x 0 | |
955 | expect { | |
956 | -re ".* 183 01f8 01D653F1" { set x [expr $x+1]; exp_continue; } | |
957 | -re ".* 184 " { | |
958 | if [expr $x == 1] then { | |
959 | pass "$testname: divs.l #0xf:4,er1" | |
960 | } else { | |
961 | fail "$testname: divs.l #0xf:4,er1 ($x)" | |
962 | } | |
963 | } | |
964 | default { fail "$testname: divs.l #0xf:4,er1 ($x)" } | |
965 | } | |
966 | ||
967 | set x 0 | |
968 | expect { | |
969 | -re ".* 185 01fc 01D25331" { set x [expr $x+1]; exp_continue; } | |
970 | -re ".* 186 " { | |
971 | if [expr $x == 1] then { | |
972 | pass "$testname: divs.l er3,er1" | |
973 | } else { | |
974 | fail "$testname: divs.l er3,er1 ($x)" | |
975 | } | |
976 | } | |
977 | default { fail "$testname: divs.l er3,er1 ($x)" } | |
978 | } | |
979 | ||
980 | # This was intended to do any cleanup necessary. | |
981 | # It kinda looks like it isn't needed, but just | |
982 | # in case, please keep it in for now. | |
983 | ||
984 | gas_finish | |
985 | ||
986 | } | |
987 | ||
988 | if [istarget h8300*-*-elf] then { | |
989 | # Test advanced h8300sx instructions. | |
990 | do_t06_ari2_test | |
991 | } | |
992 |