Commit | Line | Data |
---|---|---|
0066efba JL |
1 | # |
2 | # Some H8/300 tests | |
3 | # | |
4 | proc do_h8300_add_sub {} { | |
5 | set testname "addsub.s: h8300 add/sub tests" | |
6 | set x 0 | |
7 | ||
8 | gas_start "addsub.s" "-al" | |
9 | ||
10 | # Check each instruction bit pattern to verify it got | |
11 | # assembled correctly. | |
12 | while 1 { | |
13 | expect { | |
14 | -re " +\[0-9\]+ 0000 8910\[^\n\]*\n" { set x [expr $x+1] } | |
15 | -re " +\[0-9\]+ 0002 0819\[^\n\]*\n" { set x [expr $x+1] } | |
16 | -re " +\[0-9\]+ 0004 0912\[^\n\]*\n" { set x [expr $x+1] } | |
17 | -re " +\[0-9\]+ 0006 0B04\[^\n\]*\n" { set x [expr $x+1] } | |
18 | -re " +\[0-9\]+ 0008 0B85\[^\n\]*\n" { set x [expr $x+1] } | |
19 | -re " +\[0-9\]+ 000a 0E89\[^\n\]*\n" { set x [expr $x+1] } | |
20 | -re " +\[0-9\]+ 000c 9210\[^\n\]*\n" { set x [expr $x+1] } | |
21 | -re " +\[0-9\]+ 000e 1889\[^\n\]*\n" { set x [expr $x+1] } | |
22 | -re " +\[0-9\]+ 0010 1901\[^\n\]*\n" { set x [expr $x+1] } | |
23 | -re " +\[0-9\]+ 0012 1B04\[^\n\]*\n" { set x [expr $x+1] } | |
24 | -re " +\[0-9\]+ 0014 1B85\[^\n\]*\n" { set x [expr $x+1] } | |
25 | -re " +\[0-9\]+ 0016 1E89\[^\n\]*\n" { set x [expr $x+1] } | |
26 | -re " +\[0-9\]+ 0018 B210\[^\n\]*\n" { set x [expr $x+1] } | |
27 | timeout { perror "timeout\n; break } | |
28 | eof { break } | |
29 | } | |
30 | } | |
31 | ||
32 | # This was intended to do any cleanup necessary. It kinda looks like it | |
33 | # isn't needed, but just in case, please keep it in for now. | |
34 | gas_finish | |
35 | ||
36 | # Did we find what we were looking for? If not, flunk it. | |
37 | if [expr $x == 13] then { pass $testname } else { fail $testname } | |
38 | } | |
39 | ||
40 | proc do_h8300_logical {} { | |
41 | set testname "logical.s: h8300 logical tests" | |
42 | set x 0 | |
43 | ||
44 | gas_start "logical.s" "-al" | |
45 | ||
46 | # Check each instruction bit pattern to verify it got | |
47 | # assembled correctly. | |
48 | while 1 { | |
49 | expect { | |
50 | -re " +\[0-9\]+ 0000 E910\[^\n\]*\n" { set x [expr $x+1] } | |
51 | -re " +\[0-9\]+ 0002 1691\[^\n\]*\n" { set x [expr $x+1] } | |
52 | -re " +\[0-9\]+ 0004 0610\[^\n\]*\n" { set x [expr $x+1] } | |
53 | -re " +\[0-9\]+ 0006 C810\[^\n\]*\n" { set x [expr $x+1] } | |
54 | -re " +\[0-9\]+ 0008 1498\[^\n\]*\n" { set x [expr $x+1] } | |
55 | -re " +\[0-9\]+ 000a 0410\[^\n\]*\n" { set x [expr $x+1] } | |
56 | -re " +\[0-9\]+ 000c D810\[^\n\]*\n" { set x [expr $x+1] } | |
57 | -re " +\[0-9\]+ 000e 1589\[^\n\]*\n" { set x [expr $x+1] } | |
58 | -re " +\[0-9\]+ 0010 0510\[^\n\]*\n" { set x [expr $x+1] } | |
59 | -re " +\[0-9\]+ 0012 1788\[^\n\]*\n" { set x [expr $x+1] } | |
60 | -re " +\[0-9\]+ 0014 1708\[^\n\]*\n" { set x [expr $x+1] } | |
61 | timeout { perror "timeout\n; break } | |
62 | eof { break } | |
63 | } | |
64 | } | |
65 | ||
66 | # This was intended to do any cleanup necessary. It kinda looks like it | |
67 | # isn't needed, but just in case, please keep it in for now. | |
68 | gas_finish | |
69 | ||
70 | # Did we find what we were looking for? If not, flunk it. | |
71 | if [expr $x == 11] then { pass $testname } else { fail $testname } | |
72 | } | |
73 | ||
74 | proc do_h8300_cbranch {} { | |
75 | set testname "cbranch.s: h8300 conditional branch tests" | |
76 | set x 0 | |
77 | ||
78 | gas_start "cbranch.s" "-al" | |
79 | ||
80 | # Check each instruction bit pattern to verify it got | |
81 | # assembled correctly. | |
82 | while 1 { | |
83 | expect { | |
84 | -re " +\[0-9\]+ 0000 4000\[^\n\]*\n" { set x [expr $x+1] } | |
85 | -re " +\[0-9\]+ 0002 4000\[^\n\]*\n" { set x [expr $x+1] } | |
86 | -re " +\[0-9\]+ 0004 4100\[^\n\]*\n" { set x [expr $x+1] } | |
87 | -re " +\[0-9\]+ 0006 4100\[^\n\]*\n" { set x [expr $x+1] } | |
88 | -re " +\[0-9\]+ 0008 4200\[^\n\]*\n" { set x [expr $x+1] } | |
89 | -re " +\[0-9\]+ 000a 4300\[^\n\]*\n" { set x [expr $x+1] } | |
90 | -re " +\[0-9\]+ 000c 4400\[^\n\]*\n" { set x [expr $x+1] } | |
91 | -re " +\[0-9\]+ 000e 4400\[^\n\]*\n" { set x [expr $x+1] } | |
92 | -re " +\[0-9\]+ 0010 4500\[^\n\]*\n" { set x [expr $x+1] } | |
93 | -re " +\[0-9\]+ 0012 4500\[^\n\]*\n" { set x [expr $x+1] } | |
94 | -re " +\[0-9\]+ 0014 4600\[^\n\]*\n" { set x [expr $x+1] } | |
95 | -re " +\[0-9\]+ 0016 4700\[^\n\]*\n" { set x [expr $x+1] } | |
96 | -re " +\[0-9\]+ 0018 4800\[^\n\]*\n" { set x [expr $x+1] } | |
97 | -re " +\[0-9\]+ 001a 4900\[^\n\]*\n" { set x [expr $x+1] } | |
98 | -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n" { set x [expr $x+1] } | |
99 | -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n" { set x [expr $x+1] } | |
100 | -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n" { set x [expr $x+1] } | |
101 | -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n" { set x [expr $x+1] } | |
102 | -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n" { set x [expr $x+1] } | |
103 | -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n" { set x [expr $x+1] } | |
104 | timeout { perror "timeout\n; break } | |
105 | eof { break } | |
106 | } | |
107 | } | |
108 | ||
109 | # This was intended to do any cleanup necessary. It kinda looks like it | |
110 | # isn't needed, but just in case, please keep it in for now. | |
111 | gas_finish | |
112 | ||
113 | # Did we find what we were looking for? If not, flunk it. | |
114 | if [expr $x == 20] then { pass $testname } else { fail $testname } | |
115 | } | |
116 | ||
117 | proc do_h8300_bitops1 {} { | |
118 | set testname "bitops1.s: h8300 bitops tests #1" | |
119 | set x 0 | |
120 | ||
121 | gas_start "bitops1.s" "-al" | |
122 | ||
123 | # Check each instruction bit pattern to verify it got | |
124 | # assembled correctly. | |
125 | while 1 { | |
126 | expect { | |
127 | -re " +\[0-9\]+ 0000 7608\[^\n\]*\n" { set x [expr $x+1] } | |
128 | -re " +\[0-9\]+ 0002 7C007600\[^\n\]*\n" { set x [expr $x+1] } | |
129 | -re " +\[0-9\]+ 0006 7E407600\[^\n\]*\n" { set x [expr $x+1] } | |
130 | -re " +\[0-9\]+ 000a 7208\[^\n\]*\n" { set x [expr $x+1] } | |
131 | -re " +\[0-9\]+ 000c 7D007200\[^\n\]*\n" { set x [expr $x+1] } | |
132 | -re " +\[0-9\]+ 0010 7F407200\[^\n\]*\n" { set x [expr $x+1] } | |
133 | -re " +\[0-9\]+ 0014 6298\[^\n\]*\n" { set x [expr $x+1] } | |
134 | -re " +\[0-9\]+ 0016 7D006290\[^\n\]*\n" { set x [expr $x+1] } | |
135 | -re " +\[0-9\]+ 001a 7F406290\[^\n\]*\n" { set x [expr $x+1] } | |
136 | -re " +\[0-9\]+ 001e 7688\[^\n\]*\n" { set x [expr $x+1] } | |
137 | -re " +\[0-9\]+ 0020 7C007680\[^\n\]*\n" { set x [expr $x+1] } | |
138 | -re " +\[0-9\]+ 0024 7E407680\[^\n\]*\n" { set x [expr $x+1] } | |
139 | -re " +\[0-9\]+ 0028 7788\[^\n\]*\n" { set x [expr $x+1] } | |
140 | -re " +\[0-9\]+ 002a 7C007780\[^\n\]*\n" { set x [expr $x+1] } | |
141 | -re " +\[0-9\]+ 002e 7E407780\[^\n\]*\n" { set x [expr $x+1] } | |
142 | timeout { perror "timeout\n; break } | |
143 | eof { break } | |
144 | } | |
145 | } | |
146 | ||
147 | # This was intended to do any cleanup necessary. It kinda looks like it | |
148 | # isn't needed, but just in case, please keep it in for now. | |
149 | gas_finish | |
150 | ||
151 | # Did we find what we were looking for? If not, flunk it. | |
152 | if [expr $x == 15] then { pass $testname } else { fail $testname } | |
153 | } | |
154 | ||
155 | proc do_h8300_bitops2 {} { | |
156 | set testname "bitops2.s: h8300 bitops tests #2" | |
157 | set x 0 | |
158 | ||
159 | gas_start "bitops2.s" "-al" | |
160 | ||
161 | # Check each instruction bit pattern to verify it got | |
162 | # assembled correctly. | |
163 | while 1 { | |
164 | expect { | |
165 | -re " +\[0-9\]+ 0000 7488\[^\n\]*\n" { set x [expr $x+1] } | |
166 | -re " +\[0-9\]+ 0002 7C007480\[^\n\]*\n" { set x [expr $x+1] } | |
167 | -re " +\[0-9\]+ 0006 7E407480\[^\n\]*\n" { set x [expr $x+1] } | |
168 | -re " +\[0-9\]+ 000a 6788\[^\n\]*\n" { set x [expr $x+1] } | |
169 | -re " +\[0-9\]+ 000c 7D006780\[^\n\]*\n" { set x [expr $x+1] } | |
170 | -re " +\[0-9\]+ 0010 7F406780\[^\n\]*\n" { set x [expr $x+1] } | |
171 | -re " +\[0-9\]+ 0014 7588\[^\n\]*\n" { set x [expr $x+1] } | |
172 | -re " +\[0-9\]+ 0016 7C007580\[^\n\]*\n" { set x [expr $x+1] } | |
173 | -re " +\[0-9\]+ 001a 7E407580\[^\n\]*\n" { set x [expr $x+1] } | |
174 | -re " +\[0-9\]+ 001e 7708\[^\n\]*\n" { set x [expr $x+1] } | |
175 | -re " +\[0-9\]+ 0020 7C007700\[^\n\]*\n" { set x [expr $x+1] } | |
176 | -re " +\[0-9\]+ 0024 7E407700\[^\n\]*\n" { set x [expr $x+1] } | |
177 | timeout { perror "timeout\n; break } | |
178 | eof { break } | |
179 | } | |
180 | } | |
181 | ||
182 | # This was intended to do any cleanup necessary. It kinda looks like it | |
183 | # isn't needed, but just in case, please keep it in for now. | |
184 | gas_finish | |
185 | ||
186 | # Did we find what we were looking for? If not, flunk it. | |
187 | if [expr $x == 12] then { pass $testname } else { fail $testname } | |
188 | } | |
189 | ||
190 | proc do_h8300_bitops3 {} { | |
191 | set testname "bitops3.s: h8300 bitops tests #3" | |
192 | set x 0 | |
193 | ||
194 | gas_start "bitops3.s" "-al" | |
195 | ||
196 | # Check each instruction bit pattern to verify it got | |
197 | # assembled correctly. | |
198 | while 1 { | |
199 | expect { | |
200 | -re " +\[0-9\]+ 0000 7108\[^\n\]*\n" { set x [expr $x+1] } | |
201 | -re " +\[0-9\]+ 0002 7D007100\[^\n\]*\n" { set x [expr $x+1] } | |
202 | -re " +\[0-9\]+ 0006 7F407100\[^\n\]*\n" { set x [expr $x+1] } | |
203 | -re " +\[0-9\]+ 000a 6198\[^\n\]*\n" { set x [expr $x+1] } | |
204 | -re " +\[0-9\]+ 000c 7D006190\[^\n\]*\n" { set x [expr $x+1] } | |
205 | -re " +\[0-9\]+ 0010 7F406190\[^\n\]*\n" { set x [expr $x+1] } | |
206 | -re " +\[0-9\]+ 0014 7008\[^\n\]*\n" { set x [expr $x+1] } | |
207 | -re " +\[0-9\]+ 0016 7D007000\[^\n\]*\n" { set x [expr $x+1] } | |
208 | -re " +\[0-9\]+ 001a 7F407000\[^\n\]*\n" { set x [expr $x+1] } | |
209 | -re " +\[0-9\]+ 001e 6098\[^\n\]*\n" { set x [expr $x+1] } | |
210 | -re " +\[0-9\]+ 0020 7D006090\[^\n\]*\n" { set x [expr $x+1] } | |
211 | -re " +\[0-9\]+ 0024 7F406090\[^\n\]*\n" { set x [expr $x+1] } | |
212 | timeout { perror "timeout\n; break } | |
213 | eof { break } | |
214 | } | |
215 | } | |
216 | ||
217 | # This was intended to do any cleanup necessary. It kinda looks like it | |
218 | # isn't needed, but just in case, please keep it in for now. | |
219 | gas_finish | |
220 | ||
221 | # Did we find what we were looking for? If not, flunk it. | |
222 | if [expr $x == 12] then { pass $testname } else { fail $testname } | |
223 | } | |
224 | ||
225 | proc do_h8300_bitops4 {} { | |
226 | set testname "bitops4.s: h8300 bitops tests #4" | |
227 | set x 0 | |
228 | ||
229 | gas_start "bitops4.s" "-al" | |
230 | ||
231 | # Check each instruction bit pattern to verify it got | |
232 | # assembled correctly. | |
233 | while 1 { | |
234 | expect { | |
235 | -re " +\[0-9\]+ 0000 7408\[^\n\]*\n" { set x [expr $x+1] } | |
236 | -re " +\[0-9\]+ 0002 7C007400\[^\n\]*\n" { set x [expr $x+1] } | |
237 | -re " +\[0-9\]+ 0006 7E407400\[^\n\]*\n" { set x [expr $x+1] } | |
238 | -re " +\[0-9\]+ 000a 6708\[^\n\]*\n" { set x [expr $x+1] } | |
239 | -re " +\[0-9\]+ 000c 7D006700\[^\n\]*\n" { set x [expr $x+1] } | |
240 | -re " +\[0-9\]+ 0010 7F406700\[^\n\]*\n" { set x [expr $x+1] } | |
241 | -re " +\[0-9\]+ 0014 7308\[^\n\]*\n" { set x [expr $x+1] } | |
242 | -re " +\[0-9\]+ 0016 7C007300\[^\n\]*\n" { set x [expr $x+1] } | |
243 | -re " +\[0-9\]+ 001a 7E407300\[^\n\]*\n" { set x [expr $x+1] } | |
244 | -re " +\[0-9\]+ 001e 6398\[^\n\]*\n" { set x [expr $x+1] } | |
245 | -re " +\[0-9\]+ 0020 7C006390\[^\n\]*\n" { set x [expr $x+1] } | |
246 | -re " +\[0-9\]+ 0024 7E406390\[^\n\]*\n" { set x [expr $x+1] } | |
247 | -re " +\[0-9\]+ 0028 7508\[^\n\]*\n" { set x [expr $x+1] } | |
248 | -re " +\[0-9\]+ 002a 7C007500\[^\n\]*\n" { set x [expr $x+1] } | |
249 | -re " +\[0-9\]+ 002e 7E407500\[^\n\]*\n" { set x [expr $x+1] } | |
250 | timeout { perror "timeout\n; break } | |
251 | eof { break } | |
252 | } | |
253 | } | |
254 | ||
255 | # This was intended to do any cleanup necessary. It kinda looks like it | |
256 | # isn't needed, but just in case, please keep it in for now. | |
257 | gas_finish | |
258 | ||
259 | # Did we find what we were looking for? If not, flunk it. | |
01ae5e99 | 260 | if [expr $x == 15] then { pass $testname } else { fail $testname } |
0066efba JL |
261 | } |
262 | ||
263 | proc do_h8300_branches {} { | |
264 | set testname "branches.s: h8300 branch tests" | |
265 | set x 0 | |
266 | ||
267 | gas_start "branches.s" "-al" | |
268 | ||
269 | # Check each instruction bit pattern to verify it got | |
270 | # assembled correctly. | |
271 | while 1 { | |
272 | expect { | |
273 | -re " +\[0-9\]+ 0000 5500\[^\n\]*\n" { set x [expr $x+1] } | |
274 | -re " +\[0-9\]+ 0002 5A000000\[^\n\]*\n" { set x [expr $x+1] } | |
275 | -re " +\[0-9\]+ 0006 5900\[^\n\]*\n" { set x [expr $x+1] } | |
276 | -re " +\[0-9\]+ 0008 5B00\[^\n\]*\n" { set x [expr $x+1] } | |
277 | -re " +\[0-9\]+ 000a 5E000000\[^\n\]*\n" { set x [expr $x+1] } | |
278 | -re " +\[0-9\]+ 000e 5D00\[^\n\]*\n" { set x [expr $x+1] } | |
279 | -re " +\[0-9\]+ 0010 5F00\[^\n\]*\n" { set x [expr $x+1] } | |
280 | timeout { perror "timeout\n; break } | |
281 | eof { break } | |
282 | } | |
283 | } | |
284 | ||
285 | # This was intended to do any cleanup necessary. It kinda looks like it | |
286 | # isn't needed, but just in case, please keep it in for now. | |
287 | gas_finish | |
288 | ||
289 | # Did we find what we were looking for? If not, flunk it. | |
290 | if [expr $x == 7] then { pass $testname } else { fail $testname } | |
291 | } | |
292 | ||
293 | proc do_h8300_compare {} { | |
294 | set testname "compare.s: h8300 compare tests" | |
295 | set x 0 | |
296 | ||
297 | gas_start "compare.s" "-al" | |
298 | ||
299 | # Check each instruction bit pattern to verify it got | |
300 | # assembled correctly. | |
301 | while 1 { | |
302 | expect { | |
303 | -re " +\[0-9\]+ 0000 A800\[^\n\]*\n" { set x [expr $x+1] } | |
304 | -re " +\[0-9\]+ 0002 1C08\[^\n\]*\n" { set x [expr $x+1] } | |
305 | -re " +\[0-9\]+ 0004 1D01\[^\n\]*\n" { set x [expr $x+1] } | |
306 | timeout { perror "timeout\n; break } | |
307 | eof { break } | |
308 | } | |
309 | } | |
310 | ||
311 | # This was intended to do any cleanup necessary. It kinda looks like it | |
312 | # isn't needed, but just in case, please keep it in for now. | |
313 | gas_finish | |
314 | ||
315 | # Did we find what we were looking for? If not, flunk it. | |
316 | if [expr $x == 3] then { pass $testname } else { fail $testname } | |
317 | } | |
318 | ||
319 | proc do_h8300_decimal {} { | |
320 | set testname "decimal.s: h8300 decimal tests" | |
321 | set x 0 | |
322 | ||
323 | gas_start "decimal.s" "-al" | |
324 | ||
325 | # Check each instruction bit pattern to verify it got | |
326 | # assembled correctly. | |
327 | while 1 { | |
328 | expect { | |
329 | -re " +\[0-9\]+ 0000 0F08\[^\n\]*\n" { set x [expr $x+1] } | |
330 | -re " +\[0-9\]+ 0002 1F08\[^\n\]*\n" { set x [expr $x+1] } | |
331 | eof { break } | |
332 | } | |
333 | } | |
334 | ||
335 | # This was intended to do any cleanup necessary. It kinda looks like it | |
336 | # isn't needed, but just in case, please keep it in for now. | |
337 | gas_finish | |
338 | ||
339 | # Did we find what we were looking for? If not, flunk it. | |
340 | if [expr $x == 2] then { pass $testname } else { fail $testname } | |
341 | } | |
342 | ||
343 | proc do_h8300_incdec {} { | |
344 | set testname "incdec.s: h8300 incdec tests" | |
345 | set x 0 | |
346 | ||
347 | gas_start "incdec.s" "-al" | |
348 | ||
349 | # Check each instruction bit pattern to verify it got | |
350 | # assembled correctly. | |
351 | while 1 { | |
352 | expect { | |
353 | -re " +\[0-9\]+ 0000 1A08\[^\n\]*\n" { set x [expr $x+1] } | |
354 | -re " +\[0-9\]+ 0002 0A08\[^\n\]*\n" { set x [expr $x+1] } | |
355 | eof { break } | |
356 | } | |
357 | } | |
358 | ||
359 | # This was intended to do any cleanup necessary. It kinda looks like it | |
360 | # isn't needed, but just in case, please keep it in for now. | |
361 | gas_finish | |
362 | ||
363 | # Did we find what we were looking for? If not, flunk it. | |
364 | if [expr $x == 2] then { pass $testname } else { fail $testname } | |
365 | } | |
366 | ||
367 | proc do_h8300_divmul {} { | |
368 | set testname "divmul.s: h8300 divmul tests" | |
369 | set x 0 | |
370 | ||
371 | gas_start "divmul.s" "-al" | |
372 | ||
373 | # Check each instruction bit pattern to verify it got | |
374 | # assembled correctly. | |
375 | while 1 { | |
376 | expect { | |
377 | -re " +\[0-9\]+ 0000 5181\[^\n\]*\n" { set x [expr $x+1] } | |
378 | -re " +\[0-9\]+ 0002 5081\[^\n\]*\n" { set x [expr $x+1] } | |
379 | eof { break } | |
380 | } | |
381 | } | |
382 | ||
383 | # This was intended to do any cleanup necessary. It kinda looks like it | |
384 | # isn't needed, but just in case, please keep it in for now. | |
385 | gas_finish | |
386 | ||
387 | # Did we find what we were looking for? If not, flunk it. | |
388 | if [expr $x == 2] then { pass $testname } else { fail $testname } | |
389 | } | |
390 | ||
391 | proc do_h8300_misc {} { | |
392 | set testname "misc.s: h8300 misc tests" | |
393 | set x 0 | |
394 | ||
395 | gas_start "misc.s" "-al" | |
396 | ||
397 | # Check each instruction bit pattern to verify it got | |
398 | # assembled correctly. | |
399 | while 1 { | |
400 | expect { | |
401 | -re " +\[0-9\]+ 0000 7B5C598F\[^\n\]*\n" { set x [expr $x+1] } | |
402 | -re " +\[0-9\]+ 0004 0700\[^\n\]*\n" { set x [expr $x+1] } | |
403 | -re " +\[0-9\]+ 0006 0308\[^\n\]*\n" { set x [expr $x+1] } | |
404 | -re " +\[0-9\]+ 0008 0000\[^\n\]*\n" { set x [expr $x+1] } | |
405 | -re " +\[0-9\]+ 000a 5670\[^\n\]*\n" { set x [expr $x+1] } | |
406 | -re " +\[0-9\]+ 000c 5470\[^\n\]*\n" { set x [expr $x+1] } | |
407 | -re " +\[0-9\]+ 000e 0180\[^\n\]*\n" { set x [expr $x+1] } | |
408 | -re " +\[0-9\]+ 0010 0208\[^\n\]*\n" { set x [expr $x+1] } | |
409 | eof { break } | |
410 | } | |
411 | } | |
412 | ||
413 | # This was intended to do any cleanup necessary. It kinda looks like it | |
414 | # isn't needed, but just in case, please keep it in for now. | |
415 | gas_finish | |
416 | ||
417 | # Did we find what we were looking for? If not, flunk it. | |
418 | if [expr $x == 8] then { pass $testname } else { fail $testname } | |
419 | ||
420 | setup_xfail "h8300*-*-*" | |
421 | fail "h8300 movfpe/movtpe tests" | |
422 | } | |
423 | ||
424 | proc do_h8300_movb {} { | |
425 | set testname "movb.s: h8300 movb tests" | |
426 | set x 0 | |
427 | ||
428 | gas_start "movb.s" "-al" | |
429 | ||
430 | # Check each instruction bit pattern to verify it got | |
431 | # assembled correctly. | |
432 | while 1 { | |
433 | expect { | |
434 | -re " +\[0-9\]+ 0000 0C89\[^\n\]*\n" { set x [expr $x+1] } | |
435 | -re " +\[0-9\]+ 0002 F810\[^\n\]*\n" { set x [expr $x+1] } | |
436 | -re " +\[0-9\]+ 0004 6818\[^\n\]*\n" { set x [expr $x+1] } | |
437 | -re " +\[0-9\]+ 0006 6E180010\[^\n\]*\n" { set x [expr $x+1] } | |
438 | -re " +\[0-9\]+ 000a 6C18\[^\n\]*\n" { set x [expr $x+1] } | |
439 | -re " +\[0-9\]+ 000c 2810\[^\n\]*\n" { set x [expr $x+1] } | |
440 | -re " +\[0-9\]+ 000e 6A080000\[^\n\]*\n" { set x [expr $x+1] } | |
441 | -re " +\[0-9\]+ 0012 6898\[^\n\]*\n" { set x [expr $x+1] } | |
442 | -re " +\[0-9\]+ 0014 6E980000\[^\n\]*\n" { set x [expr $x+1] } | |
443 | -re " +\[0-9\]+ 0018 6C98\[^\n\]*\n" { set x [expr $x+1] } | |
444 | -re " +\[0-9\]+ 001a 3810\[^\n\]*\n" { set x [expr $x+1] } | |
445 | -re " +\[0-9\]+ 001c 6A880000\[^\n\]*\n" { set x [expr $x+1] } | |
446 | eof { break } | |
447 | } | |
448 | } | |
449 | ||
450 | # This was intended to do any cleanup necessary. It kinda looks like it | |
451 | # isn't needed, but just in case, please keep it in for now. | |
452 | gas_finish | |
453 | ||
454 | # Did we find what we were looking for? If not, flunk it. | |
455 | if [expr $x == 12] then { pass $testname } else { fail $testname } | |
456 | } | |
457 | ||
458 | proc do_h8300_movw {} { | |
459 | set testname "movw.s: h8300 movw tests" | |
460 | set x 0 | |
461 | ||
462 | gas_start "movw.s" "-al" | |
463 | ||
464 | # Check each instruction bit pattern to verify it got | |
465 | # assembled correctly. | |
466 | while 1 { | |
467 | expect { | |
468 | -re " +\[0-9\]+ 0000 0D01\[^\n\]*\n" { set x [expr $x+1] } | |
469 | -re " +\[0-9\]+ 0002 79000010\[^\n\]*\n" { set x [expr $x+1] } | |
470 | -re " +\[0-9\]+ 0006 6910\[^\n\]*\n" { set x [expr $x+1] } | |
471 | -re " +\[0-9\]+ 0008 6F100010\[^\n\]*\n" { set x [expr $x+1] } | |
472 | -re " +\[0-9\]+ 000c 6D10\[^\n\]*\n" { set x [expr $x+1] } | |
473 | -re " +\[0-9\]+ 000e 6B000000\[^\n\]*\n" { set x [expr $x+1] } | |
474 | -re " +\[0-9\]+ 0012 6990\[^\n\]*\n" { set x [expr $x+1] } | |
475 | -re " +\[0-9\]+ 0014 6F900010\[^\n\]*\n" { set x [expr $x+1] } | |
476 | -re " +\[0-9\]+ 0018 6D90\[^\n\]*\n" { set x [expr $x+1] } | |
477 | -re " +\[0-9\]+ 001a 6B800000\[^\n\]*\n" { set x [expr $x+1] } | |
478 | eof { break } | |
479 | } | |
480 | } | |
481 | ||
482 | # This was intended to do any cleanup necessary. It kinda looks like it | |
483 | # isn't needed, but just in case, please keep it in for now. | |
484 | gas_finish | |
485 | ||
486 | # Did we find what we were looking for? If not, flunk it. | |
487 | if [expr $x == 10] then { pass $testname } else { fail $testname } | |
488 | } | |
489 | ||
490 | proc do_h8300_pushpop {} { | |
491 | set testname "pushpop.s: h8300 pushpop tests" | |
492 | set x 0 | |
493 | ||
494 | gas_start "pushpop.s" "-al" | |
495 | ||
496 | # Check each instruction bit pattern to verify it got | |
497 | # assembled correctly. | |
498 | while 1 { | |
499 | expect { | |
500 | -re " +\[0-9\]+ 0000 6D70\[^\n\]*\n" { set x [expr $x+1] } | |
501 | -re " +\[0-9\]+ 0002 6DF0\[^\n\]*\n" { set x [expr $x+1] } | |
502 | eof { break } | |
503 | } | |
504 | } | |
505 | ||
506 | # This was intended to do any cleanup necessary. It kinda looks like it | |
507 | # isn't needed, but just in case, please keep it in for now. | |
508 | gas_finish | |
509 | ||
510 | # Did we find what we were looking for? If not, flunk it. | |
511 | if [expr $x == 2] then { pass $testname } else { fail $testname } | |
512 | } | |
513 | ||
514 | proc do_h8300_rotate_shift {} { | |
515 | set testname "rotshift.s: h8300 rotate and shift tests" | |
516 | set x 0 | |
517 | ||
518 | gas_start "rotshift.s" "-al" | |
519 | ||
520 | # Check each instruction bit pattern to verify it got | |
521 | # assembled correctly. | |
522 | while 1 { | |
523 | expect { | |
524 | -re " +\[0-9\]+ 0000 1288\[^\n\]*\n" { set x [expr $x+1] } | |
525 | -re " +\[0-9\]+ 0002 1388\[^\n\]*\n" { set x [expr $x+1] } | |
526 | -re " +\[0-9\]+ 0004 1208\[^\n\]*\n" { set x [expr $x+1] } | |
527 | -re " +\[0-9\]+ 0006 1308\[^\n\]*\n" { set x [expr $x+1] } | |
528 | -re " +\[0-9\]+ 0008 1088\[^\n\]*\n" { set x [expr $x+1] } | |
529 | -re " +\[0-9\]+ 000a 1188\[^\n\]*\n" { set x [expr $x+1] } | |
530 | -re " +\[0-9\]+ 000c 1008\[^\n\]*\n" { set x [expr $x+1] } | |
531 | -re " +\[0-9\]+ 000e 1108\[^\n\]*\n" { set x [expr $x+1] } | |
532 | eof { break } | |
533 | } | |
534 | } | |
535 | ||
536 | # This was intended to do any cleanup necessary. It kinda looks like it | |
537 | # isn't needed, but just in case, please keep it in for now. | |
538 | gas_finish | |
539 | ||
540 | # Did we find what we were looking for? If not, flunk it. | |
541 | if [expr $x == 8] then { pass $testname } else { fail $testname } | |
542 | } | |
543 | ||
544 | ||
545 | if [istarget h8300*-*-*] then { | |
546 | # Test the basic h8300 instruction parser | |
547 | do_h8300_add_sub | |
548 | do_h8300_logical | |
549 | do_h8300_cbranch | |
550 | do_h8300_bitops1 | |
551 | do_h8300_bitops2 | |
552 | do_h8300_bitops3 | |
553 | do_h8300_bitops4 | |
554 | do_h8300_branches | |
555 | do_h8300_compare | |
556 | do_h8300_decimal | |
557 | do_h8300_incdec | |
558 | do_h8300_divmul | |
559 | do_h8300_misc | |
560 | do_h8300_movb | |
561 | do_h8300_movw | |
562 | do_h8300_pushpop | |
563 | do_h8300_rotate_shift | |
564 | ||
565 | ||
566 | # Now some random tests | |
567 | set svr4pic [expr [istarget *-*-elf*] || [istarget *-*-irix5*] ] | |
568 | set empic [expr [istarget *-*-ecoff*] || [istarget *-*-ultrix*] || [istarget *-*-irix\[1-4\]*] ] | |
569 | set aout [expr [istarget *-*-bsd*] || [istarget *-*-netbsd*]] | |
570 | ||
571 | run_dump_test "ffxx1" | |
572 | gas_test "cmpsi2.s" "" "" "cmpsi2.s" | |
573 | } |