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 | ||
252b5132 RH |
17 | # |
18 | # Some H8/300 tests | |
19 | # | |
20 | proc do_h8300_add_sub {} { | |
21 | set testname "addsub.s: h8300 add/sub tests" | |
22 | set x 0 | |
23 | ||
24 | gas_start "addsub.s" "-al" | |
25 | ||
26 | # Check each instruction bit pattern to verify it got | |
27 | # assembled correctly. | |
28 | while 1 { | |
29 | expect { | |
30 | -re " +\[0-9\]+ 0000 8910\[^\n\]*\n" { set x [expr $x+1] } | |
31 | -re " +\[0-9\]+ 0002 0819\[^\n\]*\n" { set x [expr $x+1] } | |
32 | -re " +\[0-9\]+ 0004 0912\[^\n\]*\n" { set x [expr $x+1] } | |
33 | -re " +\[0-9\]+ 0006 0B04\[^\n\]*\n" { set x [expr $x+1] } | |
34 | -re " +\[0-9\]+ 0008 0B85\[^\n\]*\n" { set x [expr $x+1] } | |
35 | -re " +\[0-9\]+ 000a 0E89\[^\n\]*\n" { set x [expr $x+1] } | |
36 | -re " +\[0-9\]+ 000c 9210\[^\n\]*\n" { set x [expr $x+1] } | |
37 | -re " +\[0-9\]+ 000e 1889\[^\n\]*\n" { set x [expr $x+1] } | |
38 | -re " +\[0-9\]+ 0010 1901\[^\n\]*\n" { set x [expr $x+1] } | |
39 | -re " +\[0-9\]+ 0012 1B04\[^\n\]*\n" { set x [expr $x+1] } | |
40 | -re " +\[0-9\]+ 0014 1B85\[^\n\]*\n" { set x [expr $x+1] } | |
41 | -re " +\[0-9\]+ 0016 1E89\[^\n\]*\n" { set x [expr $x+1] } | |
42 | -re " +\[0-9\]+ 0018 B210\[^\n\]*\n" { set x [expr $x+1] } | |
43 | timeout { perror "timeout\n; break } | |
44 | eof { break } | |
45 | } | |
46 | } | |
47 | ||
48 | # This was intended to do any cleanup necessary. It kinda looks like it | |
49 | # isn't needed, but just in case, please keep it in for now. | |
50 | gas_finish | |
51 | ||
52 | # Did we find what we were looking for? If not, flunk it. | |
53 | if [expr $x == 13] then { pass $testname } else { fail $testname } | |
54 | } | |
55 | ||
56 | proc do_h8300_logical {} { | |
57 | set testname "logical.s: h8300 logical tests" | |
58 | set x 0 | |
59 | ||
60 | gas_start "logical.s" "-al" | |
61 | ||
62 | # Check each instruction bit pattern to verify it got | |
63 | # assembled correctly. | |
64 | while 1 { | |
65 | expect { | |
66 | -re " +\[0-9\]+ 0000 E910\[^\n\]*\n" { set x [expr $x+1] } | |
67 | -re " +\[0-9\]+ 0002 1691\[^\n\]*\n" { set x [expr $x+1] } | |
68 | -re " +\[0-9\]+ 0004 0610\[^\n\]*\n" { set x [expr $x+1] } | |
69 | -re " +\[0-9\]+ 0006 C810\[^\n\]*\n" { set x [expr $x+1] } | |
70 | -re " +\[0-9\]+ 0008 1498\[^\n\]*\n" { set x [expr $x+1] } | |
71 | -re " +\[0-9\]+ 000a 0410\[^\n\]*\n" { set x [expr $x+1] } | |
72 | -re " +\[0-9\]+ 000c D810\[^\n\]*\n" { set x [expr $x+1] } | |
73 | -re " +\[0-9\]+ 000e 1589\[^\n\]*\n" { set x [expr $x+1] } | |
74 | -re " +\[0-9\]+ 0010 0510\[^\n\]*\n" { set x [expr $x+1] } | |
75 | -re " +\[0-9\]+ 0012 1788\[^\n\]*\n" { set x [expr $x+1] } | |
76 | -re " +\[0-9\]+ 0014 1708\[^\n\]*\n" { set x [expr $x+1] } | |
77 | timeout { perror "timeout\n; break } | |
78 | eof { break } | |
79 | } | |
80 | } | |
81 | ||
82 | # This was intended to do any cleanup necessary. It kinda looks like it | |
83 | # isn't needed, but just in case, please keep it in for now. | |
84 | gas_finish | |
85 | ||
86 | # Did we find what we were looking for? If not, flunk it. | |
87 | if [expr $x == 11] then { pass $testname } else { fail $testname } | |
88 | } | |
89 | ||
90 | proc do_h8300_cbranch {} { | |
91 | set testname "cbranch.s: h8300 conditional branch tests" | |
92 | set x 0 | |
93 | ||
94 | gas_start "cbranch.s" "-al" | |
95 | ||
96 | # Check each instruction bit pattern to verify it got | |
97 | # assembled correctly. | |
98 | while 1 { | |
99 | expect { | |
100 | -re " +\[0-9\]+ 0000 4000\[^\n\]*\n" { set x [expr $x+1] } | |
101 | -re " +\[0-9\]+ 0002 4000\[^\n\]*\n" { set x [expr $x+1] } | |
102 | -re " +\[0-9\]+ 0004 4100\[^\n\]*\n" { set x [expr $x+1] } | |
103 | -re " +\[0-9\]+ 0006 4100\[^\n\]*\n" { set x [expr $x+1] } | |
104 | -re " +\[0-9\]+ 0008 4200\[^\n\]*\n" { set x [expr $x+1] } | |
105 | -re " +\[0-9\]+ 000a 4300\[^\n\]*\n" { set x [expr $x+1] } | |
106 | -re " +\[0-9\]+ 000c 4400\[^\n\]*\n" { set x [expr $x+1] } | |
107 | -re " +\[0-9\]+ 000e 4400\[^\n\]*\n" { set x [expr $x+1] } | |
108 | -re " +\[0-9\]+ 0010 4500\[^\n\]*\n" { set x [expr $x+1] } | |
109 | -re " +\[0-9\]+ 0012 4500\[^\n\]*\n" { set x [expr $x+1] } | |
110 | -re " +\[0-9\]+ 0014 4600\[^\n\]*\n" { set x [expr $x+1] } | |
111 | -re " +\[0-9\]+ 0016 4700\[^\n\]*\n" { set x [expr $x+1] } | |
112 | -re " +\[0-9\]+ 0018 4800\[^\n\]*\n" { set x [expr $x+1] } | |
113 | -re " +\[0-9\]+ 001a 4900\[^\n\]*\n" { set x [expr $x+1] } | |
114 | -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n" { set x [expr $x+1] } | |
115 | -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n" { set x [expr $x+1] } | |
116 | -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n" { set x [expr $x+1] } | |
117 | -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n" { set x [expr $x+1] } | |
118 | -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n" { set x [expr $x+1] } | |
119 | -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n" { set x [expr $x+1] } | |
120 | timeout { perror "timeout\n; break } | |
121 | eof { break } | |
122 | } | |
123 | } | |
124 | ||
125 | # This was intended to do any cleanup necessary. It kinda looks like it | |
126 | # isn't needed, but just in case, please keep it in for now. | |
127 | gas_finish | |
128 | ||
129 | # Did we find what we were looking for? If not, flunk it. | |
130 | if [expr $x == 20] then { pass $testname } else { fail $testname } | |
131 | } | |
132 | ||
133 | proc do_h8300_bitops1 {} { | |
134 | set testname "bitops1.s: h8300 bitops tests #1" | |
135 | set x 0 | |
136 | ||
137 | gas_start "bitops1.s" "-al" | |
138 | ||
139 | # Check each instruction bit pattern to verify it got | |
140 | # assembled correctly. | |
141 | while 1 { | |
142 | expect { | |
143 | -re " +\[0-9\]+ 0000 7608\[^\n\]*\n" { set x [expr $x+1] } | |
144 | -re " +\[0-9\]+ 0002 7C007600\[^\n\]*\n" { set x [expr $x+1] } | |
145 | -re " +\[0-9\]+ 0006 7E407600\[^\n\]*\n" { set x [expr $x+1] } | |
146 | -re " +\[0-9\]+ 000a 7208\[^\n\]*\n" { set x [expr $x+1] } | |
147 | -re " +\[0-9\]+ 000c 7D007200\[^\n\]*\n" { set x [expr $x+1] } | |
148 | -re " +\[0-9\]+ 0010 7F407200\[^\n\]*\n" { set x [expr $x+1] } | |
149 | -re " +\[0-9\]+ 0014 6298\[^\n\]*\n" { set x [expr $x+1] } | |
150 | -re " +\[0-9\]+ 0016 7D006290\[^\n\]*\n" { set x [expr $x+1] } | |
151 | -re " +\[0-9\]+ 001a 7F406290\[^\n\]*\n" { set x [expr $x+1] } | |
152 | -re " +\[0-9\]+ 001e 7688\[^\n\]*\n" { set x [expr $x+1] } | |
153 | -re " +\[0-9\]+ 0020 7C007680\[^\n\]*\n" { set x [expr $x+1] } | |
154 | -re " +\[0-9\]+ 0024 7E407680\[^\n\]*\n" { set x [expr $x+1] } | |
155 | -re " +\[0-9\]+ 0028 7788\[^\n\]*\n" { set x [expr $x+1] } | |
156 | -re " +\[0-9\]+ 002a 7C007780\[^\n\]*\n" { set x [expr $x+1] } | |
157 | -re " +\[0-9\]+ 002e 7E407780\[^\n\]*\n" { set x [expr $x+1] } | |
158 | timeout { perror "timeout\n; break } | |
159 | eof { break } | |
160 | } | |
161 | } | |
162 | ||
163 | # This was intended to do any cleanup necessary. It kinda looks like it | |
164 | # isn't needed, but just in case, please keep it in for now. | |
165 | gas_finish | |
166 | ||
167 | # Did we find what we were looking for? If not, flunk it. | |
168 | if [expr $x == 15] then { pass $testname } else { fail $testname } | |
169 | } | |
170 | ||
171 | proc do_h8300_bitops2 {} { | |
172 | set testname "bitops2.s: h8300 bitops tests #2" | |
173 | set x 0 | |
174 | ||
175 | gas_start "bitops2.s" "-al" | |
176 | ||
177 | # Check each instruction bit pattern to verify it got | |
178 | # assembled correctly. | |
179 | while 1 { | |
180 | expect { | |
181 | -re " +\[0-9\]+ 0000 7488\[^\n\]*\n" { set x [expr $x+1] } | |
182 | -re " +\[0-9\]+ 0002 7C007480\[^\n\]*\n" { set x [expr $x+1] } | |
183 | -re " +\[0-9\]+ 0006 7E407480\[^\n\]*\n" { set x [expr $x+1] } | |
184 | -re " +\[0-9\]+ 000a 6788\[^\n\]*\n" { set x [expr $x+1] } | |
185 | -re " +\[0-9\]+ 000c 7D006780\[^\n\]*\n" { set x [expr $x+1] } | |
186 | -re " +\[0-9\]+ 0010 7F406780\[^\n\]*\n" { set x [expr $x+1] } | |
187 | -re " +\[0-9\]+ 0014 7588\[^\n\]*\n" { set x [expr $x+1] } | |
188 | -re " +\[0-9\]+ 0016 7C007580\[^\n\]*\n" { set x [expr $x+1] } | |
189 | -re " +\[0-9\]+ 001a 7E407580\[^\n\]*\n" { set x [expr $x+1] } | |
190 | -re " +\[0-9\]+ 001e 7708\[^\n\]*\n" { set x [expr $x+1] } | |
191 | -re " +\[0-9\]+ 0020 7C007700\[^\n\]*\n" { set x [expr $x+1] } | |
192 | -re " +\[0-9\]+ 0024 7E407700\[^\n\]*\n" { set x [expr $x+1] } | |
193 | timeout { perror "timeout\n; break } | |
194 | eof { break } | |
195 | } | |
196 | } | |
197 | ||
198 | # This was intended to do any cleanup necessary. It kinda looks like it | |
199 | # isn't needed, but just in case, please keep it in for now. | |
200 | gas_finish | |
201 | ||
202 | # Did we find what we were looking for? If not, flunk it. | |
203 | if [expr $x == 12] then { pass $testname } else { fail $testname } | |
204 | } | |
205 | ||
206 | proc do_h8300_bitops3 {} { | |
207 | set testname "bitops3.s: h8300 bitops tests #3" | |
208 | set x 0 | |
209 | ||
210 | gas_start "bitops3.s" "-al" | |
211 | ||
212 | # Check each instruction bit pattern to verify it got | |
213 | # assembled correctly. | |
214 | while 1 { | |
215 | expect { | |
216 | -re " +\[0-9\]+ 0000 7108\[^\n\]*\n" { set x [expr $x+1] } | |
217 | -re " +\[0-9\]+ 0002 7D007100\[^\n\]*\n" { set x [expr $x+1] } | |
218 | -re " +\[0-9\]+ 0006 7F407100\[^\n\]*\n" { set x [expr $x+1] } | |
219 | -re " +\[0-9\]+ 000a 6198\[^\n\]*\n" { set x [expr $x+1] } | |
220 | -re " +\[0-9\]+ 000c 7D006190\[^\n\]*\n" { set x [expr $x+1] } | |
221 | -re " +\[0-9\]+ 0010 7F406190\[^\n\]*\n" { set x [expr $x+1] } | |
222 | -re " +\[0-9\]+ 0014 7008\[^\n\]*\n" { set x [expr $x+1] } | |
223 | -re " +\[0-9\]+ 0016 7D007000\[^\n\]*\n" { set x [expr $x+1] } | |
224 | -re " +\[0-9\]+ 001a 7F407000\[^\n\]*\n" { set x [expr $x+1] } | |
225 | -re " +\[0-9\]+ 001e 6098\[^\n\]*\n" { set x [expr $x+1] } | |
226 | -re " +\[0-9\]+ 0020 7D006090\[^\n\]*\n" { set x [expr $x+1] } | |
227 | -re " +\[0-9\]+ 0024 7F406090\[^\n\]*\n" { set x [expr $x+1] } | |
228 | timeout { perror "timeout\n; break } | |
229 | eof { break } | |
230 | } | |
231 | } | |
232 | ||
233 | # This was intended to do any cleanup necessary. It kinda looks like it | |
234 | # isn't needed, but just in case, please keep it in for now. | |
235 | gas_finish | |
236 | ||
237 | # Did we find what we were looking for? If not, flunk it. | |
238 | if [expr $x == 12] then { pass $testname } else { fail $testname } | |
239 | } | |
240 | ||
241 | proc do_h8300_bitops4 {} { | |
242 | set testname "bitops4.s: h8300 bitops tests #4" | |
243 | set x 0 | |
244 | ||
245 | gas_start "bitops4.s" "-al" | |
246 | ||
247 | # Check each instruction bit pattern to verify it got | |
248 | # assembled correctly. | |
249 | while 1 { | |
250 | expect { | |
251 | -re " +\[0-9\]+ 0000 7408\[^\n\]*\n" { set x [expr $x+1] } | |
252 | -re " +\[0-9\]+ 0002 7C007400\[^\n\]*\n" { set x [expr $x+1] } | |
253 | -re " +\[0-9\]+ 0006 7E407400\[^\n\]*\n" { set x [expr $x+1] } | |
254 | -re " +\[0-9\]+ 000a 6708\[^\n\]*\n" { set x [expr $x+1] } | |
255 | -re " +\[0-9\]+ 000c 7D006700\[^\n\]*\n" { set x [expr $x+1] } | |
256 | -re " +\[0-9\]+ 0010 7F406700\[^\n\]*\n" { set x [expr $x+1] } | |
257 | -re " +\[0-9\]+ 0014 7308\[^\n\]*\n" { set x [expr $x+1] } | |
258 | -re " +\[0-9\]+ 0016 7C007300\[^\n\]*\n" { set x [expr $x+1] } | |
259 | -re " +\[0-9\]+ 001a 7E407300\[^\n\]*\n" { set x [expr $x+1] } | |
260 | -re " +\[0-9\]+ 001e 6398\[^\n\]*\n" { set x [expr $x+1] } | |
261 | -re " +\[0-9\]+ 0020 7C006390\[^\n\]*\n" { set x [expr $x+1] } | |
262 | -re " +\[0-9\]+ 0024 7E406390\[^\n\]*\n" { set x [expr $x+1] } | |
263 | -re " +\[0-9\]+ 0028 7508\[^\n\]*\n" { set x [expr $x+1] } | |
264 | -re " +\[0-9\]+ 002a 7C007500\[^\n\]*\n" { set x [expr $x+1] } | |
265 | -re " +\[0-9\]+ 002e 7E407500\[^\n\]*\n" { set x [expr $x+1] } | |
266 | timeout { perror "timeout\n; break } | |
267 | eof { break } | |
268 | } | |
269 | } | |
270 | ||
271 | # This was intended to do any cleanup necessary. It kinda looks like it | |
272 | # isn't needed, but just in case, please keep it in for now. | |
273 | gas_finish | |
274 | ||
275 | # Did we find what we were looking for? If not, flunk it. | |
276 | if [expr $x == 15] then { pass $testname } else { fail $testname } | |
277 | } | |
278 | ||
279 | proc do_h8300_branch {} { | |
280 | set testname "branch.s: h8300 branch tests" | |
281 | set x 0 | |
282 | ||
283 | gas_start "branch.s" "-al" | |
284 | ||
285 | # Check each instruction bit pattern to verify it got | |
286 | # assembled correctly. | |
287 | while 1 { | |
288 | expect { | |
289 | -re " +\[0-9\]+ 0000 5500\[^\n\]*\n" { set x [expr $x+1] } | |
290 | -re " +\[0-9\]+ 0002 5A000000\[^\n\]*\n" { set x [expr $x+1] } | |
291 | -re " +\[0-9\]+ 0006 5900\[^\n\]*\n" { set x [expr $x+1] } | |
292 | -re " +\[0-9\]+ 0008 5B00\[^\n\]*\n" { set x [expr $x+1] } | |
293 | -re " +\[0-9\]+ 000a 5E000000\[^\n\]*\n" { set x [expr $x+1] } | |
294 | -re " +\[0-9\]+ 000e 5D00\[^\n\]*\n" { set x [expr $x+1] } | |
295 | -re " +\[0-9\]+ 0010 5F00\[^\n\]*\n" { set x [expr $x+1] } | |
296 | timeout { perror "timeout\n; break } | |
297 | eof { break } | |
298 | } | |
299 | } | |
300 | ||
301 | # This was intended to do any cleanup necessary. It kinda looks like it | |
302 | # isn't needed, but just in case, please keep it in for now. | |
303 | gas_finish | |
304 | ||
305 | # Did we find what we were looking for? If not, flunk it. | |
306 | if [expr $x == 7] then { pass $testname } else { fail $testname } | |
307 | } | |
308 | ||
309 | proc do_h8300_compare {} { | |
310 | set testname "compare.s: h8300 compare tests" | |
311 | set x 0 | |
312 | ||
313 | gas_start "compare.s" "-al" | |
314 | ||
315 | # Check each instruction bit pattern to verify it got | |
316 | # assembled correctly. | |
317 | while 1 { | |
318 | expect { | |
319 | -re " +\[0-9\]+ 0000 A800\[^\n\]*\n" { set x [expr $x+1] } | |
320 | -re " +\[0-9\]+ 0002 1C08\[^\n\]*\n" { set x [expr $x+1] } | |
321 | -re " +\[0-9\]+ 0004 1D01\[^\n\]*\n" { set x [expr $x+1] } | |
322 | timeout { perror "timeout\n; break } | |
323 | eof { break } | |
324 | } | |
325 | } | |
326 | ||
327 | # This was intended to do any cleanup necessary. It kinda looks like it | |
328 | # isn't needed, but just in case, please keep it in for now. | |
329 | gas_finish | |
330 | ||
331 | # Did we find what we were looking for? If not, flunk it. | |
332 | if [expr $x == 3] then { pass $testname } else { fail $testname } | |
333 | } | |
334 | ||
335 | proc do_h8300_decimal {} { | |
336 | set testname "decimal.s: h8300 decimal tests" | |
337 | set x 0 | |
338 | ||
339 | gas_start "decimal.s" "-al" | |
340 | ||
341 | # Check each instruction bit pattern to verify it got | |
342 | # assembled correctly. | |
343 | while 1 { | |
344 | expect { | |
345 | -re " +\[0-9\]+ 0000 0F08\[^\n\]*\n" { set x [expr $x+1] } | |
346 | -re " +\[0-9\]+ 0002 1F08\[^\n\]*\n" { set x [expr $x+1] } | |
347 | eof { break } | |
348 | } | |
349 | } | |
350 | ||
351 | # This was intended to do any cleanup necessary. It kinda looks like it | |
352 | # isn't needed, but just in case, please keep it in for now. | |
353 | gas_finish | |
354 | ||
355 | # Did we find what we were looking for? If not, flunk it. | |
356 | if [expr $x == 2] then { pass $testname } else { fail $testname } | |
357 | } | |
358 | ||
359 | proc do_h8300_incdec {} { | |
360 | set testname "incdec.s: h8300 incdec tests" | |
361 | set x 0 | |
362 | ||
363 | gas_start "incdec.s" "-al" | |
364 | ||
365 | # Check each instruction bit pattern to verify it got | |
366 | # assembled correctly. | |
367 | while 1 { | |
368 | expect { | |
369 | -re " +\[0-9\]+ 0000 1A08\[^\n\]*\n" { set x [expr $x+1] } | |
370 | -re " +\[0-9\]+ 0002 0A08\[^\n\]*\n" { set x [expr $x+1] } | |
371 | eof { break } | |
372 | } | |
373 | } | |
374 | ||
375 | # This was intended to do any cleanup necessary. It kinda looks like it | |
376 | # isn't needed, but just in case, please keep it in for now. | |
377 | gas_finish | |
378 | ||
379 | # Did we find what we were looking for? If not, flunk it. | |
380 | if [expr $x == 2] then { pass $testname } else { fail $testname } | |
381 | } | |
382 | ||
383 | proc do_h8300_divmul {} { | |
384 | set testname "divmul.s: h8300 divmul tests" | |
385 | set x 0 | |
386 | ||
387 | gas_start "divmul.s" "-al" | |
388 | ||
389 | # Check each instruction bit pattern to verify it got | |
390 | # assembled correctly. | |
391 | while 1 { | |
392 | expect { | |
393 | -re " +\[0-9\]+ 0000 5181\[^\n\]*\n" { set x [expr $x+1] } | |
394 | -re " +\[0-9\]+ 0002 5081\[^\n\]*\n" { set x [expr $x+1] } | |
395 | eof { break } | |
396 | } | |
397 | } | |
398 | ||
399 | # This was intended to do any cleanup necessary. It kinda looks like it | |
400 | # isn't needed, but just in case, please keep it in for now. | |
401 | gas_finish | |
402 | ||
403 | # Did we find what we were looking for? If not, flunk it. | |
404 | if [expr $x == 2] then { pass $testname } else { fail $testname } | |
405 | } | |
406 | ||
407 | proc do_h8300_misc {} { | |
408 | set testname "misc.s: h8300 misc tests" | |
409 | set x 0 | |
410 | ||
411 | gas_start "misc.s" "-al" | |
412 | ||
413 | # Check each instruction bit pattern to verify it got | |
414 | # assembled correctly. | |
415 | while 1 { | |
416 | expect { | |
417 | -re " +\[0-9\]+ 0000 7B5C598F\[^\n\]*\n" { set x [expr $x+1] } | |
418 | -re " +\[0-9\]+ 0004 0700\[^\n\]*\n" { set x [expr $x+1] } | |
419 | -re " +\[0-9\]+ 0006 0308\[^\n\]*\n" { set x [expr $x+1] } | |
420 | -re " +\[0-9\]+ 0008 0000\[^\n\]*\n" { set x [expr $x+1] } | |
421 | -re " +\[0-9\]+ 000a 5670\[^\n\]*\n" { set x [expr $x+1] } | |
422 | -re " +\[0-9\]+ 000c 5470\[^\n\]*\n" { set x [expr $x+1] } | |
423 | -re " +\[0-9\]+ 000e 0180\[^\n\]*\n" { set x [expr $x+1] } | |
424 | -re " +\[0-9\]+ 0010 0208\[^\n\]*\n" { set x [expr $x+1] } | |
425 | eof { break } | |
426 | } | |
427 | } | |
428 | ||
429 | # This was intended to do any cleanup necessary. It kinda looks like it | |
430 | # isn't needed, but just in case, please keep it in for now. | |
431 | gas_finish | |
432 | ||
433 | # Did we find what we were looking for? If not, flunk it. | |
434 | if [expr $x == 8] then { pass $testname } else { fail $testname } | |
435 | ||
436 | setup_xfail "h8300*-*-*" | |
437 | fail "h8300 movfpe/movtpe tests" | |
438 | } | |
439 | ||
440 | proc do_h8300_movb {} { | |
441 | set testname "movb.s: h8300 movb tests" | |
442 | set x 0 | |
443 | ||
444 | gas_start "movb.s" "-al" | |
445 | ||
446 | # Check each instruction bit pattern to verify it got | |
447 | # assembled correctly. | |
448 | while 1 { | |
449 | expect { | |
450 | -re " +\[0-9\]+ 0000 0C89\[^\n\]*\n" { set x [expr $x+1] } | |
451 | -re " +\[0-9\]+ 0002 F810\[^\n\]*\n" { set x [expr $x+1] } | |
452 | -re " +\[0-9\]+ 0004 6818\[^\n\]*\n" { set x [expr $x+1] } | |
453 | -re " +\[0-9\]+ 0006 6E180010\[^\n\]*\n" { set x [expr $x+1] } | |
454 | -re " +\[0-9\]+ 000a 6C18\[^\n\]*\n" { set x [expr $x+1] } | |
455 | -re " +\[0-9\]+ 000c 2810\[^\n\]*\n" { set x [expr $x+1] } | |
456 | -re " +\[0-9\]+ 000e 6A080000\[^\n\]*\n" { set x [expr $x+1] } | |
457 | -re " +\[0-9\]+ 0012 6898\[^\n\]*\n" { set x [expr $x+1] } | |
458 | -re " +\[0-9\]+ 0014 6E980010\[^\n\]*\n" { set x [expr $x+1] } | |
459 | -re " +\[0-9\]+ 0018 6C98\[^\n\]*\n" { set x [expr $x+1] } | |
460 | -re " +\[0-9\]+ 001a 3810\[^\n\]*\n" { set x [expr $x+1] } | |
461 | -re " +\[0-9\]+ 001c 6A880000\[^\n\]*\n" { set x [expr $x+1] } | |
462 | eof { break } | |
463 | } | |
464 | } | |
465 | ||
466 | # This was intended to do any cleanup necessary. It kinda looks like it | |
467 | # isn't needed, but just in case, please keep it in for now. | |
468 | gas_finish | |
469 | ||
470 | # Did we find what we were looking for? If not, flunk it. | |
471 | if [expr $x == 12] then { pass $testname } else { fail $testname } | |
472 | } | |
473 | ||
474 | proc do_h8300_movw {} { | |
475 | set testname "movw.s: h8300 movw tests" | |
476 | set x 0 | |
477 | ||
478 | gas_start "movw.s" "-al" | |
479 | ||
480 | # Check each instruction bit pattern to verify it got | |
481 | # assembled correctly. | |
482 | while 1 { | |
483 | expect { | |
484 | -re " +\[0-9\]+ 0000 0D01\[^\n\]*\n" { set x [expr $x+1] } | |
485 | -re " +\[0-9\]+ 0002 79000010\[^\n\]*\n" { set x [expr $x+1] } | |
486 | -re " +\[0-9\]+ 0006 6910\[^\n\]*\n" { set x [expr $x+1] } | |
487 | -re " +\[0-9\]+ 0008 6F100010\[^\n\]*\n" { set x [expr $x+1] } | |
488 | -re " +\[0-9\]+ 000c 6D10\[^\n\]*\n" { set x [expr $x+1] } | |
489 | -re " +\[0-9\]+ 000e 6B000000\[^\n\]*\n" { set x [expr $x+1] } | |
490 | -re " +\[0-9\]+ 0012 6990\[^\n\]*\n" { set x [expr $x+1] } | |
491 | -re " +\[0-9\]+ 0014 6F900010\[^\n\]*\n" { set x [expr $x+1] } | |
492 | -re " +\[0-9\]+ 0018 6D90\[^\n\]*\n" { set x [expr $x+1] } | |
493 | -re " +\[0-9\]+ 001a 6B800000\[^\n\]*\n" { set x [expr $x+1] } | |
494 | eof { break } | |
495 | } | |
496 | } | |
497 | ||
498 | # This was intended to do any cleanup necessary. It kinda looks like it | |
499 | # isn't needed, but just in case, please keep it in for now. | |
500 | gas_finish | |
501 | ||
502 | # Did we find what we were looking for? If not, flunk it. | |
503 | if [expr $x == 10] then { pass $testname } else { fail $testname } | |
504 | } | |
505 | ||
506 | proc do_h8300_pushpop {} { | |
507 | set testname "pushpop.s: h8300 pushpop tests" | |
508 | set x 0 | |
509 | ||
510 | gas_start "pushpop.s" "-al" | |
511 | ||
512 | # Check each instruction bit pattern to verify it got | |
513 | # assembled correctly. | |
514 | while 1 { | |
515 | expect { | |
516 | -re " +\[0-9\]+ 0000 6D70\[^\n\]*\n" { set x [expr $x+1] } | |
517 | -re " +\[0-9\]+ 0002 6DF0\[^\n\]*\n" { set x [expr $x+1] } | |
518 | eof { break } | |
519 | } | |
520 | } | |
521 | ||
522 | # This was intended to do any cleanup necessary. It kinda looks like it | |
523 | # isn't needed, but just in case, please keep it in for now. | |
524 | gas_finish | |
525 | ||
526 | # Did we find what we were looking for? If not, flunk it. | |
527 | if [expr $x == 2] then { pass $testname } else { fail $testname } | |
528 | } | |
529 | ||
530 | proc do_h8300_rotate_shift {} { | |
531 | set testname "rotsh.s: h8300 rotate and shift tests" | |
532 | set x 0 | |
533 | ||
534 | gas_start "rotsh.s" "-al" | |
535 | ||
536 | # Check each instruction bit pattern to verify it got | |
537 | # assembled correctly. | |
538 | while 1 { | |
539 | expect { | |
540 | -re " +\[0-9\]+ 0000 1288\[^\n\]*\n" { set x [expr $x+1] } | |
541 | -re " +\[0-9\]+ 0002 1388\[^\n\]*\n" { set x [expr $x+1] } | |
542 | -re " +\[0-9\]+ 0004 1208\[^\n\]*\n" { set x [expr $x+1] } | |
543 | -re " +\[0-9\]+ 0006 1308\[^\n\]*\n" { set x [expr $x+1] } | |
544 | -re " +\[0-9\]+ 0008 1088\[^\n\]*\n" { set x [expr $x+1] } | |
545 | -re " +\[0-9\]+ 000a 1188\[^\n\]*\n" { set x [expr $x+1] } | |
546 | -re " +\[0-9\]+ 000c 1008\[^\n\]*\n" { set x [expr $x+1] } | |
547 | -re " +\[0-9\]+ 000e 1108\[^\n\]*\n" { set x [expr $x+1] } | |
548 | eof { break } | |
549 | } | |
550 | } | |
551 | ||
552 | # This was intended to do any cleanup necessary. It kinda looks like it | |
553 | # isn't needed, but just in case, please keep it in for now. | |
554 | gas_finish | |
555 | ||
556 | # Did we find what we were looking for? If not, flunk it. | |
557 | if [expr $x == 8] then { pass $testname } else { fail $testname } | |
558 | } | |
559 | ||
560 | proc do_h8300h_add_sub {} { | |
561 | set testname "addsubh.s: h8300h add/sub tests" | |
562 | set x 0 | |
563 | ||
564 | gas_start "addsubh.s" "-al" | |
565 | ||
566 | # Check each instruction bit pattern to verify it got | |
567 | # assembled correctly. | |
568 | while 1 { | |
569 | expect { | |
570 | -re " +\[0-9\]+ 0000 8910\[^\n\]*\n" { set x [expr $x+1] } | |
571 | -re " +\[0-9\]+ 0002 0819\[^\n\]*\n" { set x [expr $x+1] } | |
572 | -re " +\[0-9\]+ 0004 79110020\[^\n\]*\n" { set x [expr $x+1] } | |
573 | -re " +\[0-9\]+ 0008 0912\[^\n\]*\n" { set x [expr $x+1] } | |
574 | -re " +\[0-9\]+ 000a 7A110000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
575 | -re " +\[0-9\]+ 0010 0A92\[^\n\]*\n" { set x [expr $x+1] } | |
576 | -re " +\[0-9\]+ 0012 0B04\[^\n\]*\n" { set x [expr $x+1] } | |
577 | -re " +\[0-9\]+ 0014 0B85\[^\n\]*\n" { set x [expr $x+1] } | |
578 | -re " +\[0-9\]+ 0016 0B96\[^\n\]*\n" { set x [expr $x+1] } | |
579 | -re " +\[0-9\]+ 0018 0E89\[^\n\]*\n" { set x [expr $x+1] } | |
580 | -re " +\[0-9\]+ 001a 9210\[^\n\]*\n" { set x [expr $x+1] } | |
581 | -re " +\[0-9\]+ 001c 1889\[^\n\]*\n" { set x [expr $x+1] } | |
582 | -re " +\[0-9\]+ 001e 79310010\[^\n\]*\n" { set x [expr $x+1] } | |
583 | -re " +\[0-9\]+ 0022 1901\[^\n\]*\n" { set x [expr $x+1] } | |
584 | -re " +\[0-9\]+ 0024 7A310000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
585 | -re " +\[0-9\]+ 002a 1A92\[^\n\]*\n" { set x [expr $x+1] } | |
586 | -re " +\[0-9\]+ 002c 1B04\[^\n\]*\n" { set x [expr $x+1] } | |
587 | -re " +\[0-9\]+ 002e 1B85\[^\n\]*\n" { set x [expr $x+1] } | |
588 | -re " +\[0-9\]+ 0030 1B96\[^\n\]*\n" { set x [expr $x+1] } | |
589 | -re " +\[0-9\]+ 0032 1E89\[^\n\]*\n" { set x [expr $x+1] } | |
590 | -re " +\[0-9\]+ 0034 B210\[^\n\]*\n" { set x [expr $x+1] } | |
591 | timeout { perror "timeout\n; break } | |
592 | eof { break } | |
593 | } | |
594 | } | |
595 | ||
596 | # This was intended to do any cleanup necessary. It kinda looks like it | |
597 | # isn't needed, but just in case, please keep it in for now. | |
598 | gas_finish | |
599 | ||
600 | # Did we find what we were looking for? If not, flunk it. | |
601 | if [expr $x == 21] then { pass $testname } else { fail $testname } | |
602 | } | |
603 | ||
604 | proc do_h8300h_logical {} { | |
605 | set testname "logicalh.s: h8300h logical tests" | |
606 | set x 0 | |
607 | ||
608 | gas_start "logicalh.s" "-al" | |
609 | ||
610 | # Check each instruction bit pattern to verify it got | |
611 | # assembled correctly. | |
612 | while 1 { | |
613 | expect { | |
614 | -re " +\[0-9\]+ 0000 E910\[^\n\]*\n" { set x [expr $x+1] } | |
615 | -re " +\[0-9\]+ 0002 1691\[^\n\]*\n" { set x [expr $x+1] } | |
616 | -re " +\[0-9\]+ 0004 79610020\[^\n\]*\n" { set x [expr $x+1] } | |
617 | -re " +\[0-9\]+ 0008 6611\[^\n\]*\n" { set x [expr $x+1] } | |
618 | -re " +\[0-9\]+ 000a 7A610000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
619 | -re " +\[0-9\]+ 0010 01F06611\[^\n\]*\n" { set x [expr $x+1] } | |
620 | -re " +\[0-9\]+ 0014 0610\[^\n\]*\n" { set x [expr $x+1] } | |
621 | -re " +\[0-9\]+ 0016 C810\[^\n\]*\n" { set x [expr $x+1] } | |
622 | -re " +\[0-9\]+ 0018 1498\[^\n\]*\n" { set x [expr $x+1] } | |
623 | -re " +\[0-9\]+ 001a 79410020\[^\n\]*\n" { set x [expr $x+1] } | |
624 | -re " +\[0-9\]+ 001e 6411\[^\n\]*\n" { set x [expr $x+1] } | |
625 | -re " +\[0-9\]+ 0020 7A410000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
626 | -re " +\[0-9\]+ 0026 01F06411\[^\n\]*\n" { set x [expr $x+1] } | |
627 | -re " +\[0-9\]+ 002a 0410\[^\n\]*\n" { set x [expr $x+1] } | |
628 | -re " +\[0-9\]+ 002c D810\[^\n\]*\n" { set x [expr $x+1] } | |
629 | -re " +\[0-9\]+ 002e 1589\[^\n\]*\n" { set x [expr $x+1] } | |
630 | -re " +\[0-9\]+ 0030 79510020\[^\n\]*\n" { set x [expr $x+1] } | |
631 | -re " +\[0-9\]+ 0034 6511\[^\n\]*\n" { set x [expr $x+1] } | |
632 | -re " +\[0-9\]+ 0036 7A510000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
633 | -re " +\[0-9\]+ 003c 01F06511\[^\n\]*\n" { set x [expr $x+1] } | |
634 | -re " +\[0-9\]+ 0040 0510\[^\n\]*\n" { set x [expr $x+1] } | |
635 | -re " +\[0-9\]+ 0042 1788\[^\n\]*\n" { set x [expr $x+1] } | |
636 | -re " +\[0-9\]+ 0044 1790\[^\n\]*\n" { set x [expr $x+1] } | |
637 | -re " +\[0-9\]+ 0046 17B0\[^\n\]*\n" { set x [expr $x+1] } | |
638 | -re " +\[0-9\]+ 0048 1708\[^\n\]*\n" { set x [expr $x+1] } | |
639 | -re " +\[0-9\]+ 004a 1710\[^\n\]*\n" { set x [expr $x+1] } | |
640 | -re " +\[0-9\]+ 004c 1730\[^\n\]*\n" { set x [expr $x+1] } | |
641 | timeout { perror "timeout\n; break } | |
642 | eof { break } | |
643 | } | |
644 | } | |
645 | ||
646 | # This was intended to do any cleanup necessary. It kinda looks like it | |
647 | # isn't needed, but just in case, please keep it in for now. | |
648 | gas_finish | |
649 | ||
650 | # Did we find what we were looking for? If not, flunk it. | |
651 | if [expr $x == 27] then { pass $testname } else { fail $testname } | |
652 | } | |
653 | ||
654 | proc do_h8300h_cbranch {} { | |
655 | set testname "cbranchh.s: h8300h conditional branch tests" | |
656 | set x 0 | |
657 | ||
658 | gas_start "cbranchh.s" "-al" | |
659 | ||
660 | # Check each instruction bit pattern to verify it got | |
661 | # assembled correctly. | |
662 | while 1 { | |
663 | expect { | |
664 | -re " +\[0-9\]+ 0000 4000\[^\n\]*\n" { set x [expr $x+1] } | |
665 | -re " +\[0-9\]+ 0002 4000\[^\n\]*\n" { set x [expr $x+1] } | |
666 | -re " +\[0-9\]+ 0004 4100\[^\n\]*\n" { set x [expr $x+1] } | |
667 | -re " +\[0-9\]+ 0006 4100\[^\n\]*\n" { set x [expr $x+1] } | |
668 | -re " +\[0-9\]+ 0008 4200\[^\n\]*\n" { set x [expr $x+1] } | |
669 | -re " +\[0-9\]+ 000a 4300\[^\n\]*\n" { set x [expr $x+1] } | |
670 | -re " +\[0-9\]+ 000c 4400\[^\n\]*\n" { set x [expr $x+1] } | |
671 | -re " +\[0-9\]+ 000e 4400\[^\n\]*\n" { set x [expr $x+1] } | |
672 | -re " +\[0-9\]+ 0010 4500\[^\n\]*\n" { set x [expr $x+1] } | |
673 | -re " +\[0-9\]+ 0012 4500\[^\n\]*\n" { set x [expr $x+1] } | |
674 | -re " +\[0-9\]+ 0014 4600\[^\n\]*\n" { set x [expr $x+1] } | |
675 | -re " +\[0-9\]+ 0016 4700\[^\n\]*\n" { set x [expr $x+1] } | |
676 | -re " +\[0-9\]+ 0018 4800\[^\n\]*\n" { set x [expr $x+1] } | |
677 | -re " +\[0-9\]+ 001a 4900\[^\n\]*\n" { set x [expr $x+1] } | |
678 | -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n" { set x [expr $x+1] } | |
679 | -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n" { set x [expr $x+1] } | |
680 | -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n" { set x [expr $x+1] } | |
681 | -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n" { set x [expr $x+1] } | |
682 | -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n" { set x [expr $x+1] } | |
683 | -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n" { set x [expr $x+1] } | |
684 | -re " +\[0-9\]+ 0028 58000000\[^\n\]*\n" { set x [expr $x+1] } | |
685 | -re " +\[0-9\]+ 002c 58000000\[^\n\]*\n" { set x [expr $x+1] } | |
686 | -re " +\[0-9\]+ 0030 58100000\[^\n\]*\n" { set x [expr $x+1] } | |
687 | -re " +\[0-9\]+ 0034 58100000\[^\n\]*\n" { set x [expr $x+1] } | |
688 | -re " +\[0-9\]+ 0038 58200000\[^\n\]*\n" { set x [expr $x+1] } | |
689 | -re " +\[0-9\]+ 003c 58300000\[^\n\]*\n" { set x [expr $x+1] } | |
690 | -re " +\[0-9\]+ 0040 58400000\[^\n\]*\n" { set x [expr $x+1] } | |
691 | -re " +\[0-9\]+ 0044 58400000\[^\n\]*\n" { set x [expr $x+1] } | |
692 | -re " +\[0-9\]+ 0048 58500000\[^\n\]*\n" { set x [expr $x+1] } | |
693 | -re " +\[0-9\]+ 004c 58500000\[^\n\]*\n" { set x [expr $x+1] } | |
694 | -re " +\[0-9\]+ 0050 58600000\[^\n\]*\n" { set x [expr $x+1] } | |
695 | -re " +\[0-9\]+ 0054 58700000\[^\n\]*\n" { set x [expr $x+1] } | |
696 | -re " +\[0-9\]+ 0058 58800000\[^\n\]*\n" { set x [expr $x+1] } | |
697 | -re " +\[0-9\]+ 005c 58900000\[^\n\]*\n" { set x [expr $x+1] } | |
698 | -re " +\[0-9\]+ 0060 58A00000\[^\n\]*\n" { set x [expr $x+1] } | |
699 | -re " +\[0-9\]+ 0064 58B00000\[^\n\]*\n" { set x [expr $x+1] } | |
700 | -re " +\[0-9\]+ 0068 58C00000\[^\n\]*\n" { set x [expr $x+1] } | |
701 | -re " +\[0-9\]+ 006c 58D00000\[^\n\]*\n" { set x [expr $x+1] } | |
702 | -re " +\[0-9\]+ 0070 58E00000\[^\n\]*\n" { set x [expr $x+1] } | |
703 | -re " +\[0-9\]+ 0074 58F00000\[^\n\]*\n" { set x [expr $x+1] } | |
704 | timeout { perror "timeout\n; break } | |
705 | eof { break } | |
706 | } | |
707 | } | |
708 | ||
709 | # This was intended to do any cleanup necessary. It kinda looks like it | |
710 | # isn't needed, but just in case, please keep it in for now. | |
711 | gas_finish | |
712 | ||
713 | # Did we find what we were looking for? If not, flunk it. | |
714 | if [expr $x == 40] then { pass $testname } else { fail $testname } | |
715 | } | |
716 | proc do_h8300h_bitops1 {} { | |
717 | set testname "bitops1h.s: h8300h bitops tests #1" | |
718 | set x 0 | |
719 | ||
720 | gas_start "bitops1h.s" "-al" | |
721 | ||
722 | # Check each instruction bit pattern to verify it got | |
723 | # assembled correctly. | |
724 | while 1 { | |
725 | expect { | |
726 | -re " +\[0-9\]+ 0000 7608\[^\n\]*\n" { set x [expr $x+1] } | |
727 | -re " +\[0-9\]+ 0002 7C007600\[^\n\]*\n" { set x [expr $x+1] } | |
728 | -re " +\[0-9\]+ 0006 7E407600\[^\n\]*\n" { set x [expr $x+1] } | |
729 | -re " +\[0-9\]+ 000a 7208\[^\n\]*\n" { set x [expr $x+1] } | |
730 | -re " +\[0-9\]+ 000c 7D007200\[^\n\]*\n" { set x [expr $x+1] } | |
731 | -re " +\[0-9\]+ 0010 7F407200\[^\n\]*\n" { set x [expr $x+1] } | |
732 | -re " +\[0-9\]+ 0014 6298\[^\n\]*\n" { set x [expr $x+1] } | |
733 | -re " +\[0-9\]+ 0016 7D006290\[^\n\]*\n" { set x [expr $x+1] } | |
734 | -re " +\[0-9\]+ 001a 7F406290\[^\n\]*\n" { set x [expr $x+1] } | |
735 | -re " +\[0-9\]+ 001e 7688\[^\n\]*\n" { set x [expr $x+1] } | |
736 | -re " +\[0-9\]+ 0020 7C007680\[^\n\]*\n" { set x [expr $x+1] } | |
737 | -re " +\[0-9\]+ 0024 7E407680\[^\n\]*\n" { set x [expr $x+1] } | |
738 | -re " +\[0-9\]+ 0028 7788\[^\n\]*\n" { set x [expr $x+1] } | |
739 | -re " +\[0-9\]+ 002a 7C007780\[^\n\]*\n" { set x [expr $x+1] } | |
740 | -re " +\[0-9\]+ 002e 7E407780\[^\n\]*\n" { set x [expr $x+1] } | |
741 | timeout { perror "timeout\n; break } | |
742 | eof { break } | |
743 | } | |
744 | } | |
745 | ||
746 | # This was intended to do any cleanup necessary. It kinda looks like it | |
747 | # isn't needed, but just in case, please keep it in for now. | |
748 | gas_finish | |
749 | ||
750 | # Did we find what we were looking for? If not, flunk it. | |
751 | if [expr $x == 15] then { pass $testname } else { fail $testname } | |
752 | } | |
753 | ||
754 | proc do_h8300h_bitops2 {} { | |
755 | set testname "bitops2h.s: h8300h bitops tests #2" | |
756 | set x 0 | |
757 | ||
758 | gas_start "bitops2h.s" "-al" | |
759 | ||
760 | # Check each instruction bit pattern to verify it got | |
761 | # assembled correctly. | |
762 | while 1 { | |
763 | expect { | |
764 | -re " +\[0-9\]+ 0000 7488\[^\n\]*\n" { set x [expr $x+1] } | |
765 | -re " +\[0-9\]+ 0002 7C007480\[^\n\]*\n" { set x [expr $x+1] } | |
766 | -re " +\[0-9\]+ 0006 7E407480\[^\n\]*\n" { set x [expr $x+1] } | |
767 | -re " +\[0-9\]+ 000a 6788\[^\n\]*\n" { set x [expr $x+1] } | |
768 | -re " +\[0-9\]+ 000c 7D006780\[^\n\]*\n" { set x [expr $x+1] } | |
769 | -re " +\[0-9\]+ 0010 7F406780\[^\n\]*\n" { set x [expr $x+1] } | |
770 | -re " +\[0-9\]+ 0014 7588\[^\n\]*\n" { set x [expr $x+1] } | |
771 | -re " +\[0-9\]+ 0016 7C007580\[^\n\]*\n" { set x [expr $x+1] } | |
772 | -re " +\[0-9\]+ 001a 7E407580\[^\n\]*\n" { set x [expr $x+1] } | |
773 | -re " +\[0-9\]+ 001e 7708\[^\n\]*\n" { set x [expr $x+1] } | |
774 | -re " +\[0-9\]+ 0020 7C007700\[^\n\]*\n" { set x [expr $x+1] } | |
775 | -re " +\[0-9\]+ 0024 7E407700\[^\n\]*\n" { set x [expr $x+1] } | |
776 | timeout { perror "timeout\n; break } | |
777 | eof { break } | |
778 | } | |
779 | } | |
780 | ||
781 | # This was intended to do any cleanup necessary. It kinda looks like it | |
782 | # isn't needed, but just in case, please keep it in for now. | |
783 | gas_finish | |
784 | ||
785 | # Did we find what we were looking for? If not, flunk it. | |
786 | if [expr $x == 12] then { pass $testname } else { fail $testname } | |
787 | } | |
788 | ||
789 | proc do_h8300h_bitops3 {} { | |
790 | set testname "bitops3h.s: h8300h bitops tests #3" | |
791 | set x 0 | |
792 | ||
793 | gas_start "bitops3h.s" "-al" | |
794 | ||
795 | # Check each instruction bit pattern to verify it got | |
796 | # assembled correctly. | |
797 | while 1 { | |
798 | expect { | |
799 | -re " +\[0-9\]+ 0000 7108\[^\n\]*\n" { set x [expr $x+1] } | |
800 | -re " +\[0-9\]+ 0002 7D007100\[^\n\]*\n" { set x [expr $x+1] } | |
801 | -re " +\[0-9\]+ 0006 7F407100\[^\n\]*\n" { set x [expr $x+1] } | |
802 | -re " +\[0-9\]+ 000a 6198\[^\n\]*\n" { set x [expr $x+1] } | |
803 | -re " +\[0-9\]+ 000c 7D006190\[^\n\]*\n" { set x [expr $x+1] } | |
804 | -re " +\[0-9\]+ 0010 7F406190\[^\n\]*\n" { set x [expr $x+1] } | |
805 | -re " +\[0-9\]+ 0014 7008\[^\n\]*\n" { set x [expr $x+1] } | |
806 | -re " +\[0-9\]+ 0016 7D007000\[^\n\]*\n" { set x [expr $x+1] } | |
807 | -re " +\[0-9\]+ 001a 7F407000\[^\n\]*\n" { set x [expr $x+1] } | |
808 | -re " +\[0-9\]+ 001e 6098\[^\n\]*\n" { set x [expr $x+1] } | |
809 | -re " +\[0-9\]+ 0020 7D006090\[^\n\]*\n" { set x [expr $x+1] } | |
810 | -re " +\[0-9\]+ 0024 7F406090\[^\n\]*\n" { set x [expr $x+1] } | |
811 | timeout { perror "timeout\n; break } | |
812 | eof { break } | |
813 | } | |
814 | } | |
815 | ||
816 | # This was intended to do any cleanup necessary. It kinda looks like it | |
817 | # isn't needed, but just in case, please keep it in for now. | |
818 | gas_finish | |
819 | ||
820 | # Did we find what we were looking for? If not, flunk it. | |
821 | if [expr $x == 12] then { pass $testname } else { fail $testname } | |
822 | } | |
823 | ||
824 | proc do_h8300h_bitops4 {} { | |
825 | set testname "bitops4h.s: h8300h bitops tests #4" | |
826 | set x 0 | |
827 | ||
828 | gas_start "bitops4h.s" "-al" | |
829 | ||
830 | # Check each instruction bit pattern to verify it got | |
831 | # assembled correctly. | |
832 | while 1 { | |
833 | expect { | |
834 | -re " +\[0-9\]+ 0000 7408\[^\n\]*\n" { set x [expr $x+1] } | |
835 | -re " +\[0-9\]+ 0002 7C007400\[^\n\]*\n" { set x [expr $x+1] } | |
836 | -re " +\[0-9\]+ 0006 7E407400\[^\n\]*\n" { set x [expr $x+1] } | |
837 | -re " +\[0-9\]+ 000a 6708\[^\n\]*\n" { set x [expr $x+1] } | |
838 | -re " +\[0-9\]+ 000c 7D006700\[^\n\]*\n" { set x [expr $x+1] } | |
839 | -re " +\[0-9\]+ 0010 7F406700\[^\n\]*\n" { set x [expr $x+1] } | |
840 | -re " +\[0-9\]+ 0014 7308\[^\n\]*\n" { set x [expr $x+1] } | |
841 | -re " +\[0-9\]+ 0016 7C007300\[^\n\]*\n" { set x [expr $x+1] } | |
842 | -re " +\[0-9\]+ 001a 7E407300\[^\n\]*\n" { set x [expr $x+1] } | |
843 | -re " +\[0-9\]+ 001e 6398\[^\n\]*\n" { set x [expr $x+1] } | |
844 | -re " +\[0-9\]+ 0020 7C006390\[^\n\]*\n" { set x [expr $x+1] } | |
845 | -re " +\[0-9\]+ 0024 7E406390\[^\n\]*\n" { set x [expr $x+1] } | |
846 | -re " +\[0-9\]+ 0028 7508\[^\n\]*\n" { set x [expr $x+1] } | |
847 | -re " +\[0-9\]+ 002a 7C007500\[^\n\]*\n" { set x [expr $x+1] } | |
848 | -re " +\[0-9\]+ 002e 7E407500\[^\n\]*\n" { set x [expr $x+1] } | |
849 | timeout { perror "timeout\n; break } | |
850 | eof { break } | |
851 | } | |
852 | } | |
853 | ||
854 | # This was intended to do any cleanup necessary. It kinda looks like it | |
855 | # isn't needed, but just in case, please keep it in for now. | |
856 | gas_finish | |
857 | ||
858 | # Did we find what we were looking for? If not, flunk it. | |
859 | if [expr $x == 15] then { pass $testname } else { fail $testname } | |
860 | } | |
861 | ||
862 | proc do_h8300h_branch {} { | |
863 | set testname "branchh.s: h8300h branch tests" | |
864 | set x 0 | |
865 | ||
866 | gas_start "branchh.s" "-al" | |
867 | ||
868 | # Check each instruction bit pattern to verify it got | |
869 | # assembled correctly. | |
870 | while 1 { | |
871 | expect { | |
872 | -re " +\[0-9\]+ 0000 5500\[^\n\]*\n" { set x [expr $x+1] } | |
873 | -re " +\[0-9\]+ 0002 5C000000\[^\n\]*\n" { set x [expr $x+1] } | |
874 | -re " +\[0-9\]+ 0006 5A000000\[^\n\]*\n" { set x [expr $x+1] } | |
875 | -re " +\[0-9\]+ 000a 5900\[^\n\]*\n" { set x [expr $x+1] } | |
876 | -re " +\[0-9\]+ 000c 5B00\[^\n\]*\n" { set x [expr $x+1] } | |
877 | -re " +\[0-9\]+ 000e 5E000000\[^\n\]*\n" { set x [expr $x+1] } | |
878 | -re " +\[0-9\]+ 0012 5D00\[^\n\]*\n" { set x [expr $x+1] } | |
879 | -re " +\[0-9\]+ 0014 5F00\[^\n\]*\n" { set x [expr $x+1] } | |
880 | timeout { perror "timeout\n; break } | |
881 | eof { break } | |
882 | } | |
883 | } | |
884 | ||
885 | # This was intended to do any cleanup necessary. It kinda looks like it | |
886 | # isn't needed, but just in case, please keep it in for now. | |
887 | gas_finish | |
888 | ||
889 | # Did we find what we were looking for? If not, flunk it. | |
890 | if [expr $x == 8] then { pass $testname } else { fail $testname } | |
891 | } | |
892 | ||
893 | proc do_h8300h_compare {} { | |
894 | set testname "compareh.s: h8300h compare tests" | |
895 | set x 0 | |
896 | ||
897 | gas_start "compareh.s" "-al" | |
898 | ||
899 | # Check each instruction bit pattern to verify it got | |
900 | # assembled correctly. | |
901 | while 1 { | |
902 | expect { | |
903 | -re " +\[0-9\]+ 0000 A800\[^\n\]*\n" { set x [expr $x+1] } | |
904 | -re " +\[0-9\]+ 0002 1C08\[^\n\]*\n" { set x [expr $x+1] } | |
905 | -re " +\[0-9\]+ 0004 79200020\[^\n\]*\n" { set x [expr $x+1] } | |
906 | -re " +\[0-9\]+ 0008 1D01\[^\n\]*\n" { set x [expr $x+1] } | |
907 | -re " +\[0-9\]+ 000a 7A200000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
908 | -re " +\[0-9\]+ 0010 1F81\[^\n\]*\n" { set x [expr $x+1] } | |
909 | timeout { perror "timeout\n; break } | |
910 | eof { break } | |
911 | } | |
912 | } | |
913 | ||
914 | # This was intended to do any cleanup necessary. It kinda looks like it | |
915 | # isn't needed, but just in case, please keep it in for now. | |
916 | gas_finish | |
917 | ||
918 | # Did we find what we were looking for? If not, flunk it. | |
919 | if [expr $x == 6] then { pass $testname } else { fail $testname } | |
920 | } | |
921 | ||
922 | proc do_h8300h_decimal {} { | |
923 | set testname "decimalh.s: h8300h decimal tests" | |
924 | set x 0 | |
925 | ||
926 | gas_start "decimalh.s" "-al" | |
927 | ||
928 | # Check each instruction bit pattern to verify it got | |
929 | # assembled correctly. | |
930 | while 1 { | |
931 | expect { | |
932 | -re " +\[0-9\]+ 0000 0F08\[^\n\]*\n" { set x [expr $x+1] } | |
933 | -re " +\[0-9\]+ 0002 1F08\[^\n\]*\n" { set x [expr $x+1] } | |
934 | eof { break } | |
935 | } | |
936 | } | |
937 | ||
938 | # This was intended to do any cleanup necessary. It kinda looks like it | |
939 | # isn't needed, but just in case, please keep it in for now. | |
940 | gas_finish | |
941 | ||
942 | # Did we find what we were looking for? If not, flunk it. | |
943 | if [expr $x == 2] then { pass $testname } else { fail $testname } | |
944 | } | |
945 | ||
946 | proc do_h8300h_incdec {} { | |
947 | set testname "incdech.s: h8300h incdec tests" | |
948 | set x 0 | |
949 | ||
950 | gas_start "incdech.s" "-al" | |
951 | ||
952 | # Check each instruction bit pattern to verify it got | |
953 | # assembled correctly. | |
954 | while 1 { | |
955 | expect { | |
956 | -re " +\[0-9\]+ 0000 1A08\[^\n\]*\n" { set x [expr $x+1] } | |
957 | -re " +\[0-9\]+ 0002 1B50\[^\n\]*\n" { set x [expr $x+1] } | |
958 | -re " +\[0-9\]+ 0004 1BD0\[^\n\]*\n" { set x [expr $x+1] } | |
959 | -re " +\[0-9\]+ 0006 1B70\[^\n\]*\n" { set x [expr $x+1] } | |
960 | -re " +\[0-9\]+ 0008 1BF0\[^\n\]*\n" { set x [expr $x+1] } | |
961 | -re " +\[0-9\]+ 000a 0A08\[^\n\]*\n" { set x [expr $x+1] } | |
962 | -re " +\[0-9\]+ 000c 0B50\[^\n\]*\n" { set x [expr $x+1] } | |
963 | -re " +\[0-9\]+ 000e 0BD0\[^\n\]*\n" { set x [expr $x+1] } | |
964 | -re " +\[0-9\]+ 0010 0B70\[^\n\]*\n" { set x [expr $x+1] } | |
965 | -re " +\[0-9\]+ 0012 0BF0\[^\n\]*\n" { set x [expr $x+1] } | |
966 | eof { break } | |
967 | } | |
968 | } | |
969 | ||
970 | # This was intended to do any cleanup necessary. It kinda looks like it | |
971 | # isn't needed, but just in case, please keep it in for now. | |
972 | gas_finish | |
973 | ||
974 | # Did we find what we were looking for? If not, flunk it. | |
975 | if [expr $x == 10] then { pass $testname } else { fail $testname } | |
976 | } | |
977 | ||
978 | proc do_h8300h_divmul {} { | |
979 | set testname "divmulh.s: h8300h divmul tests" | |
980 | set x 0 | |
981 | ||
982 | gas_start "divmulh.s" "-al" | |
983 | ||
984 | # Check each instruction bit pattern to verify it got | |
985 | # assembled correctly. | |
986 | while 1 { | |
987 | expect { | |
988 | -re " +\[0-9\]+ 0000 5181\[^\n\]*\n" { set x [expr $x+1] } | |
989 | -re " +\[0-9\]+ 0002 5301\[^\n\]*\n" { set x [expr $x+1] } | |
990 | -re " +\[0-9\]+ 0004 01D05181\[^\n\]*\n" { set x [expr $x+1] } | |
991 | -re " +\[0-9\]+ 0008 01D05301\[^\n\]*\n" { set x [expr $x+1] } | |
992 | -re " +\[0-9\]+ 000c 5081\[^\n\]*\n" { set x [expr $x+1] } | |
993 | -re " +\[0-9\]+ 000e 5201\[^\n\]*\n" { set x [expr $x+1] } | |
994 | -re " +\[0-9\]+ 0010 01C05081\[^\n\]*\n" { set x [expr $x+1] } | |
995 | -re " +\[0-9\]+ 0014 01C05201\[^\n\]*\n" { set x [expr $x+1] } | |
996 | eof { break } | |
997 | } | |
998 | } | |
999 | ||
1000 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1001 | # isn't needed, but just in case, please keep it in for now. | |
1002 | gas_finish | |
1003 | ||
1004 | # Did we find what we were looking for? If not, flunk it. | |
1005 | if [expr $x == 8] then { pass $testname } else { fail $testname } | |
1006 | } | |
1007 | ||
1008 | proc do_h8300h_misc {} { | |
1009 | set testname "misch.s: h8300h misc tests" | |
1010 | set x 0 | |
1011 | ||
1012 | gas_start "misch.s" "-al" | |
1013 | ||
1014 | # Check each instruction bit pattern to verify it got | |
1015 | # assembled correctly. | |
1016 | while 1 { | |
1017 | expect { | |
1018 | -re " +\[0-9\]+ 0000 7B5C598F\[^\n\]*\n" { set x [expr $x+1] } | |
1019 | -re " +\[0-9\]+ 0004 7BD4598F\[^\n\]*\n" { set x [expr $x+1] } | |
1020 | -re " +\[0-9\]+ 0008 0700\[^\n\]*\n" { set x [expr $x+1] } | |
1021 | -re " +\[0-9\]+ 000a 0308\[^\n\]*\n" { set x [expr $x+1] } | |
1022 | -re " +\[0-9\]+ 000c 01406900\[^\n\]*\n" { set x [expr $x+1] } | |
1023 | -re " +\[0-9\]+ 0010 01406F00\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } | |
1024 | -re " +\[0-9\]+ 0016 01407800\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } | |
1025 | -re " +\[0-9\]+ 0020 01406D00\[^\n\]*\n" { set x [expr $x+1] } | |
1026 | -re " +\[0-9\]+ 0024 01406B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1027 | -re " +\[0-9\]+ 002a 01406B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } | |
1028 | -re " +\[0-9\]+ 0032 0000\[^\n\]*\n" { set x [expr $x+1] } | |
1029 | -re " +\[0-9\]+ 0034 5670\[^\n\]*\n" { set x [expr $x+1] } | |
1030 | -re " +\[0-9\]+ 0036 5470\[^\n\]*\n" { set x [expr $x+1] } | |
1031 | -re " +\[0-9\]+ 0038 0180\[^\n\]*\n" { set x [expr $x+1] } | |
1032 | -re " +\[0-9\]+ 003a 0208\[^\n\]*\n" { set x [expr $x+1] } | |
1033 | -re " +\[0-9\]+ 003c 01406980\[^\n\]*\n" { set x [expr $x+1] } | |
1034 | -re " +\[0-9\]+ 0040 01406F80\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } | |
1035 | -re " +\[0-9\]+ 0046 01407800\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } | |
1036 | -re " +\[0-9\]+ 0050 01406D80\[^\n\]*\n" { set x [expr $x+1] } | |
1037 | -re " +\[0-9\]+ 0054 01406B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1038 | -re " +\[0-9\]+ 005a 01406BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } | |
1039 | eof { break } | |
1040 | } | |
1041 | } | |
1042 | ||
1043 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1044 | # isn't needed, but just in case, please keep it in for now. | |
1045 | gas_finish | |
1046 | ||
1047 | # Did we find what we were looking for? If not, flunk it. | |
1048 | if [expr $x == 21] then { pass $testname } else { fail $testname } | |
1049 | ||
1050 | setup_xfail "h8300*-*-*" | |
1051 | fail "h8300h movfpe/movtpe tests" | |
1052 | } | |
1053 | ||
1054 | proc do_h8300h_movb {} { | |
1055 | set testname "movbh.s: h8300h movb tests" | |
1056 | set x 0 | |
1057 | ||
1058 | gas_start "movbh.s" "-al" | |
1059 | ||
1060 | # Check each instruction bit pattern to verify it got | |
1061 | # assembled correctly. | |
1062 | while 1 { | |
1063 | expect { | |
1064 | -re " +\[0-9\]+ 0000 0C89\[^\n\]*\n" { set x [expr $x+1] } | |
1065 | -re " +\[0-9\]+ 0002 F810\[^\n\]*\n" { set x [expr $x+1] } | |
1066 | -re " +\[0-9\]+ 0004 6818\[^\n\]*\n" { set x [expr $x+1] } | |
1067 | -re " +\[0-9\]+ 0006 6E180010\[^\n\]*\n" { set x [expr $x+1] } | |
1068 | -re " +\[0-9\]+ 000a 78106A28\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } | |
1069 | -re " +\[0-9\]+ 0012 6C18\[^\n\]*\n" { set x [expr $x+1] } | |
1070 | -re " +\[0-9\]+ 0014 2810\[^\n\]*\n" { set x [expr $x+1] } | |
1071 | -re " +\[0-9\]+ 0016 6A080000\[^\n\]*\n" { set x [expr $x+1] } | |
1072 | -re " +\[0-9\]+ 001a 6A280000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1073 | -re " +\[0-9\]+ 0020 6898\[^\n\]*\n" { set x [expr $x+1] } | |
1074 | -re " +\[0-9\]+ 0022 6E980010\[^\n\]*\n" { set x [expr $x+1] } | |
1075 | -re " +\[0-9\]+ 0026 78106AA8\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } | |
1076 | -re " +\[0-9\]+ 002e 6C98\[^\n\]*\n" { set x [expr $x+1] } | |
1077 | -re " +\[0-9\]+ 0030 3810\[^\n\]*\n" { set x [expr $x+1] } | |
1078 | -re " +\[0-9\]+ 0032 6A880000\[^\n\]*\n" { set x [expr $x+1] } | |
1079 | -re " +\[0-9\]+ 0036 6AA80000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1080 | eof { break } | |
1081 | } | |
1082 | } | |
1083 | ||
1084 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1085 | # isn't needed, but just in case, please keep it in for now. | |
1086 | gas_finish | |
1087 | ||
1088 | # Did we find what we were looking for? If not, flunk it. | |
1089 | if [expr $x == 16] then { pass $testname } else { fail $testname } | |
1090 | } | |
1091 | ||
1092 | proc do_h8300h_movw {} { | |
1093 | set testname "movwh.s: h8300h movw tests" | |
1094 | set x 0 | |
1095 | ||
1096 | gas_start "movwh.s" "-al" | |
1097 | ||
1098 | # Check each instruction bit pattern to verify it got | |
1099 | # assembled correctly. | |
1100 | while 1 { | |
1101 | expect { | |
1102 | -re " +\[0-9\]+ 0000 0D01\[^\n\]*\n" { set x [expr $x+1] } | |
1103 | -re " +\[0-9\]+ 0002 79000010\[^\n\]*\n" { set x [expr $x+1] } | |
1104 | -re " +\[0-9\]+ 0006 6910\[^\n\]*\n" { set x [expr $x+1] } | |
1105 | -re " +\[0-9\]+ 0008 6F100010\[^\n\]*\n" { set x [expr $x+1] } | |
1106 | -re " +\[0-9\]+ 000c 78106B20\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } | |
1107 | -re " +\[0-9\]+ 0014 6D10\[^\n\]*\n" { set x [expr $x+1] } | |
1108 | -re " +\[0-9\]+ 0016 6B000000\[^\n\]*\n" { set x [expr $x+1] } | |
1109 | -re " +\[0-9\]+ 001a 6B200000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1110 | -re " +\[0-9\]+ 0020 6990\[^\n\]*\n" { set x [expr $x+1] } | |
1111 | -re " +\[0-9\]+ 0022 6F900010\[^\n\]*\n" { set x [expr $x+1] } | |
1112 | -re " +\[0-9\]+ 0026 78106BA0\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } | |
1113 | -re " +\[0-9\]+ 002e 6D90\[^\n\]*\n" { set x [expr $x+1] } | |
1114 | -re " +\[0-9\]+ 0030 6B800000\[^\n\]*\n" { set x [expr $x+1] } | |
1115 | -re " +\[0-9\]+ 0034 6BA00000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1116 | eof { break } | |
1117 | } | |
1118 | } | |
1119 | ||
1120 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1121 | # isn't needed, but just in case, please keep it in for now. | |
1122 | gas_finish | |
1123 | ||
1124 | # Did we find what we were looking for? If not, flunk it. | |
1125 | if [expr $x == 14] then { pass $testname } else { fail $testname } | |
1126 | } | |
1127 | ||
1128 | proc do_h8300h_movl {} { | |
1129 | set testname "movlh.s: h8300h movl tests" | |
1130 | set x 0 | |
1131 | ||
1132 | gas_start "movlh.s" "-al" | |
1133 | ||
1134 | # Check each instruction bit pattern to verify it got | |
1135 | # assembled correctly. | |
1136 | while 1 { | |
1137 | expect { | |
1138 | -re " +\[0-9\]+ 0000 0F81\[^\n\]*\n" { set x [expr $x+1] } | |
1139 | -re " +\[0-9\]+ 0002 7A000000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
1140 | -re " +\[0-9\]+ 0008 01006910\[^\n\]*\n" { set x [expr $x+1] } | |
1141 | -re " +\[0-9\]+ 000c 01006F10\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } | |
1142 | -re " +\[0-9\]+ 0012 01007810\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } | |
1143 | -re " +\[0-9\]+ 001c 01006D10\[^\n\]*\n" { set x [expr $x+1] } | |
1144 | -re " +\[0-9\]+ 0020 01006B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1145 | -re " +\[0-9\]+ 0026 01006B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } | |
1146 | -re " +\[0-9\]+ 002e 01006990\[^\n\]*\n" { set x [expr $x+1] } | |
1147 | -re " +\[0-9\]+ 0032 01006F90\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } | |
1148 | -re " +\[0-9\]+ 0038 01007890\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } | |
1149 | -re " +\[0-9\]+ 0042 01006D90\[^\n\]*\n" { set x [expr $x+1] } | |
1150 | -re " +\[0-9\]+ 0046 01006B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1151 | -re " +\[0-9\]+ 004c 01006BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } | |
1152 | eof { break } | |
1153 | } | |
1154 | } | |
1155 | ||
1156 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1157 | # isn't needed, but just in case, please keep it in for now. | |
1158 | gas_finish | |
1159 | ||
1160 | # Did we find what we were looking for? If not, flunk it. | |
1161 | if [expr $x == 14] then { pass $testname } else { fail $testname } | |
1162 | } | |
1163 | ||
1164 | proc do_h8300h_pushpop {} { | |
1165 | set testname "pushpoph.s: h8300h pushpop tests" | |
1166 | set x 0 | |
1167 | ||
1168 | gas_start "pushpoph.s" "-al" | |
1169 | ||
1170 | # Check each instruction bit pattern to verify it got | |
1171 | # assembled correctly. | |
1172 | while 1 { | |
1173 | expect { | |
1174 | -re " +\[0-9\]+ 0000 6D70\[^\n\]*\n" { set x [expr $x+1] } | |
1175 | -re " +\[0-9\]+ 0002 01006D70\[^\n\]*\n" { set x [expr $x+1] } | |
1176 | -re " +\[0-9\]+ 0006 6DF0\[^\n\]*\n" { set x [expr $x+1] } | |
1177 | -re " +\[0-9\]+ 0008 01006DF0\[^\n\]*\n" { set x [expr $x+1] } | |
1178 | eof { break } | |
1179 | } | |
1180 | } | |
1181 | ||
1182 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1183 | # isn't needed, but just in case, please keep it in for now. | |
1184 | gas_finish | |
1185 | ||
1186 | # Did we find what we were looking for? If not, flunk it. | |
1187 | if [expr $x == 4] then { pass $testname } else { fail $testname } | |
1188 | } | |
1189 | ||
1190 | proc do_h8300h_rotate_shift {} { | |
1191 | set testname "rotshh.s: h8300h rotate and shift tests" | |
1192 | set x 0 | |
1193 | ||
1194 | gas_start "rotshh.s" "-al" | |
1195 | ||
1196 | # Check each instruction bit pattern to verify it got | |
1197 | # assembled correctly. | |
1198 | while 1 { | |
1199 | expect { | |
1200 | -re " +\[0-9\]+ 0000 1288\[^\n\]*\n" { set x [expr $x+1] } | |
1201 | -re " +\[0-9\]+ 0002 1290\[^\n\]*\n" { set x [expr $x+1] } | |
1202 | -re " +\[0-9\]+ 0004 12B0\[^\n\]*\n" { set x [expr $x+1] } | |
1203 | -re " +\[0-9\]+ 0006 1388\[^\n\]*\n" { set x [expr $x+1] } | |
1204 | -re " +\[0-9\]+ 0008 1390\[^\n\]*\n" { set x [expr $x+1] } | |
1205 | -re " +\[0-9\]+ 000a 13B0\[^\n\]*\n" { set x [expr $x+1] } | |
1206 | -re " +\[0-9\]+ 000c 1208\[^\n\]*\n" { set x [expr $x+1] } | |
1207 | -re " +\[0-9\]+ 000e 1210\[^\n\]*\n" { set x [expr $x+1] } | |
1208 | -re " +\[0-9\]+ 0010 1230\[^\n\]*\n" { set x [expr $x+1] } | |
1209 | -re " +\[0-9\]+ 0012 1308\[^\n\]*\n" { set x [expr $x+1] } | |
1210 | -re " +\[0-9\]+ 0014 1310\[^\n\]*\n" { set x [expr $x+1] } | |
1211 | -re " +\[0-9\]+ 0016 1330\[^\n\]*\n" { set x [expr $x+1] } | |
1212 | -re " +\[0-9\]+ 0018 1088\[^\n\]*\n" { set x [expr $x+1] } | |
1213 | -re " +\[0-9\]+ 001a 1090\[^\n\]*\n" { set x [expr $x+1] } | |
1214 | -re " +\[0-9\]+ 001c 10B0\[^\n\]*\n" { set x [expr $x+1] } | |
1215 | -re " +\[0-9\]+ 001e 1188\[^\n\]*\n" { set x [expr $x+1] } | |
1216 | -re " +\[0-9\]+ 0020 1190\[^\n\]*\n" { set x [expr $x+1] } | |
1217 | -re " +\[0-9\]+ 0022 11B0\[^\n\]*\n" { set x [expr $x+1] } | |
1218 | -re " +\[0-9\]+ 0024 1008\[^\n\]*\n" { set x [expr $x+1] } | |
1219 | -re " +\[0-9\]+ 0026 1010\[^\n\]*\n" { set x [expr $x+1] } | |
1220 | -re " +\[0-9\]+ 0028 1030\[^\n\]*\n" { set x [expr $x+1] } | |
1221 | -re " +\[0-9\]+ 002a 1108\[^\n\]*\n" { set x [expr $x+1] } | |
1222 | -re " +\[0-9\]+ 002c 1110\[^\n\]*\n" { set x [expr $x+1] } | |
1223 | -re " +\[0-9\]+ 002e 1130\[^\n\]*\n" { set x [expr $x+1] } | |
1224 | eof { break } | |
1225 | } | |
1226 | } | |
1227 | ||
1228 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1229 | # isn't needed, but just in case, please keep it in for now. | |
1230 | gas_finish | |
1231 | ||
1232 | # Did we find what we were looking for? If not, flunk it. | |
1233 | if [expr $x == 24] then { pass $testname } else { fail $testname } | |
1234 | } | |
1235 | ||
1236 | proc do_h8300h_extend {} { | |
1237 | set testname "extendh.s: h8300h extend tests" | |
1238 | set x 0 | |
1239 | ||
1240 | gas_start "extendh.s" "-al" | |
1241 | ||
1242 | # Check each instruction bit pattern to verify it got | |
1243 | # assembled correctly. | |
1244 | while 1 { | |
1245 | expect { | |
1246 | -re " +\[0-9\]+ 0000 17D0\[^\n\]*\n" { set x [expr $x+1] } | |
1247 | -re " +\[0-9\]+ 0002 17F0\[^\n\]*\n" { set x [expr $x+1] } | |
1248 | -re " +\[0-9\]+ 0004 1750\[^\n\]*\n" { set x [expr $x+1] } | |
1249 | -re " +\[0-9\]+ 0006 1770\[^\n\]*\n" { set x [expr $x+1] } | |
1250 | eof { break } | |
1251 | } | |
1252 | } | |
1253 | ||
1254 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1255 | # isn't needed, but just in case, please keep it in for now. | |
1256 | gas_finish | |
1257 | ||
1258 | # Did we find what we were looking for? If not, flunk it. | |
1259 | if [expr $x == 4] then { pass $testname } else { fail $testname } | |
1260 | } | |
1261 | ||
1262 | proc do_h8300s_add_sub {} { | |
1263 | set testname "addsubs.s: h8300s add/sub tests" | |
1264 | set x 0 | |
1265 | ||
1266 | gas_start "addsubs.s" "-al" | |
1267 | ||
1268 | # Check each instruction bit pattern to verify it got | |
1269 | # assembled correctly. | |
1270 | while 1 { | |
1271 | expect { | |
1272 | -re " +\[0-9\]+ 0000 8910\[^\n\]*\n" { set x [expr $x+1] } | |
1273 | -re " +\[0-9\]+ 0002 0819\[^\n\]*\n" { set x [expr $x+1] } | |
1274 | -re " +\[0-9\]+ 0004 79110020\[^\n\]*\n" { set x [expr $x+1] } | |
1275 | -re " +\[0-9\]+ 0008 0912\[^\n\]*\n" { set x [expr $x+1] } | |
1276 | -re " +\[0-9\]+ 000a 7A110000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
1277 | -re " +\[0-9\]+ 0010 0A92\[^\n\]*\n" { set x [expr $x+1] } | |
1278 | -re " +\[0-9\]+ 0012 0B04\[^\n\]*\n" { set x [expr $x+1] } | |
1279 | -re " +\[0-9\]+ 0014 0B85\[^\n\]*\n" { set x [expr $x+1] } | |
1280 | -re " +\[0-9\]+ 0016 0B96\[^\n\]*\n" { set x [expr $x+1] } | |
1281 | -re " +\[0-9\]+ 0018 0E89\[^\n\]*\n" { set x [expr $x+1] } | |
1282 | -re " +\[0-9\]+ 001a 9210\[^\n\]*\n" { set x [expr $x+1] } | |
1283 | -re " +\[0-9\]+ 001c 1889\[^\n\]*\n" { set x [expr $x+1] } | |
1284 | -re " +\[0-9\]+ 001e 79310010\[^\n\]*\n" { set x [expr $x+1] } | |
1285 | -re " +\[0-9\]+ 0022 1901\[^\n\]*\n" { set x [expr $x+1] } | |
1286 | -re " +\[0-9\]+ 0024 7A310000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
1287 | -re " +\[0-9\]+ 002a 1A92\[^\n\]*\n" { set x [expr $x+1] } | |
1288 | -re " +\[0-9\]+ 002c 1B04\[^\n\]*\n" { set x [expr $x+1] } | |
1289 | -re " +\[0-9\]+ 002e 1B85\[^\n\]*\n" { set x [expr $x+1] } | |
1290 | -re " +\[0-9\]+ 0030 1B96\[^\n\]*\n" { set x [expr $x+1] } | |
1291 | -re " +\[0-9\]+ 0032 1E89\[^\n\]*\n" { set x [expr $x+1] } | |
1292 | -re " +\[0-9\]+ 0034 B210\[^\n\]*\n" { set x [expr $x+1] } | |
1293 | timeout { perror "timeout\n; break } | |
1294 | eof { break } | |
1295 | } | |
1296 | } | |
1297 | ||
1298 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1299 | # isn't needed, but just in case, please keep it in for now. | |
1300 | gas_finish | |
1301 | ||
1302 | # Did we find what we were looking for? If not, flunk it. | |
1303 | if [expr $x == 21] then { pass $testname } else { fail $testname } | |
1304 | } | |
1305 | ||
1306 | proc do_h8300s_logical {} { | |
1307 | set testname "logicals.s: h8300s logical tests" | |
1308 | set x 0 | |
1309 | ||
1310 | gas_start "logicals.s" "-al" | |
1311 | ||
1312 | # Check each instruction bit pattern to verify it got | |
1313 | # assembled correctly. | |
1314 | while 1 { | |
1315 | expect { | |
1316 | -re " +\[0-9\]+ 0000 E910\[^\n\]*\n" { set x [expr $x+1] } | |
1317 | -re " +\[0-9\]+ 0002 1691\[^\n\]*\n" { set x [expr $x+1] } | |
1318 | -re " +\[0-9\]+ 0004 79610020\[^\n\]*\n" { set x [expr $x+1] } | |
1319 | -re " +\[0-9\]+ 0008 6611\[^\n\]*\n" { set x [expr $x+1] } | |
1320 | -re " +\[0-9\]+ 000a 7A610000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
1321 | -re " +\[0-9\]+ 0010 01F06611\[^\n\]*\n" { set x [expr $x+1] } | |
1322 | -re " +\[0-9\]+ 0014 0610\[^\n\]*\n" { set x [expr $x+1] } | |
1323 | -re " +\[0-9\]+ 0016 01410610\[^\n\]*\n" { set x [expr $x+1] } | |
1324 | -re " +\[0-9\]+ 001a C810\[^\n\]*\n" { set x [expr $x+1] } | |
1325 | -re " +\[0-9\]+ 001c 1498\[^\n\]*\n" { set x [expr $x+1] } | |
1326 | -re " +\[0-9\]+ 001e 79410020\[^\n\]*\n" { set x [expr $x+1] } | |
1327 | -re " +\[0-9\]+ 0022 6411\[^\n\]*\n" { set x [expr $x+1] } | |
1328 | -re " +\[0-9\]+ 0024 7A410000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
1329 | -re " +\[0-9\]+ 002a 01F06411\[^\n\]*\n" { set x [expr $x+1] } | |
1330 | -re " +\[0-9\]+ 002e 0410\[^\n\]*\n" { set x [expr $x+1] } | |
1331 | -re " +\[0-9\]+ 0030 01410410\[^\n\]*\n" { set x [expr $x+1] } | |
1332 | ||
1333 | -re " +\[0-9\]+ 0034 D810\[^\n\]*\n" { set x [expr $x+1] } | |
1334 | -re " +\[0-9\]+ 0036 1589\[^\n\]*\n" { set x [expr $x+1] } | |
1335 | -re " +\[0-9\]+ 0038 79510020\[^\n\]*\n" { set x [expr $x+1] } | |
1336 | -re " +\[0-9\]+ 003c 6511\[^\n\]*\n" { set x [expr $x+1] } | |
1337 | -re " +\[0-9\]+ 003e 7A510000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
1338 | -re " +\[0-9\]+ 0044 01F06511\[^\n\]*\n" { set x [expr $x+1] } | |
1339 | -re " +\[0-9\]+ 0048 0510\[^\n\]*\n" { set x [expr $x+1] } | |
1340 | -re " +\[0-9\]+ 004a 01410510\[^\n\]*\n" { set x [expr $x+1] } | |
1341 | -re " +\[0-9\]+ 004e 1788\[^\n\]*\n" { set x [expr $x+1] } | |
1342 | -re " +\[0-9\]+ 0050 1790\[^\n\]*\n" { set x [expr $x+1] } | |
1343 | -re " +\[0-9\]+ 0052 17B0\[^\n\]*\n" { set x [expr $x+1] } | |
1344 | -re " +\[0-9\]+ 0054 1708\[^\n\]*\n" { set x [expr $x+1] } | |
1345 | -re " +\[0-9\]+ 0056 1710\[^\n\]*\n" { set x [expr $x+1] } | |
1346 | -re " +\[0-9\]+ 0058 1730\[^\n\]*\n" { set x [expr $x+1] } | |
1347 | timeout { perror "timeout\n; break } | |
1348 | eof { break } | |
1349 | } | |
1350 | } | |
1351 | ||
1352 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1353 | # isn't needed, but just in case, please keep it in for now. | |
1354 | gas_finish | |
1355 | ||
1356 | # Did we find what we were looking for? If not, flunk it. | |
1357 | if [expr $x == 30] then { pass $testname } else { fail $testname } | |
1358 | } | |
1359 | ||
1360 | proc do_h8300s_cbranch {} { | |
1361 | set testname "cbranchs.s: h8300s conditional branch tests" | |
1362 | set x 0 | |
1363 | ||
1364 | gas_start "cbranchs.s" "-al" | |
1365 | ||
1366 | # Check each instruction bit pattern to verify it got | |
1367 | # assembled correctly. | |
1368 | while 1 { | |
1369 | expect { | |
1370 | -re " +\[0-9\]+ 0000 4000\[^\n\]*\n" { set x [expr $x+1] } | |
1371 | -re " +\[0-9\]+ 0002 4000\[^\n\]*\n" { set x [expr $x+1] } | |
1372 | -re " +\[0-9\]+ 0004 4100\[^\n\]*\n" { set x [expr $x+1] } | |
1373 | -re " +\[0-9\]+ 0006 4100\[^\n\]*\n" { set x [expr $x+1] } | |
1374 | -re " +\[0-9\]+ 0008 4200\[^\n\]*\n" { set x [expr $x+1] } | |
1375 | -re " +\[0-9\]+ 000a 4300\[^\n\]*\n" { set x [expr $x+1] } | |
1376 | -re " +\[0-9\]+ 000c 4400\[^\n\]*\n" { set x [expr $x+1] } | |
1377 | -re " +\[0-9\]+ 000e 4400\[^\n\]*\n" { set x [expr $x+1] } | |
1378 | -re " +\[0-9\]+ 0010 4500\[^\n\]*\n" { set x [expr $x+1] } | |
1379 | -re " +\[0-9\]+ 0012 4500\[^\n\]*\n" { set x [expr $x+1] } | |
1380 | -re " +\[0-9\]+ 0014 4600\[^\n\]*\n" { set x [expr $x+1] } | |
1381 | -re " +\[0-9\]+ 0016 4700\[^\n\]*\n" { set x [expr $x+1] } | |
1382 | -re " +\[0-9\]+ 0018 4800\[^\n\]*\n" { set x [expr $x+1] } | |
1383 | -re " +\[0-9\]+ 001a 4900\[^\n\]*\n" { set x [expr $x+1] } | |
1384 | -re " +\[0-9\]+ 001c 4A00\[^\n\]*\n" { set x [expr $x+1] } | |
1385 | -re " +\[0-9\]+ 001e 4B00\[^\n\]*\n" { set x [expr $x+1] } | |
1386 | -re " +\[0-9\]+ 0020 4C00\[^\n\]*\n" { set x [expr $x+1] } | |
1387 | -re " +\[0-9\]+ 0022 4D00\[^\n\]*\n" { set x [expr $x+1] } | |
1388 | -re " +\[0-9\]+ 0024 4E00\[^\n\]*\n" { set x [expr $x+1] } | |
1389 | -re " +\[0-9\]+ 0026 4F00\[^\n\]*\n" { set x [expr $x+1] } | |
1390 | -re " +\[0-9\]+ 0028 58000000\[^\n\]*\n" { set x [expr $x+1] } | |
1391 | -re " +\[0-9\]+ 002c 58000000\[^\n\]*\n" { set x [expr $x+1] } | |
1392 | -re " +\[0-9\]+ 0030 58100000\[^\n\]*\n" { set x [expr $x+1] } | |
1393 | -re " +\[0-9\]+ 0034 58100000\[^\n\]*\n" { set x [expr $x+1] } | |
1394 | -re " +\[0-9\]+ 0038 58200000\[^\n\]*\n" { set x [expr $x+1] } | |
1395 | -re " +\[0-9\]+ 003c 58300000\[^\n\]*\n" { set x [expr $x+1] } | |
1396 | -re " +\[0-9\]+ 0040 58400000\[^\n\]*\n" { set x [expr $x+1] } | |
1397 | -re " +\[0-9\]+ 0044 58400000\[^\n\]*\n" { set x [expr $x+1] } | |
1398 | -re " +\[0-9\]+ 0048 58500000\[^\n\]*\n" { set x [expr $x+1] } | |
1399 | -re " +\[0-9\]+ 004c 58500000\[^\n\]*\n" { set x [expr $x+1] } | |
1400 | -re " +\[0-9\]+ 0050 58600000\[^\n\]*\n" { set x [expr $x+1] } | |
1401 | -re " +\[0-9\]+ 0054 58700000\[^\n\]*\n" { set x [expr $x+1] } | |
1402 | -re " +\[0-9\]+ 0058 58800000\[^\n\]*\n" { set x [expr $x+1] } | |
1403 | -re " +\[0-9\]+ 005c 58900000\[^\n\]*\n" { set x [expr $x+1] } | |
1404 | -re " +\[0-9\]+ 0060 58A00000\[^\n\]*\n" { set x [expr $x+1] } | |
1405 | -re " +\[0-9\]+ 0064 58B00000\[^\n\]*\n" { set x [expr $x+1] } | |
1406 | -re " +\[0-9\]+ 0068 58C00000\[^\n\]*\n" { set x [expr $x+1] } | |
1407 | -re " +\[0-9\]+ 006c 58D00000\[^\n\]*\n" { set x [expr $x+1] } | |
1408 | -re " +\[0-9\]+ 0070 58E00000\[^\n\]*\n" { set x [expr $x+1] } | |
1409 | -re " +\[0-9\]+ 0074 58F00000\[^\n\]*\n" { set x [expr $x+1] } | |
1410 | timeout { perror "timeout\n; break } | |
1411 | eof { break } | |
1412 | } | |
1413 | } | |
1414 | ||
1415 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1416 | # isn't needed, but just in case, please keep it in for now. | |
1417 | gas_finish | |
1418 | ||
1419 | # Did we find what we were looking for? If not, flunk it. | |
1420 | if [expr $x == 40] then { pass $testname } else { fail $testname } | |
1421 | } | |
1422 | proc do_h8300s_bitops1 {} { | |
1423 | set testname "bitops1s.s: h8300s bitops tests #1" | |
1424 | set x 0 | |
1425 | ||
1426 | gas_start "bitops1s.s" "-al" | |
1427 | ||
1428 | # Check each instruction bit pattern to verify it got | |
1429 | # assembled correctly. | |
1430 | while 1 { | |
1431 | expect { | |
1432 | -re " +\[0-9\]+ 0000 7608\[^\n\]*\n" { set x [expr $x+1] } | |
1433 | -re " +\[0-9\]+ 0002 7C007600\[^\n\]*\n" { set x [expr $x+1] } | |
1434 | -re " +\[0-9\]+ 0006 7E407600\[^\n\]*\n" { set x [expr $x+1] } | |
1435 | -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7600" { set x [expr $x+1] } | |
1436 | -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007600" { set x [expr $x+1] } | |
1437 | -re " +\[0-9\]+ 0018 7208\[^\n\]*\n" { set x [expr $x+1] } | |
1438 | -re " +\[0-9\]+ 001a 7D007200\[^\n\]*\n" { set x [expr $x+1] } | |
1439 | -re " +\[0-9\]+ 001e 7F407200\[^\n\]*\n" { set x [expr $x+1] } | |
1440 | -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +7200" { set x [expr $x+1] } | |
1441 | -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00007200" { set x [expr $x+1] } | |
1442 | -re " +\[0-9\]+ 0030 6298\[^\n\]*\n" { set x [expr $x+1] } | |
1443 | -re " +\[0-9\]+ 0032 7D006290\[^\n\]*\n" { set x [expr $x+1] } | |
1444 | -re " +\[0-9\]+ 0036 7F406290\[^\n\]*\n" { set x [expr $x+1] } | |
1445 | -re " +\[0-9\]+ 003a 6A180080\[^\n\]*\n +\[0-9\]+ +6290" { set x [expr $x+1] } | |
1446 | -re " +\[0-9\]+ 0040 6A380001\[^\n\]*\n +\[0-9\]+ +00006290" { set x [expr $x+1] } | |
1447 | -re " +\[0-9\]+ 0048 7688\[^\n\]*\n" { set x [expr $x+1] } | |
1448 | -re " +\[0-9\]+ 004a 7C007680\[^\n\]*\n" { set x [expr $x+1] } | |
1449 | -re " +\[0-9\]+ 004e 7E407680\[^\n\]*\n" { set x [expr $x+1] } | |
1450 | -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +7680" { set x [expr $x+1] } | |
1451 | -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00007680" { set x [expr $x+1] } | |
1452 | -re " +\[0-9\]+ 0060 7788\[^\n\]*\n" { set x [expr $x+1] } | |
1453 | -re " +\[0-9\]+ 0062 7C007780\[^\n\]*\n" { set x [expr $x+1] } | |
1454 | -re " +\[0-9\]+ 0066 7E407780\[^\n\]*\n" { set x [expr $x+1] } | |
1455 | -re " +\[0-9\]+ 006a 6A100080\[^\n\]*\n +\[0-9\]+ +7780" { set x [expr $x+1] } | |
1456 | -re " +\[0-9\]+ 0070 6A300001\[^\n\]*\n +\[0-9\]+ +00007780" { set x [expr $x+1] } | |
1457 | timeout { perror "timeout\n; break } | |
1458 | eof { break } | |
1459 | } | |
1460 | } | |
1461 | ||
1462 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1463 | # isn't needed, but just in case, please keep it in for now. | |
1464 | gas_finish | |
1465 | ||
1466 | # Did we find what we were looking for? If not, flunk it. | |
1467 | if [expr $x == 25] then { pass $testname } else { fail $testname } | |
1468 | } | |
1469 | ||
1470 | proc do_h8300s_bitops2 {} { | |
1471 | set testname "bitops2s.s: h8300s bitops tests #2" | |
1472 | set x 0 | |
1473 | ||
1474 | gas_start "bitops2s.s" "-al" | |
1475 | ||
1476 | # Check each instruction bit pattern to verify it got | |
1477 | # assembled correctly. | |
1478 | while 1 { | |
1479 | expect { | |
1480 | -re " +\[0-9\]+ 0000 7488\[^\n\]*\n" { set x [expr $x+1] } | |
1481 | -re " +\[0-9\]+ 0002 7C007480\[^\n\]*\n" { set x [expr $x+1] } | |
1482 | -re " +\[0-9\]+ 0006 7E407480\[^\n\]*\n" { set x [expr $x+1] } | |
1483 | -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7480" { set x [expr $x+1] } | |
1484 | -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007480" { set x [expr $x+1] } | |
1485 | -re " +\[0-9\]+ 0018 6788\[^\n\]*\n" { set x [expr $x+1] } | |
1486 | -re " +\[0-9\]+ 001a 7D006780\[^\n\]*\n" { set x [expr $x+1] } | |
1487 | -re " +\[0-9\]+ 001e 7F406780\[^\n\]*\n" { set x [expr $x+1] } | |
1488 | -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6780" { set x [expr $x+1] } | |
1489 | -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006780" { set x [expr $x+1] } | |
1490 | ||
1491 | -re " +\[0-9\]+ 0030 7588\[^\n\]*\n" { set x [expr $x+1] } | |
1492 | -re " +\[0-9\]+ 0032 7C007580\[^\n\]*\n" { set x [expr $x+1] } | |
1493 | -re " +\[0-9\]+ 0036 7E407580\[^\n\]*\n" { set x [expr $x+1] } | |
1494 | -re " +\[0-9\]+ 003a 6A100080\[^\n\]*\n +\[0-9\]+ +7580" { set x [expr $x+1] } | |
1495 | -re " +\[0-9\]+ 0040 6A300001\[^\n\]*\n +\[0-9\]+ +00007580" { set x [expr $x+1] } | |
1496 | -re " +\[0-9\]+ 0048 7708\[^\n\]*\n" { set x [expr $x+1] } | |
1497 | -re " +\[0-9\]+ 004a 7C007700\[^\n\]*\n" { set x [expr $x+1] } | |
1498 | -re " +\[0-9\]+ 004e 7E407700\[^\n\]*\n" { set x [expr $x+1] } | |
1499 | -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +7700" { set x [expr $x+1] } | |
1500 | -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00007700" { set x [expr $x+1] } | |
1501 | timeout { perror "timeout\n; break } | |
1502 | eof { break } | |
1503 | } | |
1504 | } | |
1505 | ||
1506 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1507 | # isn't needed, but just in case, please keep it in for now. | |
1508 | gas_finish | |
1509 | ||
1510 | # Did we find what we were looking for? If not, flunk it. | |
1511 | if [expr $x == 20] then { pass $testname } else { fail $testname } | |
1512 | } | |
1513 | ||
1514 | proc do_h8300s_bitops3 {} { | |
1515 | set testname "bitops3s.s: h8300s bitops tests #3" | |
1516 | set x 0 | |
1517 | ||
1518 | gas_start "bitops3s.s" "-al" | |
1519 | ||
1520 | # Check each instruction bit pattern to verify it got | |
1521 | # assembled correctly. | |
1522 | while 1 { | |
1523 | expect { | |
1524 | -re " +\[0-9\]+ 0000 7108\[^\n\]*\n" { set x [expr $x+1] } | |
1525 | -re " +\[0-9\]+ 0002 7D007100\[^\n\]*\n" { set x [expr $x+1] } | |
1526 | -re " +\[0-9\]+ 0006 7F407100\[^\n\]*\n" { set x [expr $x+1] } | |
1527 | -re " +\[0-9\]+ 000a 6A180080\[^\n\]*\n +\[0-9\]+ +7100" { set x [expr $x+1] } | |
1528 | -re " +\[0-9\]+ 0010 6A380001\[^\n\]*\n +\[0-9\]+ +00007100" { set x [expr $x+1] } | |
1529 | -re " +\[0-9\]+ 0018 6198\[^\n\]*\n" { set x [expr $x+1] } | |
1530 | -re " +\[0-9\]+ 001a 7D006190\[^\n\]*\n" { set x [expr $x+1] } | |
1531 | -re " +\[0-9\]+ 001e 7F406190\[^\n\]*\n" { set x [expr $x+1] } | |
1532 | -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6190" { set x [expr $x+1] } | |
1533 | -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006190" { set x [expr $x+1] } | |
1534 | -re " +\[0-9\]+ 0030 7008\[^\n\]*\n" { set x [expr $x+1] } | |
1535 | -re " +\[0-9\]+ 0032 7D007000\[^\n\]*\n" { set x [expr $x+1] } | |
1536 | -re " +\[0-9\]+ 0036 7F407000\[^\n\]*\n" { set x [expr $x+1] } | |
1537 | -re " +\[0-9\]+ 003a 6A180080\[^\n\]*\n +\[0-9\]+ +7000" { set x [expr $x+1] } | |
1538 | -re " +\[0-9\]+ 0040 6A380001\[^\n\]*\n +\[0-9\]+ +00007000" { set x [expr $x+1] } | |
1539 | -re " +\[0-9\]+ 0048 6098\[^\n\]*\n" { set x [expr $x+1] } | |
1540 | -re " +\[0-9\]+ 004a 7D006090\[^\n\]*\n" { set x [expr $x+1] } | |
1541 | -re " +\[0-9\]+ 004e 7F406090\[^\n\]*\n" { set x [expr $x+1] } | |
1542 | -re " +\[0-9\]+ 0052 6A180080\[^\n\]*\n +\[0-9\]+ +6090" { set x [expr $x+1] } | |
1543 | -re " +\[0-9\]+ 0058 6A380001\[^\n\]*\n +\[0-9\]+ +00006090" { set x [expr $x+1] } | |
1544 | timeout { perror "timeout\n; break } | |
1545 | eof { break } | |
1546 | } | |
1547 | } | |
1548 | ||
1549 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1550 | # isn't needed, but just in case, please keep it in for now. | |
1551 | gas_finish | |
1552 | ||
1553 | # Did we find what we were looking for? If not, flunk it. | |
1554 | if [expr $x == 20] then { pass $testname } else { fail $testname } | |
1555 | } | |
1556 | ||
1557 | proc do_h8300s_bitops4 {} { | |
1558 | set testname "bitops4s.s: h8300s bitops tests #4" | |
1559 | set x 0 | |
1560 | ||
1561 | gas_start "bitops4s.s" "-al" | |
1562 | ||
1563 | # Check each instruction bit pattern to verify it got | |
1564 | # assembled correctly. | |
1565 | while 1 { | |
1566 | expect { | |
1567 | -re " +\[0-9\]+ 0000 7408\[^\n\]*\n" { set x [expr $x+1] } | |
1568 | -re " +\[0-9\]+ 0002 7C007400\[^\n\]*\n" { set x [expr $x+1] } | |
1569 | -re " +\[0-9\]+ 0006 7E407400\[^\n\]*\n" { set x [expr $x+1] } | |
1570 | -re " +\[0-9\]+ 000a 6A100080\[^\n\]*\n +\[0-9\]+ +7400" { set x [expr $x+1] } | |
1571 | -re " +\[0-9\]+ 0010 6A300001\[^\n\]*\n +\[0-9\]+ +00007400" { set x [expr $x+1] } | |
1572 | -re " +\[0-9\]+ 0018 6708\[^\n\]*\n" { set x [expr $x+1] } | |
1573 | -re " +\[0-9\]+ 001a 7D006700\[^\n\]*\n" { set x [expr $x+1] } | |
1574 | -re " +\[0-9\]+ 001e 7F406700\[^\n\]*\n" { set x [expr $x+1] } | |
1575 | -re " +\[0-9\]+ 0022 6A180080\[^\n\]*\n +\[0-9\]+ +6700" { set x [expr $x+1] } | |
1576 | -re " +\[0-9\]+ 0028 6A380001\[^\n\]*\n +\[0-9\]+ +00006700" { set x [expr $x+1] } | |
1577 | -re " +\[0-9\]+ 0030 7308\[^\n\]*\n" { set x [expr $x+1] } | |
1578 | -re " +\[0-9\]+ 0032 7C007300\[^\n\]*\n" { set x [expr $x+1] } | |
1579 | -re " +\[0-9\]+ 0036 7E407300\[^\n\]*\n" { set x [expr $x+1] } | |
1580 | -re " +\[0-9\]+ 003a 6A100080\[^\n\]*\n +\[0-9\]+ +7300" { set x [expr $x+1] } | |
1581 | -re " +\[0-9\]+ 0040 6A300001\[^\n\]*\n +\[0-9\]+ +00007300" { set x [expr $x+1] } | |
1582 | -re " +\[0-9\]+ 0048 6398\[^\n\]*\n" { set x [expr $x+1] } | |
1583 | -re " +\[0-9\]+ 004a 7C006390\[^\n\]*\n" { set x [expr $x+1] } | |
1584 | -re " +\[0-9\]+ 004e 7E406390\[^\n\]*\n" { set x [expr $x+1] } | |
1585 | -re " +\[0-9\]+ 0052 6A100080\[^\n\]*\n +\[0-9\]+ +6390" { set x [expr $x+1] } | |
1586 | -re " +\[0-9\]+ 0058 6A300001\[^\n\]*\n +\[0-9\]+ +00006390" { set x [expr $x+1] } | |
1587 | -re " +\[0-9\]+ 0060 7508\[^\n\]*\n" { set x [expr $x+1] } | |
1588 | -re " +\[0-9\]+ 0062 7C007500\[^\n\]*\n" { set x [expr $x+1] } | |
1589 | -re " +\[0-9\]+ 0066 7E407500\[^\n\]*\n" { set x [expr $x+1] } | |
1590 | -re " +\[0-9\]+ 006a 6A100080\[^\n\]*\n +\[0-9\]+ +7500" { set x [expr $x+1] } | |
1591 | -re " +\[0-9\]+ 0070 6A300001\[^\n\]*\n +\[0-9\]+ +00007500" { set x [expr $x+1] } | |
1592 | timeout { perror "timeout\n; break } | |
1593 | eof { break } | |
1594 | } | |
1595 | } | |
1596 | ||
1597 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1598 | # isn't needed, but just in case, please keep it in for now. | |
1599 | gas_finish | |
1600 | ||
1601 | # Did we find what we were looking for? If not, flunk it. | |
1602 | if [expr $x == 25] then { pass $testname } else { fail $testname } | |
1603 | } | |
1604 | ||
1605 | proc do_h8300s_branch {} { | |
1606 | set testname "branchs.s: h8300s branch tests" | |
1607 | set x 0 | |
1608 | ||
1609 | gas_start "branchs.s" "-al" | |
1610 | ||
1611 | # Check each instruction bit pattern to verify it got | |
1612 | # assembled correctly. | |
1613 | while 1 { | |
1614 | expect { | |
1615 | -re " +\[0-9\]+ 0000 5500\[^\n\]*\n" { set x [expr $x+1] } | |
1616 | -re " +\[0-9\]+ 0002 5C000000\[^\n\]*\n" { set x [expr $x+1] } | |
1617 | -re " +\[0-9\]+ 0006 5A000000\[^\n\]*\n" { set x [expr $x+1] } | |
1618 | -re " +\[0-9\]+ 000a 5900\[^\n\]*\n" { set x [expr $x+1] } | |
1619 | -re " +\[0-9\]+ 000c 5B00\[^\n\]*\n" { set x [expr $x+1] } | |
1620 | -re " +\[0-9\]+ 000e 5E000000\[^\n\]*\n" { set x [expr $x+1] } | |
1621 | -re " +\[0-9\]+ 0012 5D00\[^\n\]*\n" { set x [expr $x+1] } | |
1622 | -re " +\[0-9\]+ 0014 5F00\[^\n\]*\n" { set x [expr $x+1] } | |
1623 | timeout { perror "timeout\n; break } | |
1624 | eof { break } | |
1625 | } | |
1626 | } | |
1627 | ||
1628 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1629 | # isn't needed, but just in case, please keep it in for now. | |
1630 | gas_finish | |
1631 | ||
1632 | # Did we find what we were looking for? If not, flunk it. | |
1633 | if [expr $x == 8] then { pass $testname } else { fail $testname } | |
1634 | } | |
1635 | ||
1636 | proc do_h8300s_compare {} { | |
1637 | set testname "compares.s: h8300s compare tests" | |
1638 | set x 0 | |
1639 | ||
1640 | gas_start "compares.s" "-al" | |
1641 | ||
1642 | # Check each instruction bit pattern to verify it got | |
1643 | # assembled correctly. | |
1644 | while 1 { | |
1645 | expect { | |
1646 | -re " +\[0-9\]+ 0000 A800\[^\n\]*\n" { set x [expr $x+1] } | |
1647 | -re " +\[0-9\]+ 0002 1C08\[^\n\]*\n" { set x [expr $x+1] } | |
1648 | -re " +\[0-9\]+ 0004 79200020\[^\n\]*\n" { set x [expr $x+1] } | |
1649 | -re " +\[0-9\]+ 0008 1D01\[^\n\]*\n" { set x [expr $x+1] } | |
1650 | -re " +\[0-9\]+ 000a 7A200000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
1651 | -re " +\[0-9\]+ 0010 1F81\[^\n\]*\n" { set x [expr $x+1] } | |
1652 | timeout { perror "timeout\n; break } | |
1653 | eof { break } | |
1654 | } | |
1655 | } | |
1656 | ||
1657 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1658 | # isn't needed, but just in case, please keep it in for now. | |
1659 | gas_finish | |
1660 | ||
1661 | # Did we find what we were looking for? If not, flunk it. | |
1662 | if [expr $x == 6] then { pass $testname } else { fail $testname } | |
1663 | } | |
1664 | ||
1665 | proc do_h8300s_decimal {} { | |
1666 | set testname "decimals.s: h8300s decimal tests" | |
1667 | set x 0 | |
1668 | ||
1669 | gas_start "decimals.s" "-al" | |
1670 | ||
1671 | # Check each instruction bit pattern to verify it got | |
1672 | # assembled correctly. | |
1673 | while 1 { | |
1674 | expect { | |
1675 | -re " +\[0-9\]+ 0000 0F08\[^\n\]*\n" { set x [expr $x+1] } | |
1676 | -re " +\[0-9\]+ 0002 1F08\[^\n\]*\n" { set x [expr $x+1] } | |
1677 | eof { break } | |
1678 | } | |
1679 | } | |
1680 | ||
1681 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1682 | # isn't needed, but just in case, please keep it in for now. | |
1683 | gas_finish | |
1684 | ||
1685 | # Did we find what we were looking for? If not, flunk it. | |
1686 | if [expr $x == 2] then { pass $testname } else { fail $testname } | |
1687 | } | |
1688 | ||
1689 | proc do_h8300s_incdec {} { | |
1690 | set testname "incdecs.s: h8300s incdec tests" | |
1691 | set x 0 | |
1692 | ||
1693 | gas_start "incdecs.s" "-al" | |
1694 | ||
1695 | # Check each instruction bit pattern to verify it got | |
1696 | # assembled correctly. | |
1697 | while 1 { | |
1698 | expect { | |
1699 | -re " +\[0-9\]+ 0000 1A08\[^\n\]*\n" { set x [expr $x+1] } | |
1700 | -re " +\[0-9\]+ 0002 1B50\[^\n\]*\n" { set x [expr $x+1] } | |
1701 | -re " +\[0-9\]+ 0004 1BD0\[^\n\]*\n" { set x [expr $x+1] } | |
1702 | -re " +\[0-9\]+ 0006 1B70\[^\n\]*\n" { set x [expr $x+1] } | |
1703 | -re " +\[0-9\]+ 0008 1BF0\[^\n\]*\n" { set x [expr $x+1] } | |
1704 | -re " +\[0-9\]+ 000a 0A08\[^\n\]*\n" { set x [expr $x+1] } | |
1705 | -re " +\[0-9\]+ 000c 0B50\[^\n\]*\n" { set x [expr $x+1] } | |
1706 | -re " +\[0-9\]+ 000e 0BD0\[^\n\]*\n" { set x [expr $x+1] } | |
1707 | -re " +\[0-9\]+ 0010 0B70\[^\n\]*\n" { set x [expr $x+1] } | |
1708 | -re " +\[0-9\]+ 0012 0BF0\[^\n\]*\n" { set x [expr $x+1] } | |
1709 | eof { break } | |
1710 | } | |
1711 | } | |
1712 | ||
1713 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1714 | # isn't needed, but just in case, please keep it in for now. | |
1715 | gas_finish | |
1716 | ||
1717 | # Did we find what we were looking for? If not, flunk it. | |
1718 | if [expr $x == 10] then { pass $testname } else { fail $testname } | |
1719 | } | |
1720 | ||
1721 | proc do_h8300s_divmul {} { | |
1722 | set testname "divmuls.s: h8300s divmul tests" | |
1723 | set x 0 | |
1724 | ||
1725 | gas_start "divmuls.s" "-al" | |
1726 | ||
1727 | # Check each instruction bit pattern to verify it got | |
1728 | # assembled correctly. | |
1729 | while 1 { | |
1730 | expect { | |
1731 | -re " +\[0-9\]+ 0000 5181\[^\n\]*\n" { set x [expr $x+1] } | |
1732 | -re " +\[0-9\]+ 0002 5301\[^\n\]*\n" { set x [expr $x+1] } | |
1733 | -re " +\[0-9\]+ 0004 01D05181\[^\n\]*\n" { set x [expr $x+1] } | |
1734 | -re " +\[0-9\]+ 0008 01D05301\[^\n\]*\n" { set x [expr $x+1] } | |
1735 | -re " +\[0-9\]+ 000c 5081\[^\n\]*\n" { set x [expr $x+1] } | |
1736 | -re " +\[0-9\]+ 000e 5201\[^\n\]*\n" { set x [expr $x+1] } | |
1737 | -re " +\[0-9\]+ 0010 01C05081\[^\n\]*\n" { set x [expr $x+1] } | |
1738 | -re " +\[0-9\]+ 0014 01C05201\[^\n\]*\n" { set x [expr $x+1] } | |
1739 | eof { break } | |
1740 | } | |
1741 | } | |
1742 | ||
1743 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1744 | # isn't needed, but just in case, please keep it in for now. | |
1745 | gas_finish | |
1746 | ||
1747 | # Did we find what we were looking for? If not, flunk it. | |
1748 | if [expr $x == 8] then { pass $testname } else { fail $testname } | |
1749 | } | |
1750 | ||
1751 | proc do_h8300s_misc {} { | |
1752 | set testname "miscs.s: h8300s misc tests" | |
1753 | set x 0 | |
1754 | ||
1755 | gas_start "miscs.s" "-al" | |
1756 | ||
1757 | # Check each instruction bit pattern to verify it got | |
1758 | # assembled correctly. | |
1759 | while 1 { | |
1760 | expect { | |
1761 | -re " +\[0-9\]+ 0000 7B5C598F\[^\n\]*\n" { set x [expr $x+1] } | |
1762 | -re " +\[0-9\]+ 0004 7BD4598F\[^\n\]*\n" { set x [expr $x+1] } | |
1763 | -re " +\[0-9\]+ 0008 0700\[^\n\]*\n" { set x [expr $x+1] } | |
1764 | -re " +\[0-9\]+ 000a 0308\[^\n\]*\n" { set x [expr $x+1] } | |
1765 | -re " +\[0-9\]+ 000c 01410700\[^\n\]*\n" { set x [expr $x+1] } | |
1766 | -re " +\[0-9\]+ 0010 0318\[^\n\]*\n" { set x [expr $x+1] } | |
1767 | -re " +\[0-9\]+ 0012 01406900\[^\n\]*\n" { set x [expr $x+1] } | |
1768 | -re " +\[0-9\]+ 0016 01406F00\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } | |
1769 | -re " +\[0-9\]+ 001c 01407800\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } | |
1770 | -re " +\[0-9\]+ 0026 01406D00\[^\n\]*\n" { set x [expr $x+1] } | |
1771 | -re " +\[0-9\]+ 002a 01406B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1772 | -re " +\[0-9\]+ 0030 01406B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } | |
1773 | -re " +\[0-9\]+ 0038 01416900\[^\n\]*\n" { set x [expr $x+1] } | |
1774 | -re " +\[0-9\]+ 003c 01416F00\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } | |
1775 | -re " +\[0-9\]+ 0042 01417800\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } | |
1776 | -re " +\[0-9\]+ 004c 01416D00\[^\n\]*\n" { set x [expr $x+1] } | |
1777 | -re " +\[0-9\]+ 0050 01416B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1778 | -re " +\[0-9\]+ 0056 01416B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } | |
1779 | -re " +\[0-9\]+ 005e 0000\[^\n\]*\n" { set x [expr $x+1] } | |
1780 | -re " +\[0-9\]+ 0060 5670\[^\n\]*\n" { set x [expr $x+1] } | |
1781 | -re " +\[0-9\]+ 0062 5470\[^\n\]*\n" { set x [expr $x+1] } | |
1782 | -re " +\[0-9\]+ 0064 0180\[^\n\]*\n" { set x [expr $x+1] } | |
1783 | -re " +\[0-9\]+ 0066 0208\[^\n\]*\n" { set x [expr $x+1] } | |
1784 | -re " +\[0-9\]+ 0068 0218\[^\n\]*\n" { set x [expr $x+1] } | |
1785 | -re " +\[0-9\]+ 006a 01406980\[^\n\]*\n" { set x [expr $x+1] } | |
1786 | -re " +\[0-9\]+ 006e 01406F80\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } | |
1787 | -re " +\[0-9\]+ 0074 01407800\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } | |
1788 | -re " +\[0-9\]+ 007e 01406D80\[^\n\]*\n" { set x [expr $x+1] } | |
1789 | -re " +\[0-9\]+ 0082 01406B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1790 | -re " +\[0-9\]+ 0088 01406BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } | |
1791 | -re " +\[0-9\]+ 0090 01416980\[^\n\]*\n" { set x [expr $x+1] } | |
1792 | -re " +\[0-9\]+ 0094 01416F80\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } | |
1793 | -re " +\[0-9\]+ 009a 01417800\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } | |
1794 | -re " +\[0-9\]+ 00a4 01416D80\[^\n\]*\n" { set x [expr $x+1] } | |
1795 | -re " +\[0-9\]+ 00a8 01416B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1796 | -re " +\[0-9\]+ 00ae 01416BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } | |
1797 | eof { break } | |
1798 | } | |
1799 | } | |
1800 | ||
1801 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1802 | # isn't needed, but just in case, please keep it in for now. | |
1803 | gas_finish | |
1804 | ||
1805 | # Did we find what we were looking for? If not, flunk it. | |
1806 | if [expr $x == 36] then { pass $testname } else { fail $testname } | |
1807 | ||
1808 | setup_xfail "h8300*-*-*" | |
1809 | fail "h8300s movfpe/movtpe tests" | |
1810 | } | |
1811 | ||
1812 | proc do_h8300s_movb {} { | |
1813 | set testname "movbs.s: h8300s movb tests" | |
1814 | set x 0 | |
1815 | ||
1816 | gas_start "movbs.s" "-al" | |
1817 | ||
1818 | # Check each instruction bit pattern to verify it got | |
1819 | # assembled correctly. | |
1820 | while 1 { | |
1821 | expect { | |
1822 | -re " +\[0-9\]+ 0000 0C89\[^\n\]*\n" { set x [expr $x+1] } | |
1823 | -re " +\[0-9\]+ 0002 F810\[^\n\]*\n" { set x [expr $x+1] } | |
1824 | -re " +\[0-9\]+ 0004 6818\[^\n\]*\n" { set x [expr $x+1] } | |
1825 | -re " +\[0-9\]+ 0006 6E180010\[^\n\]*\n" { set x [expr $x+1] } | |
1826 | -re " +\[0-9\]+ 000a 78106A28\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } | |
1827 | -re " +\[0-9\]+ 0012 6C18\[^\n\]*\n" { set x [expr $x+1] } | |
1828 | -re " +\[0-9\]+ 0014 2810\[^\n\]*\n" { set x [expr $x+1] } | |
1829 | -re " +\[0-9\]+ 0016 6A080000\[^\n\]*\n" { set x [expr $x+1] } | |
1830 | -re " +\[0-9\]+ 001a 6A280000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1831 | -re " +\[0-9\]+ 0020 6898\[^\n\]*\n" { set x [expr $x+1] } | |
1832 | -re " +\[0-9\]+ 0022 6E980010\[^\n\]*\n" { set x [expr $x+1] } | |
1833 | -re " +\[0-9\]+ 0026 78106AA8\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } | |
1834 | -re " +\[0-9\]+ 002e 6C98\[^\n\]*\n" { set x [expr $x+1] } | |
1835 | -re " +\[0-9\]+ 0030 3810\[^\n\]*\n" { set x [expr $x+1] } | |
1836 | -re " +\[0-9\]+ 0032 6A880000\[^\n\]*\n" { set x [expr $x+1] } | |
1837 | -re " +\[0-9\]+ 0036 6AA80000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1838 | eof { break } | |
1839 | } | |
1840 | } | |
1841 | ||
1842 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1843 | # isn't needed, but just in case, please keep it in for now. | |
1844 | gas_finish | |
1845 | ||
1846 | # Did we find what we were looking for? If not, flunk it. | |
1847 | if [expr $x == 16] then { pass $testname } else { fail $testname } | |
1848 | } | |
1849 | ||
1850 | proc do_h8300s_movw {} { | |
1851 | set testname "movws.s: h8300s movw tests" | |
1852 | set x 0 | |
1853 | ||
1854 | gas_start "movws.s" "-al" | |
1855 | ||
1856 | # Check each instruction bit pattern to verify it got | |
1857 | # assembled correctly. | |
1858 | while 1 { | |
1859 | expect { | |
1860 | -re " +\[0-9\]+ 0000 0D01\[^\n\]*\n" { set x [expr $x+1] } | |
1861 | -re " +\[0-9\]+ 0002 79000010\[^\n\]*\n" { set x [expr $x+1] } | |
1862 | -re " +\[0-9\]+ 0006 6910\[^\n\]*\n" { set x [expr $x+1] } | |
1863 | -re " +\[0-9\]+ 0008 6F100010\[^\n\]*\n" { set x [expr $x+1] } | |
1864 | -re " +\[0-9\]+ 000c 78106B20\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } | |
1865 | -re " +\[0-9\]+ 0014 6D10\[^\n\]*\n" { set x [expr $x+1] } | |
1866 | -re " +\[0-9\]+ 0016 6B000000\[^\n\]*\n" { set x [expr $x+1] } | |
1867 | -re " +\[0-9\]+ 001a 6B200000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1868 | -re " +\[0-9\]+ 0020 6990\[^\n\]*\n" { set x [expr $x+1] } | |
1869 | -re " +\[0-9\]+ 0022 6F900010\[^\n\]*\n" { set x [expr $x+1] } | |
1870 | -re " +\[0-9\]+ 0026 78106BA0\[^\n\]*\n +\[0-9\]+ +00000020\[^\n\]*\n" { set x [expr $x+1] } | |
1871 | -re " +\[0-9\]+ 002e 6D90\[^\n\]*\n" { set x [expr $x+1] } | |
1872 | -re " +\[0-9\]+ 0030 6B800000\[^\n\]*\n" { set x [expr $x+1] } | |
1873 | -re " +\[0-9\]+ 0034 6BA00000\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1874 | eof { break } | |
1875 | } | |
1876 | } | |
1877 | ||
1878 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1879 | # isn't needed, but just in case, please keep it in for now. | |
1880 | gas_finish | |
1881 | ||
1882 | # Did we find what we were looking for? If not, flunk it. | |
1883 | if [expr $x == 14] then { pass $testname } else { fail $testname } | |
1884 | } | |
1885 | ||
1886 | ||
1887 | proc do_h8300s_movl {} { | |
1888 | set testname "movls.s: h8300s movl tests" | |
1889 | set x 0 | |
1890 | ||
1891 | gas_start "movls.s" "-al" | |
1892 | ||
1893 | # Check each instruction bit pattern to verify it got | |
1894 | # assembled correctly. | |
1895 | while 1 { | |
1896 | expect { | |
1897 | -re " +\[0-9\]+ 0000 0F81\[^\n\]*\n" { set x [expr $x+1] } | |
1898 | -re " +\[0-9\]+ 0002 7A000000\[^\n\]*\n +\[0-9\]+ +0040\[^\n\]*\n" { set x [expr $x+1] } | |
1899 | -re " +\[0-9\]+ 0008 01006910\[^\n\]*\n" { set x [expr $x+1] } | |
1900 | -re " +\[0-9\]+ 000c 01006F10\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } | |
1901 | -re " +\[0-9\]+ 0012 01007810\[^\n\]*\n +\[0-9\]+ +6B200000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } | |
1902 | -re " +\[0-9\]+ 001c 01006D10\[^\n\]*\n" { set x [expr $x+1] } | |
1903 | -re " +\[0-9\]+ 0020 01006B00\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1904 | -re " +\[0-9\]+ 0026 01006B20\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } | |
1905 | -re " +\[0-9\]+ 002e 01006990\[^\n\]*\n" { set x [expr $x+1] } | |
1906 | -re " +\[0-9\]+ 0032 01006F90\[^\n\]*\n +\[0-9\]+ +0010\[^\n\]*\n" { set x [expr $x+1] } | |
1907 | -re " +\[0-9\]+ 0038 01007890\[^\n\]*\n +\[0-9\]+ +6BA00000\[^\n\]*\n +\[0-9\]+ +0020\[^\n\]*\n" { set x [expr $x+1] } | |
1908 | -re " +\[0-9\]+ 0042 01006D90\[^\n\]*\n" { set x [expr $x+1] } | |
1909 | -re " +\[0-9\]+ 0046 01006B80\[^\n\]*\n +\[0-9\]+ +0000\[^\n\]*\n" { set x [expr $x+1] } | |
1910 | -re " +\[0-9\]+ 004c 01006BA0\[^\n\]*\n +\[0-9\]+ +00000000\[^\n\]*\n" { set x [expr $x+1] } | |
1911 | eof { break } | |
1912 | } | |
1913 | } | |
1914 | ||
1915 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1916 | # isn't needed, but just in case, please keep it in for now. | |
1917 | gas_finish | |
1918 | ||
1919 | # Did we find what we were looking for? If not, flunk it. | |
1920 | if [expr $x == 14] then { pass $testname } else { fail $testname } | |
1921 | } | |
1922 | ||
1923 | proc do_h8300s_pushpop {} { | |
1924 | set testname "pushpops.s: h8300s pushpop tests" | |
1925 | set x 0 | |
1926 | ||
1927 | gas_start "pushpops.s" "-al" | |
1928 | ||
1929 | # Check each instruction bit pattern to verify it got | |
1930 | # assembled correctly. | |
1931 | while 1 { | |
1932 | expect { | |
1933 | -re " +\[0-9\]+ 0000 6D70\[^\n\]*\n" { set x [expr $x+1] } | |
1934 | -re " +\[0-9\]+ 0002 01006D70\[^\n\]*\n" { set x [expr $x+1] } | |
1935 | -re " +\[0-9\]+ 0006 6DF0\[^\n\]*\n" { set x [expr $x+1] } | |
1936 | -re " +\[0-9\]+ 0008 01006DF0\[^\n\]*\n" { set x [expr $x+1] } | |
1937 | eof { break } | |
1938 | } | |
1939 | } | |
1940 | ||
1941 | # This was intended to do any cleanup necessary. It kinda looks like it | |
1942 | # isn't needed, but just in case, please keep it in for now. | |
1943 | gas_finish | |
1944 | ||
1945 | # Did we find what we were looking for? If not, flunk it. | |
1946 | if [expr $x == 4] then { pass $testname } else { fail $testname } | |
1947 | } | |
1948 | ||
1949 | proc do_h8300s_rotate_shift {} { | |
1950 | set testname "rotshs.s: h8300s rotate and shift tests" | |
1951 | set x 0 | |
1952 | ||
1953 | gas_start "rotshs.s" "-al" | |
1954 | ||
1955 | # Check each instruction bit pattern to verify it got | |
1956 | # assembled correctly. | |
1957 | while 1 { | |
1958 | expect { | |
1959 | -re " +\[0-9\]+ 0000 1288\[^\n\]*\n" { set x [expr $x+1] } | |
1960 | -re " +\[0-9\]+ 0002 12C8\[^\n\]*\n" { set x [expr $x+1] } | |
1961 | -re " +\[0-9\]+ 0004 1290\[^\n\]*\n" { set x [expr $x+1] } | |
1962 | -re " +\[0-9\]+ 0006 12D0\[^\n\]*\n" { set x [expr $x+1] } | |
1963 | -re " +\[0-9\]+ 0008 12B0\[^\n\]*\n" { set x [expr $x+1] } | |
1964 | -re " +\[0-9\]+ 000a 12F0\[^\n\]*\n" { set x [expr $x+1] } | |
1965 | -re " +\[0-9\]+ 000c 1388\[^\n\]*\n" { set x [expr $x+1] } | |
1966 | -re " +\[0-9\]+ 000e 13C8\[^\n\]*\n" { set x [expr $x+1] } | |
1967 | -re " +\[0-9\]+ 0010 1390\[^\n\]*\n" { set x [expr $x+1] } | |
1968 | -re " +\[0-9\]+ 0012 13D0\[^\n\]*\n" { set x [expr $x+1] } | |
1969 | -re " +\[0-9\]+ 0014 13B0\[^\n\]*\n" { set x [expr $x+1] } | |
1970 | -re " +\[0-9\]+ 0016 13F0\[^\n\]*\n" { set x [expr $x+1] } | |
1971 | -re " +\[0-9\]+ 0018 1208\[^\n\]*\n" { set x [expr $x+1] } | |
1972 | -re " +\[0-9\]+ 001a 1248\[^\n\]*\n" { set x [expr $x+1] } | |
1973 | -re " +\[0-9\]+ 001c 1210\[^\n\]*\n" { set x [expr $x+1] } | |
1974 | -re " +\[0-9\]+ 001e 1250\[^\n\]*\n" { set x [expr $x+1] } | |
1975 | -re " +\[0-9\]+ 0020 1230\[^\n\]*\n" { set x [expr $x+1] } | |
1976 | -re " +\[0-9\]+ 0022 1270\[^\n\]*\n" { set x [expr $x+1] } | |
1977 | -re " +\[0-9\]+ 0024 1308\[^\n\]*\n" { set x [expr $x+1] } | |
1978 | -re " +\[0-9\]+ 0026 1348\[^\n\]*\n" { set x [expr $x+1] } | |
1979 | -re " +\[0-9\]+ 0028 1310\[^\n\]*\n" { set x [expr $x+1] } | |
1980 | -re " +\[0-9\]+ 002a 1350\[^\n\]*\n" { set x [expr $x+1] } | |
1981 | -re " +\[0-9\]+ 002c 1330\[^\n\]*\n" { set x [expr $x+1] } | |
1982 | -re " +\[0-9\]+ 002e 1370\[^\n\]*\n" { set x [expr $x+1] } | |
1983 | -re " +\[0-9\]+ 0030 1088\[^\n\]*\n" { set x [expr $x+1] } | |
1984 | -re " +\[0-9\]+ 0032 10C8\[^\n\]*\n" { set x [expr $x+1] } | |
1985 | -re " +\[0-9\]+ 0034 1090\[^\n\]*\n" { set x [expr $x+1] } | |
1986 | -re " +\[0-9\]+ 0036 10D0\[^\n\]*\n" { set x [expr $x+1] } | |
1987 | -re " +\[0-9\]+ 0038 10B0\[^\n\]*\n" { set x [expr $x+1] } | |
1988 | -re " +\[0-9\]+ 003a 10F0\[^\n\]*\n" { set x [expr $x+1] } | |
1989 | -re " +\[0-9\]+ 003c 1188\[^\n\]*\n" { set x [expr $x+1] } | |
1990 | -re " +\[0-9\]+ 003e 11C8\[^\n\]*\n" { set x [expr $x+1] } | |
1991 | -re " +\[0-9\]+ 0040 1190\[^\n\]*\n" { set x [expr $x+1] } | |
1992 | -re " +\[0-9\]+ 0042 11D0\[^\n\]*\n" { set x [expr $x+1] } | |
1993 | -re " +\[0-9\]+ 0044 11B0\[^\n\]*\n" { set x [expr $x+1] } | |
1994 | -re " +\[0-9\]+ 0046 11F0\[^\n\]*\n" { set x [expr $x+1] } | |
1995 | -re " +\[0-9\]+ 0048 1008\[^\n\]*\n" { set x [expr $x+1] } | |
1996 | -re " +\[0-9\]+ 004a 1048\[^\n\]*\n" { set x [expr $x+1] } | |
1997 | -re " +\[0-9\]+ 004c 1010\[^\n\]*\n" { set x [expr $x+1] } | |
1998 | -re " +\[0-9\]+ 004e 1050\[^\n\]*\n" { set x [expr $x+1] } | |
1999 | -re " +\[0-9\]+ 0050 1030\[^\n\]*\n" { set x [expr $x+1] } | |
2000 | -re " +\[0-9\]+ 0052 1070\[^\n\]*\n" { set x [expr $x+1] } | |
2001 | -re " +\[0-9\]+ 0054 1108\[^\n\]*\n" { set x [expr $x+1] } | |
2002 | -re " +\[0-9\]+ 0056 1148\[^\n\]*\n" { set x [expr $x+1] } | |
2003 | -re " +\[0-9\]+ 0058 1110\[^\n\]*\n" { set x [expr $x+1] } | |
2004 | -re " +\[0-9\]+ 005a 1150\[^\n\]*\n" { set x [expr $x+1] } | |
2005 | -re " +\[0-9\]+ 005c 1130\[^\n\]*\n" { set x [expr $x+1] } | |
2006 | -re " +\[0-9\]+ 005e 1170\[^\n\]*\n" { set x [expr $x+1] } | |
2007 | eof { break } | |
2008 | } | |
2009 | } | |
2010 | ||
2011 | # This was intended to do any cleanup necessary. It kinda looks like it | |
2012 | # isn't needed, but just in case, please keep it in for now. | |
2013 | gas_finish | |
2014 | ||
2015 | # Did we find what we were looking for? If not, flunk it. | |
2016 | if [expr $x == 48] then { pass $testname } else { fail $testname } | |
2017 | } | |
2018 | ||
2019 | proc do_h8300s_extend {} { | |
2020 | set testname "extends.s: h8300s extend tests" | |
2021 | set x 0 | |
2022 | ||
2023 | gas_start "extends.s" "-al" | |
2024 | ||
2025 | # Check each instruction bit pattern to verify it got | |
2026 | # assembled correctly. | |
2027 | while 1 { | |
2028 | expect { | |
2029 | -re " +\[0-9\]+ 0000 17D0\[^\n\]*\n" { set x [expr $x+1] } | |
2030 | -re " +\[0-9\]+ 0002 17F0\[^\n\]*\n" { set x [expr $x+1] } | |
2031 | -re " +\[0-9\]+ 0004 1750\[^\n\]*\n" { set x [expr $x+1] } | |
2032 | -re " +\[0-9\]+ 0006 1770\[^\n\]*\n" { set x [expr $x+1] } | |
2033 | eof { break } | |
2034 | } | |
2035 | } | |
2036 | ||
2037 | # This was intended to do any cleanup necessary. It kinda looks like it | |
2038 | # isn't needed, but just in case, please keep it in for now. | |
2039 | gas_finish | |
2040 | ||
2041 | # Did we find what we were looking for? If not, flunk it. | |
2042 | if [expr $x == 4] then { pass $testname } else { fail $testname } | |
2043 | } | |
2044 | ||
2045 | proc do_h8300s_mac {} { | |
2046 | set testname "macs.s: h8300s mac tests" | |
2047 | set x 0 | |
2048 | ||
2049 | gas_start "macs.s" "-al" | |
2050 | ||
2051 | # Check each instruction bit pattern to verify it got | |
2052 | # assembled correctly. | |
2053 | while 1 { | |
2054 | expect { | |
fbe1e41f NC |
2055 | -re " +\[0-9\]+ 0000 01A0\[^\n\]*\n" { set x [expr $x+1] } |
2056 | -re " +\[0-9\]+ 0002 0324\[^\n\]*\n" { set x [expr $x+1] } | |
2057 | -re " +\[0-9\]+ 0004 0335\[^\n\]*\n" { set x [expr $x+1] } | |
2058 | -re " +\[0-9\]+ 0006 01606D45\[^\n\]*\n" { set x [expr $x+1] } | |
2059 | -re " +\[0-9\]+ 000a 0224\[^\n\]*\n" { set x [expr $x+1] } | |
2060 | -re " +\[0-9\]+ 000c 0235\[^\n\]*\n" { set x [expr $x+1] } | |
252b5132 RH |
2061 | eof { break } |
2062 | } | |
2063 | } | |
2064 | ||
2065 | # This was intended to do any cleanup necessary. It kinda looks like it | |
2066 | # isn't needed, but just in case, please keep it in for now. | |
2067 | gas_finish | |
2068 | ||
2069 | # Did we find what we were looking for? If not, flunk it. | |
2070 | if [expr $x == 6] then { pass $testname } else { fail $testname } | |
2071 | } | |
2072 | ||
2073 | proc do_h8300s_multiple {} { | |
2074 | set testname "multiples.s: h8300s multiple tests" | |
2075 | set x 0 | |
2076 | ||
2077 | gas_start "multiples.s" "-al" | |
2078 | ||
2079 | # Check each instruction bit pattern to verify it got | |
2080 | # assembled correctly. | |
2081 | while 1 { | |
2082 | expect { | |
2083 | -re " +\[0-9\]+ 0000 01106D71\[^\n\]*\n" { set x [expr $x+1] } | |
2084 | -re " +\[0-9\]+ 0004 01206D72\[^\n\]*\n" { set x [expr $x+1] } | |
2085 | -re " +\[0-9\]+ 0008 01306D73\[^\n\]*\n" { set x [expr $x+1] } | |
2086 | -re " +\[0-9\]+ 000c 01106DF0\[^\n\]*\n" { set x [expr $x+1] } | |
2087 | -re " +\[0-9\]+ 0010 01206DF0\[^\n\]*\n" { set x [expr $x+1] } | |
2088 | -re " +\[0-9\]+ 0014 01306DF0\[^\n\]*\n" { set x [expr $x+1] } | |
4892e510 NC |
2089 | -re " +\[0-9\]+ 0018 01106D73\[^\n\]*\n" { set x [expr $x+1] } |
2090 | -re " +\[0-9\]+ 001c 01106DF2\[^\n\]*\n" { set x [expr $x+1] } | |
2091 | -re " +\[0-9\]+ 0020 01106D75\[^\n\]*\n" { set x [expr $x+1] } | |
2092 | -re " +\[0-9\]+ 0024 01206D76\[^\n\]*\n" { set x [expr $x+1] } | |
2093 | -re " +\[0-9\]+ 0028 01106DF4\[^\n\]*\n" { set x [expr $x+1] } | |
2094 | -re " +\[0-9\]+ 002c 01206DF4\[^\n\]*\n" { set x [expr $x+1] } | |
2095 | ||
252b5132 RH |
2096 | eof { break } |
2097 | } | |
2098 | } | |
2099 | ||
2100 | # This was intended to do any cleanup necessary. It kinda looks like it | |
2101 | # isn't needed, but just in case, please keep it in for now. | |
2102 | gas_finish | |
2103 | ||
2104 | # Did we find what we were looking for? If not, flunk it. | |
4892e510 | 2105 | if [expr $x == 12] then { pass $testname } else { fail $testname } |
252b5132 RH |
2106 | } |
2107 | ||
2108 | proc do_h8300h_mov32bug {} { | |
2109 | set testname "mov32bug.s: h8300h mov32bug test" | |
2110 | set x 0 | |
2111 | ||
2112 | if [gas_test_old "mov32bug.s" "" "Proper relocation for mov.l (part 1)"] then { | |
2113 | objdump_start_no_subdir "a.out" "-r" | |
2114 | ||
2115 | while 1 { | |
2116 | expect { | |
046e56f7 | 2117 | -re "00000002\[^\n\]*32\[^\n\]*_a-0x77359400\[^\n\]*\n" |
252b5132 RH |
2118 | { set x [expr $x+1] } |
2119 | timeout { perror "timeout\n; break } | |
2120 | eof { break } | |
2121 | } | |
2122 | } | |
2123 | } | |
2124 | ||
2125 | # This was intended to do any cleanup necessary. It kinda looks like it | |
2126 | # isn't needed, but just in case, please keep it in for now. | |
2127 | objdump_finish | |
2128 | ||
2129 | # Did we find what we were looking for? If not, flunk it. | |
2130 | if [expr $x == 1] then { pass $testname } else { fail $testname } | |
2131 | } | |
2132 | ||
aff16937 NC |
2133 | proc do_h8300hn_addressgen {} { |
2134 | set testname "symaddgen.s: h8300hn symbol address generation" | |
2135 | set x 0 | |
2136 | ||
2137 | gas_start "symaddgen.s" "-al" | |
2138 | ||
2139 | # Check each instruction bit pattern to verify it got | |
2140 | # assembled correctly. | |
2141 | while 1 { | |
2142 | expect { | |
2143 | -re " +\[0-9\]+ .* 01006DF6\[^\n\]*\n" { set x [expr $x+1] } | |
2144 | -re " +\[0-9\]+ .* 0D76\[^\n\]*\n" { set x [expr $x+1] } | |
2145 | -re " +\[0-9\]+ .* 790207D0\[^\n\]*\n" { set x [expr $x+1] } | |
2146 | -re " +\[0-9\]+ .* 6B82F020\[^\n\]*\n" { set x [expr $x+1] } | |
2147 | -re " +\[0-9\]+ .* 79022710\[^\n\]*\n" { set x [expr $x+1] } | |
2148 | -re " +\[0-9\]+ .* 6B820000\[^\n\]*\n" { set x [expr $x+1] } | |
2149 | -re " +\[0-9\]+ .* 01006D76\[^\n\]*\n" { set x [expr $x+1] } | |
2150 | -re " +\[0-9\]+ .* 5470\[^\n\]*\n" { set x [expr $x+1] } | |
2151 | ||
2152 | eof { break } | |
2153 | } | |
2154 | } | |
2155 | # This was intended to do any cleanup necessary. It kinda looks like it | |
2156 | # isn't needed, but just in case, please keep it in for now. | |
2157 | gas_finish | |
2158 | # Did we find what we were looking for? If not, flunk it. | |
2159 | if [expr $x == 8] then { pass $testname } else { fail $testname } | |
2160 | } | |
2161 | ||
92868b6e NC |
2162 | proc do_h8300_addsubrxcheck {} { |
2163 | set testname "addsubrxcheck.s: h8300 check rx generation for adds subs instructions" | |
2164 | set x 0 | |
2165 | ||
2166 | gas_start "addsubrxcheck.s" "-al" | |
2167 | ||
2168 | # Check each instruction bit pattern to verify it got | |
2169 | # assembled correctly. | |
2170 | while 1 { | |
2171 | expect { | |
2172 | -re " +\[0-9\]+ .* 6DF6\[^\n\]*\n" { set x [expr $x+1] } | |
2173 | -re " +\[0-9\]+ .* 0D76\[^\n\]*\n" { set x [expr $x+1] } | |
2174 | -re " +\[0-9\]+ .* 1B87\[^\n\]*\n" { set x [expr $x+1] } | |
2175 | -re " +\[0-9\]+ .* 6F62FFFE\[^\n\]*\n" { set x [expr $x+1] } | |
2176 | -re " +\[0-9\]+ .* 1B82\[^\n\]*\n" { set x [expr $x+1] } | |
2177 | -re " +\[0-9\]+ .* 6FE2FFFE\[^\n\]*\n" { set x [expr $x+1] } | |
2178 | -re " +\[0-9\]+ .* 1922\[^\n\]*\n" { set x [expr $x+1] } | |
2179 | -re " +\[0-9\]+ .* 0D20\[^\n\]*\n" { set x [expr $x+1] } | |
2180 | -re " +\[0-9\]+ .* 0B87\[^\n\]*\n" { set x [expr $x+1] } | |
2181 | -re " +\[0-9\]+ .* 6D76\[^\n\]*\n" { set x [expr $x+1] } | |
2182 | -re " +\[0-9\]+ .* 5470\[^\n\]*\n" { set x [expr $x+1] } | |
2183 | ||
2184 | eof { break } | |
2185 | } | |
2186 | } | |
2187 | # This was intended to do any cleanup necessary. It kinda looks like it | |
2188 | # isn't needed, but just in case, please keep it in for now. | |
2189 | gas_finish | |
2190 | # Did we find what we were looking for? If not, flunk it. | |
2191 | if [expr $x == 11] then { pass $testname } else { fail $testname } | |
2192 | } | |
2193 | ||
252b5132 RH |
2194 | if [istarget h8300*-*-*] then { |
2195 | # Test the basic h8300 instruction parser | |
2196 | do_h8300_add_sub | |
2197 | do_h8300_logical | |
252b5132 RH |
2198 | do_h8300_bitops1 |
2199 | do_h8300_bitops2 | |
2200 | do_h8300_bitops3 | |
2201 | do_h8300_bitops4 | |
252b5132 RH |
2202 | do_h8300_compare |
2203 | do_h8300_decimal | |
2204 | do_h8300_incdec | |
2205 | do_h8300_divmul | |
2206 | do_h8300_misc | |
2207 | do_h8300_movb | |
2208 | do_h8300_movw | |
2209 | do_h8300_pushpop | |
2210 | do_h8300_rotate_shift | |
aff16937 | 2211 | do_h8300hn_addressgen |
252b5132 | 2212 | |
92868b6e NC |
2213 | do_h8300_addsubrxcheck |
2214 | ||
252b5132 RH |
2215 | # Now test the h8300h instruction parser |
2216 | do_h8300h_add_sub | |
2217 | do_h8300h_logical | |
252b5132 RH |
2218 | do_h8300h_bitops1 |
2219 | do_h8300h_bitops2 | |
2220 | do_h8300h_bitops3 | |
2221 | do_h8300h_bitops4 | |
252b5132 RH |
2222 | do_h8300h_compare |
2223 | do_h8300h_decimal | |
2224 | do_h8300h_incdec | |
2225 | do_h8300h_divmul | |
2226 | do_h8300h_misc | |
2227 | do_h8300h_movb | |
2228 | do_h8300h_movw | |
2229 | do_h8300h_movl | |
2230 | do_h8300_pushpop | |
2231 | do_h8300h_rotate_shift | |
2232 | do_h8300h_extend | |
2233 | ||
2234 | # Now test the h8300s instruction parser | |
2235 | do_h8300s_add_sub | |
2236 | do_h8300s_logical | |
252b5132 RH |
2237 | do_h8300s_bitops1 |
2238 | do_h8300s_bitops2 | |
2239 | do_h8300s_bitops3 | |
2240 | do_h8300s_bitops4 | |
252b5132 RH |
2241 | do_h8300s_compare |
2242 | do_h8300s_decimal | |
2243 | do_h8300s_incdec | |
2244 | do_h8300s_divmul | |
2245 | do_h8300s_misc | |
2246 | do_h8300s_movb | |
2247 | do_h8300s_movw | |
2248 | do_h8300s_movl | |
2249 | do_h8300_pushpop | |
2250 | do_h8300s_rotate_shift | |
2251 | do_h8300s_extend | |
2252 | do_h8300s_mac | |
2253 | do_h8300s_multiple | |
2254 | ||
2255 | do_h8300h_mov32bug | |
2256 | ||
2257 | # Now some random tests | |
252b5132 | 2258 | gas_test "cmpsi2.s" "" "" "cmpsi2.s" |
af7329f0 NC |
2259 | |
2260 | run_dump_test "pr3134" | |
252b5132 | 2261 | } |