oops
[platform/upstream/binutils.git] / gas / testsuite / gas / mn10300 / basic.exp
1 # Copyright (C) 1996, 2000, 2002 Free Software Foundation, Inc.
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
16
17 # Please email any bugs, comments, and/or additions to this file to:
18 # DejaGnu@cygnus.com
19
20 # Written by Cygnus Support.
21
22 proc do_add {} {
23     set testname "add.s: Add operations"
24     set x 0
25
26     gas_start "add.s" "-al"
27
28     # Instead of having a variable for each match string just increment the
29     # total number of matches seen.  That's simpler when testing large numbers
30     # of instructions (as these tests to).
31     while 1 {
32         expect {
33             -re "^ +\[0-9\]+ 0000 E6\[^\n\]*\n" { set x [expr $x+1] }
34             -re "^ +\[0-9\]+ 0001 F16B\[^\n\]*\n"       { set x [expr $x+1] }
35             -re "^ +\[0-9\]+ 0003 F17E\[^\n\]*\n"       { set x [expr $x+1] }
36             -re "^ +\[0-9\]+ 0005 F159\[^\n\]*\n"       { set x [expr $x+1] }
37             -re "^ +\[0-9\]+ 0007 2910\[^\n\]*\n"       { set x [expr $x+1] }
38             -re "^ +\[0-9\]+ 0009 FAC20001\[^\n\]*\n"   { set x [expr $x+1] }
39             -re "^ +\[0-9\]+ 000d FCC3FFFF\[^\n\]*\n"   { set x [expr $x+1] }
40             -re "^ +8 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
41             -re "^ +\[0-9\]+ 0013 2110\[^\n\]*\n"       { set x [expr $x+1] }
42             -re "^ +\[0-9\]+ 0015 FAD20001\[^\n\]*\n"   { set x [expr $x+1] }
43             -re "^ +\[0-9\]+ 0019 FCD3FFFF\[^\n\]*\n"   { set x [expr $x+1] }
44             -re "^ +11 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
45             -re "^ +\[0-9\]+ 001f F8FE10\[^\n\]*\n"     { set x [expr $x+1] }
46             -re "^ +\[0-9\]+ 0022 FAFE0001\[^\n\]*\n"   { set x [expr $x+1] }
47             -re "^ +\[0-9\]+ 0026 FCFEFFFF\[^\n\]*\n"   { set x [expr $x+1] }
48             -re "^ +14 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
49             -re "^ +\[0-9\]+ 002c F146\[^\n\]*\n"       { set x [expr $x+1] }
50             -re "\[^\n\]*\n"                            { }
51             timeout                             { perror "timeout\n"; break }
52             eof                                 { break }
53         }
54     }
55
56     # This was intended to do any cleanup necessary.  It kinda looks like it
57     # isn't needed, but just in case, please keep it in for now.
58     gas_finish
59
60     # Did we find what we were looking for?  If not, flunk it.
61     if [expr $x==17] then { pass $testname } else { fail $testname }
62 }
63
64 proc do_bcc {} {
65     set testname "bcc.s: Bcc tests"
66     set x 0
67
68     gas_start "bcc.s" "-al"
69
70     # Instead of having a variable for each match string just increment the
71     # total number of matches seen.  That's simpler when testing large numbers
72     # of instructions (as these tests to).
73     while 1 {
74         expect {
75             -re "^ +\[0-9\]+ 0000 C800\[^\n\]*\n"       { set x [expr $x+1] }
76             -re "^ +\[0-9\]+ 0002 C900\[^\n\]*\n"       { set x [expr $x+1] }
77             -re "^ +\[0-9\]+ 0004 C100\[^\n\]*\n"       { set x [expr $x+1] }
78             -re "^ +\[0-9\]+ 0006 C200\[^\n\]*\n"       { set x [expr $x+1] }
79             -re "^ +\[0-9\]+ 0008 C300\[^\n\]*\n"       { set x [expr $x+1] }
80             -re "^ +\[0-9\]+ 000a C000\[^\n\]*\n"       { set x [expr $x+1] }
81             -re "^ +\[0-9\]+ 000c C500\[^\n\]*\n"       { set x [expr $x+1] }
82             -re "^ +\[0-9\]+ 000e C600\[^\n\]*\n"       { set x [expr $x+1] }
83             -re "^ +\[0-9\]+ 0010 C700\[^\n\]*\n"       { set x [expr $x+1] }
84             -re "^ +\[0-9\]+ 0012 C400\[^\n\]*\n"       { set x [expr $x+1] }
85             -re "^ +\[0-9\]+ 0014 F8E800\[^\n\]*\n"     { set x [expr $x+1] }
86             -re "^ +\[0-9\]+ 0017 F8E900\[^\n\]*\n"     { set x [expr $x+1] }
87             -re "^ +\[0-9\]+ 001a F8EA00\[^\n\]*\n"     { set x [expr $x+1] }
88             -re "^ +\[0-9\]+ 001d F8EB00\[^\n\]*\n"     { set x [expr $x+1] }
89             -re "^ +\[0-9\]+ 0020 CA00\[^\n\]*\n"       { set x [expr $x+1] }
90             -re "\[^\n\]*\n"                            { }
91             timeout                             { perror "timeout\n"; break }
92             eof                                 { break }
93         }
94     }
95
96     # This was intended to do any cleanup necessary.  It kinda looks like it
97     # isn't needed, but just in case, please keep it in for now.
98     gas_finish
99
100     # Did we find what we were looking for?  If not, flunk it.
101     if [expr $x==15] then { pass $testname } else { fail $testname }
102 }
103
104 proc do_bit {} {
105     set testname "bit.s: bit tests"
106     set x 0
107
108     gas_start "bit.s" "-al"
109
110     # Instead of having a variable for each match string just increment the
111     # total number of matches seen.  That's simpler when testing large numbers
112     # of instructions (as these tests to).
113     while 1 {
114         expect {
115             -re "^ +\[0-9\]+ 0000 F8ED40\[^\n\]*\n"     { set x [expr $x+1] }
116             -re "^ +\[0-9\]+ 0003 FAEE0020\[^\n\]*\n"   { set x [expr $x+1] }
117             -re "^ +\[0-9\]+ 0007 FCEFFFFF\[^\n\]*\n"   { set x [expr $x+1] }
118             -re "^ +4 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
119             -re "^ +\[0-9\]+ 000d FAF90840\[^\n\]*\n"   { set x [expr $x+1] }
120             -re "^ +\[0-9\]+ 0011 FE02FFFF\[^\n\]*\n"   { set x [expr $x+1] }
121             -re "^ +6 +010040\[^\n\]*\n"                { set x [expr $x+1] }
122             -re "^ +\[0-9\]+ 0018 F086\[^\n\]*\n"       { set x [expr $x+1] }
123             -re "^ +\[0-9\]+ 001a FAF10840\[^\n\]*\n"   { set x [expr $x+1] }
124             -re "^ +\[0-9\]+ 001e FE00FFFF\[^\n\]*\n"   { set x [expr $x+1] }
125             -re "^ +9 +010040\[^\n\]*\n"                { set x [expr $x+1] }
126             -re "^ +\[0-9\]+ 0025 F096\[^\n\]*\n"       { set x [expr $x+1] }
127             -re "^ +\[0-9\]+ 0027 FAF50840\[^\n\]*\n"   { set x [expr $x+1] }
128             -re "^ +\[0-9\]+ 002b FE01FFFF\[^\n\]*\n"   { set x [expr $x+1] }
129             -re "^ +12 +010040\[^\n\]*\n"               { set x [expr $x+1] }
130             -re "\[^\n\]*\n"                            { }
131             timeout                             { perror "timeout\n"; break }
132             eof                                 { break }
133         }
134     }
135
136     # This was intended to do any cleanup necessary.  It kinda looks like it
137     # isn't needed, but just in case, please keep it in for now.
138     gas_finish
139
140     # Did we find what we were looking for?  If not, flunk it.
141     if [expr $x==15] then { pass $testname } else { fail $testname }
142 }
143
144 proc do_cmp {} {
145     set testname "cmp.s: cmp tests"
146     set x 0
147
148     gas_start "cmp.s" "-al"
149
150     # Instead of having a variable for each match string just increment the
151     # total number of matches seen.  That's simpler when testing large numbers
152     # of instructions (as these tests to).
153     while 1 {
154         expect {
155             -re "^ +\[0-9\]+ 0000 A6\[^\n\]*\n"         { set x [expr $x+1] }
156             -re "^ +\[0-9\]+ 0001 F1AB\[^\n\]*\n"       { set x [expr $x+1] }
157             -re "^ +\[0-9\]+ 0003 F19F\[^\n\]*\n"       { set x [expr $x+1] }
158             -re "^ +\[0-9\]+ 0005 BE\[^\n\]*\n"         { set x [expr $x+1] }
159             -re "^ +\[0-9\]+ 0006 AF10\[^\n\]*\n"       { set x [expr $x+1] }
160             -re "^ +\[0-9\]+ 0008 FACA0001\[^\n\]*\n"   { set x [expr $x+1] }
161             -re "^ +\[0-9\]+ 000c FCC9FFFF\[^\n\]*\n"   { set x [expr $x+1] }
162             -re "^ +8 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
163             -re "^ +\[0-9\]+ 0012 BF10\[^\n\]*\n"       { set x [expr $x+1] }
164             -re "^ +\[0-9\]+ 0014 FADA0001\[^\n\]*\n"   { set x [expr $x+1] }
165             -re "^ +\[0-9\]+ 0018 FCD9FFFF\[^\n\]*\n"   { set x [expr $x+1] }
166             -re "^ +11 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
167             -re "\[^\n\]*\n"                            { }
168             timeout                             { perror "timeout\n"; break }
169             eof                                 { break }
170         }
171     }
172
173     # This was intended to do any cleanup necessary.  It kinda looks like it
174     # isn't needed, but just in case, please keep it in for now.
175     gas_finish
176
177     # Did we find what we were looking for?  If not, flunk it.
178     if [expr $x==12] then { pass $testname } else { fail $testname }
179 }
180
181 proc do_ext {} {
182     set testname "ext.s: ext tests"
183     set x 0
184
185     gas_start "ext.s" "-al"
186
187     # Instead of having a variable for each match string just increment the
188     # total number of matches seen.  That's simpler when testing large numbers
189     # of instructions (as these tests to).
190     while 1 {
191         expect {
192             -re "^ +\[0-9\]+ 0000 F2D1\[^\n\]*\n"       { set x [expr $x+1] }
193             -re "^ +\[0-9\]+ 0002 12\[^\n\]*\n"         { set x [expr $x+1] }
194             -re "^ +\[0-9\]+ 0003 17\[^\n\]*\n"         { set x [expr $x+1] }
195             -re "^ +\[0-9\]+ 0004 1A\[^\n\]*\n"         { set x [expr $x+1] }
196             -re "^ +\[0-9\]+ 0005 1D\[^\n\]*\n"         { set x [expr $x+1] }
197             -re "\[^\n\]*\n"                            { }
198             timeout                             { perror "timeout\n"; break }
199             eof                                 { break }
200         }
201     }
202
203     # This was intended to do any cleanup necessary.  It kinda looks like it
204     # isn't needed, but just in case, please keep it in for now.
205     gas_finish
206
207     # Did we find what we were looking for?  If not, flunk it.
208     if [expr $x==5] then { pass $testname } else { fail $testname }
209 }
210
211 proc do_extend {} {
212     set testname "extend.s: extended instruction tests"
213     set x 0
214
215     gas_start "extend.s" "-al"
216
217     # Instead of having a variable for each match string just increment the
218     # total number of matches seen.  That's simpler when testing large numbers
219     # of instructions (as these tests to).
220     while 1 {
221         expect {
222             -re "^ +\[0-9\]+ 0000 F505\[^\n\]*\n"       { set x [expr $x+1] }
223             -re "^ +\[0-9\]+ 0002 F6FA\[^\n\]*\n"       { set x [expr $x+1] }
224             -re "^ +\[0-9\]+ 0004 F606\[^\n\]*\n"       { set x [expr $x+1] }
225             -re "^ +\[0-9\]+ 0006 F90210\[^\n\]*\n"     { set x [expr $x+1] }
226             -re "^ +\[0-9\]+ 0009 FB030001\[^\n\]*\n"   { set x [expr $x+1] }
227             -re "^ +\[0-9\]+ 000d FD03FFFF\[^\n\]*\n"   { set x [expr $x+1] }
228             -re "^ +7 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
229             -re "^ +\[0-9\]+ 0013 F616\[^\n\]*\n"       { set x [expr $x+1] }
230             -re "^ +\[0-9\]+ 0015 F91610\[^\n\]*\n"     { set x [expr $x+1] }
231             -re "^ +\[0-9\]+ 0018 FB170001\[^\n\]*\n"   { set x [expr $x+1] }
232             -re "^ +\[0-9\]+ 001c FD17FFFF\[^\n\]*\n"   { set x [expr $x+1] }
233             -re "^ +11 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
234             -re "^ +\[0-9\]+ 0022 F64B\[^\n\]*\n"       { set x [expr $x+1] }
235             -re "^ +\[0-9\]+ 0024 F65E\[^\n\]*\n"       { set x [expr $x+1] }
236             -re "^ +\[0-9\]+ 0026 F676\[^\n\]*\n"       { set x [expr $x+1] }
237             -re "\[^\n\]*\n"                            { }
238             timeout                             { perror "timeout\n"; break }
239             eof                                 { break }
240         }
241     }
242
243     # This was intended to do any cleanup necessary.  It kinda looks like it
244     # isn't needed, but just in case, please keep it in for now.
245     gas_finish
246
247     # Did we find what we were looking for?  If not, flunk it.
248     if [expr $x==15] then { pass $testname } else { fail $testname }
249 }
250
251 proc do_logical {} {
252     set testname "logical.s: logical tests"
253     set x 0
254
255     gas_start "logical.s" "-al"
256
257     # Instead of having a variable for each match string just increment the
258     # total number of matches seen.  That's simpler when testing large numbers
259     # of instructions (as these tests to).
260     while 1 {
261         expect {
262             -re "^ +\[0-9\]+ 0000 F206\[^\n\]*\n"       { set x [expr $x+1] }
263             -re "^ +\[0-9\]+ 0002 F8E27F\[^\n\]*\n"     { set x [expr $x+1] }
264             -re "^ +\[0-9\]+ 0005 FAE3FF7F\[^\n\]*\n"   { set x [expr $x+1] }
265             -re "^ +\[0-9\]+ 0009 FCE3FFFF\[^\n\]*\n"   { set x [expr $x+1] }
266             -re "^ +5 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
267             -re "^ +\[0-9\]+ 000f FAFCFF7F\[^\n\]*\n"   { set x [expr $x+1] }
268             -re "^ +\[0-9\]+ 0013 F216\[^\n\]*\n"       { set x [expr $x+1] }
269             -re "^ +\[0-9\]+ 0015 F8E67F\[^\n\]*\n"     { set x [expr $x+1] }
270             -re "^ +\[0-9\]+ 0018 FAE7FF7F\[^\n\]*\n"   { set x [expr $x+1] }
271             -re "^ +\[0-9\]+ 001c FCE7FFFF\[^\n\]*\n"   { set x [expr $x+1] }
272             -re "^ +10 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
273             -re "^ +\[0-9\]+ 0022 FAFDFF7F\[^\n\]*\n"   { set x [expr $x+1] }
274             -re "^ +\[0-9\]+ 0026 F226\[^\n\]*\n"       { set x [expr $x+1] }
275             -re "^ +\[0-9\]+ 0028 FAEBFF7F\[^\n\]*\n"   { set x [expr $x+1] }
276             -re "^ +\[0-9\]+ 002c FCEBFFFF\[^\n\]*\n"   { set x [expr $x+1] }
277             -re "^ +14 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
278             -re "^ +\[0-9\]+ 0032 F233\[^\n\]*\n"       { set x [expr $x+1] }
279             -re "^\[^\n\]*\n"                           { }
280             timeout                             { perror "timeout\n"; break }
281             eof                                 { break }
282         }
283     }
284
285     # This was intended to do any cleanup necessary.  It kinda looks like it
286     # isn't needed, but just in case, please keep it in for now.
287     gas_finish
288
289     # Did we find what we were looking for?  If not, flunk it.
290     if [expr $x==17] then { pass $testname } else { fail $testname }
291 }
292
293 proc do_loop {} {
294     set testname "loop.s: loop tests"
295     set x 0
296
297     gas_start "loop.s" "-al"
298
299     # Instead of having a variable for each match string just increment the
300     # total number of matches seen.  That's simpler when testing large numbers
301     # of instructions (as these tests to).
302     while 1 {
303         expect {
304             -re "^ +\[0-9\]+ 0000 D8\[^\n\]*\n"         { set x [expr $x+1] }
305             -re "^ +\[0-9\]+ 0001 D9\[^\n\]*\n"         { set x [expr $x+1] }
306             -re "^ +\[0-9\]+ 0002 D1\[^\n\]*\n"         { set x [expr $x+1] }
307             -re "^ +\[0-9\]+ 0003 D2\[^\n\]*\n"         { set x [expr $x+1] }
308             -re "^ +\[0-9\]+ 0004 D3\[^\n\]*\n"         { set x [expr $x+1] }
309             -re "^ +\[0-9\]+ 0005 D0\[^\n\]*\n"         { set x [expr $x+1] }
310             -re "^ +\[0-9\]+ 0006 D5\[^\n\]*\n"         { set x [expr $x+1] }
311             -re "^ +\[0-9\]+ 0007 D6\[^\n\]*\n"         { set x [expr $x+1] }
312             -re "^ +\[0-9\]+ 0008 D7\[^\n\]*\n"         { set x [expr $x+1] }
313             -re "^ +\[0-9\]+ 0009 D4\[^\n\]*\n"         { set x [expr $x+1] }
314             -re "^ +\[0-9\]+ 000a DA\[^\n\]*\n"         { set x [expr $x+1] }
315             -re "^ +\[0-9\]+ 000b DB\[^\n\]*\n"         { set x [expr $x+1] }
316             -re "\[^\n\]*\n"                            { }
317             timeout                             { perror "timeout\n"; break }
318             eof                                 { break }
319         }
320     }
321
322     # This was intended to do any cleanup necessary.  It kinda looks like it
323     # isn't needed, but just in case, please keep it in for now.
324     gas_finish
325
326     # Did we find what we were looking for?  If not, flunk it.
327     if [expr $x==12] then { pass $testname } else { fail $testname }
328 }
329
330 proc do_mov1 {} {
331     set testname "mov1.s: mov1 tests"
332     set x 0
333
334     gas_start "mov1.s" "-al"
335
336     # Instead of having a variable for each match string just increment the
337     # total number of matches seen.  That's simpler when testing large numbers
338     # of instructions (as these tests to).
339     while 1 {
340         expect {
341             -re "^ +\[0-9\]+ 0000 86\[^\n\]*\n"         { set x [expr $x+1] }
342             -re "^ +\[0-9\]+ 0001 F1E6\[^\n\]*\n"       { set x [expr $x+1] }
343             -re "^ +\[0-9\]+ 0003 F1D9\[^\n\]*\n"       { set x [expr $x+1] }
344             -re "^ +\[0-9\]+ 0005 99\[^\n\]*\n"         { set x [expr $x+1] }
345             -re "^ +\[0-9\]+ 0006 3E\[^\n\]*\n"         { set x [expr $x+1] }
346             -re "^ +\[0-9\]+ 0007 F2F4\[^\n\]*\n"       { set x [expr $x+1] }
347             -re "^ +\[0-9\]+ 0009 F2FB\[^\n\]*\n"       { set x [expr $x+1] }
348             -re "^ +\[0-9\]+ 000b F2E1\[^\n\]*\n"       { set x [expr $x+1] }
349             -re "^ +\[0-9\]+ 000d F2FA\[^\n\]*\n"       { set x [expr $x+1] }
350             -re "^ +\[0-9\]+ 000f 76\[^\n\]*\n"         { set x [expr $x+1] }
351             -re "^ +\[0-9\]+ 0010 F80608\[^\n\]*\n"     { set x [expr $x+1] }
352             -re "^ +\[0-9\]+ 0013 FA060001\[^\n\]*\n"   { set x [expr $x+1] }
353             -re "^ +\[0-9\]+ 0017 FC06FFFF\[^\n\]*\n"   { set x [expr $x+1] }
354             -re "^ +14 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
355             -re "^ +\[0-9\]+ 001d 5908\[^\n\]*\n"       { set x [expr $x+1] }
356             -re "^ +\[0-9\]+ 001f FAB50001\[^\n\]*\n"   { set x [expr $x+1] }
357             -re "^ +\[0-9\]+ 0023 F2E7\[^\n\]*\n"       { set x [expr $x+1] }
358             -re "\[^\n\]*\n"                            { }
359             timeout                             { perror "timeout\n"; break }
360             eof                                 { break }
361         }
362     }
363
364     # This was intended to do any cleanup necessary.  It kinda looks like it
365     # isn't needed, but just in case, please keep it in for now.
366     gas_finish
367
368     # Did we find what we were looking for?  If not, flunk it.
369     if [expr $x==17] then { pass $testname } else { fail $testname }
370 }
371
372 proc do_mov2 {} {
373     set testname "mov2.s: mov2 tests"
374     set x 0
375
376     gas_start "mov2.s" "-al"
377
378     # Instead of having a variable for each match string just increment the
379     # total number of matches seen.  That's simpler when testing large numbers
380     # of instructions (as these tests to).
381     while 1 {
382         expect {
383             -re "^ +\[0-9\]+ 0000 FCB5FFFF\[^\n\]*\n"   { set x [expr $x+1] }
384             -re "^ +2 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
385             -re "^ +\[0-9\]+ 0006 F325\[^\n\]*\n"       { set x [expr $x+1] }
386             -re "^ +\[0-9\]+ 0008 310080\[^\n\]*\n"     { set x [expr $x+1] }
387             -re "^ +\[0-9\]+ 000b FCA5FFFF\[^\n\]*\n"   { set x [expr $x+1] }
388             -re "^ +5 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
389             -re "^ +\[0-9\]+ 0011 F006\[^\n\]*\n"       { set x [expr $x+1] }
390             -re "^ +\[0-9\]+ 0013 F82608\[^\n\]*\n"     { set x [expr $x+1] }
391             -re "^ +\[0-9\]+ 0016 FA260001 \[^\n\]*\n"  { set x [expr $x+1] }
392             -re "^ +\[0-9\]+ 001a FC26FFFF\[^\n\]*\n"   { set x [expr $x+1] }
393             -re "^ +9 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
394             -re "^ +\[0-9\]+ 0020 5D08\[^\n\]*\n"       { set x [expr $x+1] }
395             -re "^ +\[0-9\]+ 0022 FAB10001\[^\n\]*\n"   { set x [expr $x+1] }
396             -re "^ +\[0-9\]+ 0026 FCB1FFFF\[^\n\]*\n"   { set x [expr $x+1] }
397             -re "^ +12 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
398             -re "^ +\[0-9\]+ 002c F3A5\[^\n\]*\n"       { set x [expr $x+1] }
399             -re "^ +\[0-9\]+ 002e FAA10080\[^\n\]*\n"   { set x [expr $x+1] }
400             -re "^ +\[0-9\]+ 0032 FCA1FFFF\[^\n\]*\n"   { set x [expr $x+1] }
401             -re "^ +15 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
402             -re "^ +\[0-9\]+ 0038 F8F120\[^\n\]*\n"     { set x [expr $x+1] }
403             -re "\[^\n\]*\n"                            { }
404             timeout                             { perror "timeout\n"; break }
405             eof                                 { break }
406         }
407     }
408
409     # This was intended to do any cleanup necessary.  It kinda looks like it
410     # isn't needed, but just in case, please keep it in for now.
411     gas_finish
412
413     # Did we find what we were looking for?  If not, flunk it.
414     if [expr $x==20] then { pass $testname } else { fail $testname }
415 }
416
417 proc do_mov3 {} {
418     set testname "mov3.s: mov3 tests"
419     set x 0
420
421     gas_start "mov3.s" "-al"
422
423     # Instead of having a variable for each match string just increment the
424     # total number of matches seen.  That's simpler when testing large numbers
425     # of instructions (as these tests to).
426     while 1 {
427         expect {
428             -re "^ +\[0-9\]+ 0000 66\[^\n\]*\n" { set x [expr $x+1] }
429             -re "^ +\[0-9\]+ 0001 F81620\[^\n\]*\n"     { set x [expr $x+1] }
430             -re "^ +\[0-9\]+ 0004 FA160001\[^\n\]*\n"   { set x [expr $x+1] }
431             -re "^ +\[0-9\]+ 0008 FC16FFFF\[^\n\]*\n"   { set x [expr $x+1] }
432             -re "^ +5 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
433             -re "^ +\[0-9\]+ 000e 4620\[^\n\]*\n"       { set x [expr $x+1] }
434             -re "^ +\[0-9\]+ 0010 FA950080\[^\n\]*\n"   { set x [expr $x+1] }
435             -re "^ +\[0-9\]+ 0014 FC95FFFF\[^\n\]*\n"   { set x [expr $x+1] }
436             -re "^ +8 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
437             -re "^ +\[0-9\]+ 001a F35A\[^\n\]*\n"       { set x [expr $x+1] }
438             -re "^ +\[0-9\]+ 001c 058000\[^\n\]*\n"     { set x [expr $x+1] }
439             -re "^ +\[0-9\]+ 001f FC85FFFF\[^\n\]*\n"   { set x [expr $x+1] }
440             -re "^ +11 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
441             -re "^ +\[0-9\]+ 0025 F016\[^\n\]*\n"       { set x [expr $x+1] }
442             -re "^ +\[0-9\]+ 0027 F83620\[^\n\]*\n"     { set x [expr $x+1] }
443             -re "^ +\[0-9\]+ 002a FA360001\[^\n\]*\n"   { set x [expr $x+1] }
444             -re "^ +\[0-9\]+ 002e FC36FFFF\[^\n\]*\n"   { set x [expr $x+1] }
445             -re "^ +15 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
446             -re "^ +\[0-9\]+ 0034 4720\[^\n\]*\n"       { set x [expr $x+1] }
447             -re "\[^\n\]*\n"                            { }
448             timeout                             { perror "timeout\n"; break }
449             eof                                 { break }
450         }
451     }
452
453     # This was intended to do any cleanup necessary.  It kinda looks like it
454     # isn't needed, but just in case, please keep it in for now.
455     gas_finish
456
457     # Did we find what we were looking for?  If not, flunk it.
458     if [expr $x==19] then { pass $testname } else { fail $testname }
459 }
460
461 proc do_mov4 {} {
462     set testname "mov4.s: mov4 tests"
463     set x 0
464
465     gas_start "mov4.s" "-al"
466
467     # Instead of having a variable for each match string just increment the
468     # total number of matches seen.  That's simpler when testing large numbers
469     # of instructions (as these tests to).
470     while 1 {
471         expect {
472             -re "^ +\[0-9\]+ 0000 FA940080\[^\n\]*\n"   { set x [expr $x+1] }
473             -re "^ +\[0-9\]+ 0004 FC94FFFF\[^\n\]*\n"   { set x [expr $x+1] }
474             -re "^ +3 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
475             -re "^ +\[0-9\]+ 000a F3DA\[^\n\]*\n"       { set x [expr $x+1] }
476             -re "^ +\[0-9\]+ 000c FA848000\[^\n\]*\n"   { set x [expr $x+1] }
477             -re "^ +\[0-9\]+ 0010 FC84FFFF\[^\n\]*\n"   { set x [expr $x+1] }
478             -re "^ +6 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
479             -re "^ +\[0-9\]+ 0016 F8F520\[^\n\]*\n"     { set x [expr $x+1] }
480             -re "^ +\[0-9\]+ 0019 8508\[^\n\]*\n"       { set x [expr $x+1] }
481             -re "^ +\[0-9\]+ 001b 2D0001\[^\n\]*\n"     { set x [expr $x+1] }
482             -re "^ +\[0-9\]+ 001e FCCDFFFF\[^\n\]*\n"   { set x [expr $x+1] }
483             -re "^ +10 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
484             -re "^ +\[0-9\]+ 0024 9508\[^\n\]*\n"       { set x [expr $x+1] }
485             -re "^ +\[0-9\]+ 0026 250001\[^\n\]*\n"     { set x [expr $x+1] }
486             -re "^ +\[0-9\]+ 0029 FCDDFFFF\[^\n\]*\n"   { set x [expr $x+1] }
487             -re "^ +13 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
488             -re "\[^\n\]*\n"                            { }
489             timeout                             { perror "timeout\n"; break }
490             eof                                 { break }
491         }
492     }
493
494     # This was intended to do any cleanup necessary.  It kinda looks like it
495     # isn't needed, but just in case, please keep it in for now.
496     gas_finish
497
498     # Did we find what we were looking for?  If not, flunk it.
499     if [expr $x==16] then { pass $testname } else { fail $testname }
500 }
501
502 proc do_movbu {} {
503     set testname "movbu.s: movbu tests"
504     set x 0
505
506     gas_start "movbu.s" "-al"
507
508     # Instead of having a variable for each match string just increment the
509     # total number of matches seen.  That's simpler when testing large numbers
510     # of instructions (as these tests to).
511     while 1 {
512         expect {
513             -re "^ +\[0-9\]+ 0000 F046\[^\n\]*\n"       { set x [expr $x+1] }
514             -re "^ +\[0-9\]+ 0002 F84608\[^\n\]*\n"     { set x [expr $x+1] }
515             -re "^ +\[0-9\]+ 0005 FA460001\[^\n\]*\n"   { set x [expr $x+1] }
516             -re "^ +\[0-9\]+ 0009 FC46FFFF\[^\n\]*\n"   { set x [expr $x+1] }
517             -re "^ +5 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
518             -re "^ +\[0-9\]+ 000f F8B908\[^\n\]*\n"     { set x [expr $x+1] }
519             -re "^ +\[0-9\]+ 0012 FAB90001\[^\n\]*\n"   { set x [expr $x+1] }
520             -re "^ +\[0-9\]+ 0016 FCB9FFFF\[^\n\]*\n"   { set x [expr $x+1] }
521             -re "^ +8 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
522             -re "^ +\[0-9\]+ 001c F425\[^\n\]*\n"       { set x [expr $x+1] }
523             -re "^ +\[0-9\]+ 001e 350080\[^\n\]*\n"     { set x [expr $x+1] }
524             -re "^ +\[0-9\]+ 0021 FCA9FFFF\[^\n\]*\n"   { set x [expr $x+1] }
525             -re "^ +11 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
526             -re "^ +\[0-9\]+ 0027 F056\[^\n\]*\n"       { set x [expr $x+1] }
527             -re "^ +\[0-9\]+ 0029 F85620\[^\n\]*\n"     { set x [expr $x+1] }
528             -re "^ +\[0-9\]+ 002c FA560001\[^\n\]*\n"   { set x [expr $x+1] }
529             -re "^ +\[0-9\]+ 0030 FC56FFFF\[^\n\]*\n"   { set x [expr $x+1] }
530             -re "^ +15 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
531             -re "^ +\[0-9\]+ 0036 F89620\[^\n\]*\n"     { set x [expr $x+1] }
532             -re "^ +\[0-9\]+ 0039 FA960080\[^\n\]*\n"   { set x [expr $x+1] }
533             -re "^ +\[0-9\]+ 003d FC96FFFF\[^\n\]*\n"   { set x [expr $x+1] }
534             -re "^ +18 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
535             -re "^ +\[0-9\]+ 0043 F45A\[^\n\]*\n"       { set x [expr $x+1] }
536             -re "^ +\[0-9\]+ 0045 068000\[^\n\]*\n"     { set x [expr $x+1] }
537             -re "^ +\[0-9\]+ 0048 FC86FFFF\[^\n\]*\n"   { set x [expr $x+1] }
538             -re "^ +21 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
539             -re "\[^\n\]*\n"                            { }
540             timeout                             { perror "timeout\n"; break }
541             eof                                 { break }
542         }
543     }
544
545     # This was intended to do any cleanup necessary.  It kinda looks like it
546     # isn't needed, but just in case, please keep it in for now.
547     gas_finish
548
549     # Did we find what we were looking for?  If not, flunk it.
550     if [expr $x==26] then { pass $testname } else { fail $testname }
551 }
552
553 proc do_movhu {} {
554     set testname "movhu.s: movhu tests"
555     set x 0
556
557     gas_start "movhu.s" "-al"
558
559     # Instead of having a variable for each match string just increment the
560     # total number of matches seen.  That's simpler when testing large numbers
561     # of instructions (as these tests to).
562     while 1 {
563         expect {
564             -re "^ +\[0-9\]+ 0000 F066\[^\n\]*\n"       { set x [expr $x+1] }
565             -re "^ +\[0-9\]+ 0002 F86608\[^\n\]*\n"     { set x [expr $x+1] }
566             -re "^ +\[0-9\]+ 0005 FA660001\[^\n\]*\n"   { set x [expr $x+1] }
567             -re "^ +\[0-9\]+ 0009 FC66FFFF\[^\n\]*\n"   { set x [expr $x+1] }
568             -re "^ +5 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
569             -re "^ +\[0-9\]+ 000f F8BD08\[^\n\]*\n"     { set x [expr $x+1] }
570             -re "^ +\[0-9\]+ 0012 FABD0001\[^\n\]*\n"   { set x [expr $x+1] }
571             -re "^ +\[0-9\]+ 0016 FCBDFFFF\[^\n\]*\n"   { set x [expr $x+1] }
572             -re "^ +8 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
573             -re "^ +\[0-9\]+ 001c F4A5\[^\n\]*\n"       { set x [expr $x+1] }
574             -re "^ +\[0-9\]+ 001e 390080\[^\n\]*\n"     { set x [expr $x+1] }
575             -re "^ +\[0-9\]+ 0021 FCADFFFF\[^\n\]*\n"   { set x [expr $x+1] }
576             -re "^ +11 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
577             -re "^ +\[0-9\]+ 0027 F076\[^\n\]*\n"       { set x [expr $x+1] }
578             -re "^ +\[0-9\]+ 0029 F87620\[^\n\]*\n"     { set x [expr $x+1] }
579             -re "^ +\[0-9\]+ 002c FA760001\[^\n\]*\n"   { set x [expr $x+1] }
580             -re "^ +\[0-9\]+ 0030 FC76FFFF\[^\n\]*\n"   { set x [expr $x+1] }
581             -re "^ +15 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
582             -re "^ +\[0-9\]+ 0036 F89720\[^\n\]*\n"     { set x [expr $x+1] }
583             -re "^ +\[0-9\]+ 0039 FA970080\[^\n\]*\n"   { set x [expr $x+1] }
584             -re "^ +\[0-9\]+ 003d FC97FFFF\[^\n\]*\n"   { set x [expr $x+1] }
585             -re "^ +18 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
586             -re "^ +\[0-9\]+ 0043 F4DA\[^\n\]*\n"       { set x [expr $x+1] }
587             -re "^ +\[0-9\]+ 0045 078000\[^\n\]*\n"     { set x [expr $x+1] }
588             -re "^ +\[0-9\]+ 0048 FC87FFFF\[^\n\]*\n"   { set x [expr $x+1] }
589             -re "^ +21 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
590             -re "\[^\n\]*\n"                            { }
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==26] then { pass $testname } else { fail $testname }
602 }
603
604 proc do_movm {} {
605     set testname "movm.s: movm tests"
606     set x 0
607
608     gas_start "movm.s" "-al"
609
610     # Instead of having a variable for each match string just increment the
611     # total number of matches seen.  That's simpler when testing large numbers
612     # of instructions (as these tests to).
613     while 1 {
614         expect {
615             -re "^ +\[0-9\]+ 0000 CE30\[^\n\]*\n"       { set x [expr $x+1] }
616             -re "^ +\[0-9\]+ 0002 CEF8\[^\n\]*\n"       { set x [expr $x+1] }
617             -re "^ +\[0-9\]+ 0004 CF30\[^\n\]*\n"       { set x [expr $x+1] }
618             -re "^ +\[0-9\]+ 0006 CFF8\[^\n\]*\n"       { set x [expr $x+1] }
619             -re "\[^\n\]*\n"                            { }
620             timeout                             { perror "timeout\n"; break }
621             eof                                 { break }
622         }
623     }
624
625     # This was intended to do any cleanup necessary.  It kinda looks like it
626     # isn't needed, but just in case, please keep it in for now.
627     gas_finish
628
629     # Did we find what we were looking for?  If not, flunk it.
630     if [expr $x==4] then { pass $testname } else { fail $testname }
631 }
632
633 proc do_muldiv {} {
634     set testname "muldiv.s: muldiv tests"
635     set x 0
636
637     gas_start "muldiv.s" "-al"
638
639     # Instead of having a variable for each match string just increment the
640     # total number of matches seen.  That's simpler when testing large numbers
641     # of instructions (as these tests to).
642     while 1 {
643         expect {
644             -re "^ +\[0-9\]+ 0000 F246\[^\n\]*\n"       { set x [expr $x+1] }
645             -re "^ +\[0-9\]+ 0002 F25B\[^\n\]*\n"       { set x [expr $x+1] }
646             -re "^ +\[0-9\]+ 0004 F26F\[^\n\]*\n"       { set x [expr $x+1] }
647             -re "^ +\[0-9\]+ 0006 F27E\[^\n\]*\n"       { set x [expr $x+1] }
648             -re "\[^\n\]*\n"                            { }
649             timeout                             { perror "timeout\n"; break }
650             eof                                 { break }
651         }
652     }
653
654     # This was intended to do any cleanup necessary.  It kinda looks like it
655     # isn't needed, but just in case, please keep it in for now.
656     gas_finish
657
658     # Did we find what we were looking for?  If not, flunk it.
659     if [expr $x==4] then { pass $testname } else { fail $testname }
660 }
661
662 proc do_other {} {
663     set testname "other.s: other tests"
664     set x 0
665
666     gas_start "other.s" "-al"
667
668     # Instead of having a variable for each match string just increment the
669     # total number of matches seen.  That's simpler when testing large numbers
670     # of instructions (as these tests to).
671     while 1 {
672         expect {
673             -re "^ +\[0-9\]+ 0000 08\[^\n\]*\n"         { set x [expr $x+1] }
674             -re "^ +\[0-9\]+ 0001 44\[^\n\]*\n"         { set x [expr $x+1] }
675             -re "^ +\[0-9\]+ 0002 49\[^\n\]*\n"         { set x [expr $x+1] }
676             -re "^ +\[0-9\]+ 0003 53\[^\n\]*\n"         { set x [expr $x+1] }
677             -re "^ +\[0-9\]+ 0004 F0F6\[^\n\]*\n"       { set x [expr $x+1] }
678             -re "^ +\[0-9\]+ 0006 CC0001\[^\n\]*\n"     { set x [expr $x+1] }
679             -re "^ +\[0-9\]+ 0009 DCFFFF01\[^\n\]*\n"   { set x [expr $x+1] }
680             -re "^ +8 +00\[^\n\]*\n"                    { set x [expr $x+1] }
681             -re "^ +\[0-9\]+ 000e CD000130\[^\n\]*\n"   { set x [expr $x+1] }
682             -re "^ +9 +09\[^\n\]*\n"                    { set x [expr $x+1] }
683             -re "^ +\[0-9\]+ 0013 DDFFFF01\[^\n\]*\n"   { set x [expr $x+1] }
684             -re "^ +10 +003020\[^\n\]*\n"               { set x [expr $x+1] }
685             -re "^ +\[0-9\]+ 001a F0F2\[^\n\]*\n"       { set x [expr $x+1] }
686             -re "^ +\[0-9\]+ 001c FAFF0001\[^\n\]*\n"   { set x [expr $x+1] }
687             -re "^ +\[0-9\]+ 0020 FCFFFFFF\[^\n\]*\n"   { set x [expr $x+1] }
688             -re "^ +13 +0100\[^\n\]*\n"                 { set x [expr $x+1] }
689             -re "^ +\[0-9\]+ 0026 DF3007\[^\n\]*\n"     { set x [expr $x+1] }
690             -re "^ +\[0-9\]+ 0029 DE3005\[^\n\]*\n"     { set x [expr $x+1] }
691             -re "^ +\[0-9\]+ 002c F0FC\[^\n\]*\n"       { set x [expr $x+1] }
692             -re "^ +\[0-9\]+ 002e F0FD\[^\n\]*\n"       { set x [expr $x+1] }
693             -re "^ +\[0-9\]+ 0030 F0FE\[^\n\]*\n"       { set x [expr $x+1] }
694             -re "^ +\[0-9\]+ 0032 CB\[^\n\]*\n"         { set x [expr $x+1] }
695             -re "^ +\[0-9\]+ 0033 F0FF\[^\n\]*\n"       { set x [expr $x+1] }
696             -re "\[^\n\]*\n"                            { }
697             timeout                             { perror "timeout\n"; break }
698             eof                                 { break }
699         }
700     }
701
702     # This was intended to do any cleanup necessary.  It kinda looks like it
703     # isn't needed, but just in case, please keep it in for now.
704     gas_finish
705
706     # Did we find what we were looking for?  If not, flunk it.
707     if [expr $x==23] then { pass $testname } else { fail $testname }
708 }
709
710 proc do_shift {} {
711     set testname "shift.s: shift tests"
712     set x 0
713
714     gas_start "shift.s" "-al"
715
716     # Instead of having a variable for each match string just increment the
717     # total number of matches seen.  That's simpler when testing large numbers
718     # of instructions (as these tests to).
719     while 1 {
720         expect {
721             -re "^ +\[0-9\]+ 0000 F2B6\[^\n\]*\n"       { set x [expr $x+1] }
722             -re "^ +\[0-9\]+ 0002 F8CA04\[^\n\]*\n"     { set x [expr $x+1] }
723             -re "^ +\[0-9\]+ 0005 F2AB\[^\n\]*\n"       { set x [expr $x+1] }
724             -re "^ +\[0-9\]+ 0007 F8C704\[^\n\]*\n"     { set x [expr $x+1] }
725             -re "^ +\[0-9\]+ 000a F29E\[^\n\]*\n"       { set x [expr $x+1] }
726             -re "^ +\[0-9\]+ 000c F8C204\[^\n\]*\n"     { set x [expr $x+1] }
727             -re "^ +\[0-9\]+ 000f 56\[^\n\]*\n"         { set x [expr $x+1] }
728             -re "^ +\[0-9\]+ 0010 F285\[^\n\]*\n"       { set x [expr $x+1] }
729             -re "^ +\[0-9\]+ 0012 F282\[^\n\]*\n"       { set x [expr $x+1] }
730             -re "\[^\n\]*\n"                            { }
731             timeout                             { perror "timeout\n"; break }
732             eof                                 { break }
733         }
734     }
735
736     # This was intended to do any cleanup necessary.  It kinda looks like it
737     # isn't needed, but just in case, please keep it in for now.
738     gas_finish
739
740     # Did we find what we were looking for?  If not, flunk it.
741     if [expr $x==9] then { pass $testname } else { fail $testname }
742 }
743
744 proc do_sub {} {
745     set testname "sub.s: sub tests"
746     set x 0
747
748     gas_start "sub.s" "-al"
749
750     # Instead of having a variable for each match string just increment the
751     # total number of matches seen.  That's simpler when testing large numbers
752     # of instructions (as these tests to).
753     while 1 {
754         expect {
755             -re "^ +\[0-9\]+ 0000 F106\[^\n\]*\n"       { set x [expr $x+1] }
756             -re "^ +\[0-9\]+ 0002 F12B\[^\n\]*\n"       { set x [expr $x+1] }
757             -re "^ +\[0-9\]+ 0004 F11F\[^\n\]*\n"       { set x [expr $x+1] }
758             -re "^ +\[0-9\]+ 0006 F13E\[^\n\]*\n"       { set x [expr $x+1] }
759             -re "^ +\[0-9\]+ 0008 FCC6FFFF \[^\n\]*\n"  { set x [expr $x+1] }
760             -re "^ +6 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
761             -re "^ +\[0-9\]+ 000e FCD5FFFF\[^\n\]*\n"   { set x [expr $x+1] }
762             -re "^ +7 +0100\[^\n\]*\n"                  { set x [expr $x+1] }
763             -re "^ +\[0-9\]+ 0014 F186\[^\n\]*\n"       { set x [expr $x+1] }
764             -re "\[^\n\]*\n"                            { }
765             timeout                             { perror "timeout\n"; break }
766             eof                                 { break }
767         }
768     }
769
770     # This was intended to do any cleanup necessary.  It kinda looks like it
771     # isn't needed, but just in case, please keep it in for now.
772     gas_finish
773
774     # Did we find what we were looking for?  If not, flunk it.
775     if [expr $x==9] then { pass $testname } else { fail $testname }
776 }
777
778 proc do_udf {} {
779     set testname "udf.s: udf tests part 1"
780     set x 0
781
782     gas_start "udf.s" "-al"
783
784     # Instead of having a variable for each match string just increment the
785     # total number of matches seen.  That's simpler when testing large numbers
786     # of instructions (as these tests to).
787     while 1 {
788         expect {
789             -re "^ +\[0-9\]+ 0000 F601\[^\n\]*\n"       { set x [expr $x+1] }
790             -re "^ +\[0-9\]+ 0002 F611\[^\n\]*\n"       { set x [expr $x+1] }
791             -re "^ +\[0-9\]+ 0004 F621\[^\n\]*\n"       { set x [expr $x+1] }
792             -re "^ +\[0-9\]+ 0006 F631\[^\n\]*\n"       { set x [expr $x+1] }
793             -re "^ +\[0-9\]+ 0008 F641\[^\n\]*\n"       { set x [expr $x+1] }
794             -re "^ +\[0-9\]+ 000a F651\[^\n\]*\n"       { set x [expr $x+1] }
795             -re "^ +\[0-9\]+ 000c F661\[^\n\]*\n"       { set x [expr $x+1] }
796             -re "^ +\[0-9\]+ 000e F671\[^\n\]*\n"       { set x [expr $x+1] }
797             -re "^ +\[0-9\]+ 0010 F681\[^\n\]*\n"       { set x [expr $x+1] }
798             -re "^ +\[0-9\]+ 0012 F691\[^\n\]*\n"       { set x [expr $x+1] }
799             -re "^ +\[0-9\]+ 0014 F6A1\[^\n\]*\n"       { set x [expr $x+1] }
800             -re "^ +\[0-9\]+ 0016 F6B1\[^\n\]*\n"       { set x [expr $x+1] }
801             -re "^ +\[0-9\]+ 0018 F6C1\[^\n\]*\n"       { set x [expr $x+1] }
802             -re "^ +\[0-9\]+ 001a F6D1\[^\n\]*\n"       { set x [expr $x+1] }
803             -re "^ +\[0-9\]+ 001c F6E1\[^\n\]*\n"       { set x [expr $x+1] }
804             -re "^ +\[0-9\]+ 001e F6F1\[^\n\]*\n"       { set x [expr $x+1] }
805             -re "^ +\[0-9\]+ 0020 F501\[^\n\]*\n"       { set x [expr $x+1] }
806             -re "^ +\[0-9\]+ 0022 F511\[^\n\]*\n"       { set x [expr $x+1] }
807             -re "^ +\[0-9\]+ 0024 F521\[^\n\]*\n"       { set x [expr $x+1] }
808             -re "^ +\[0-9\]+ 0026 F531\[^\n\]*\n"       { set x [expr $x+1] }
809             -re "^ +\[0-9\]+ 0028 F541\[^\n\]*\n"       { set x [expr $x+1] }
810             -re "^ +\[0-9\]+ 002a F551\[^\n\]*\n"       { set x [expr $x+1] }
811             -re "^ +\[0-9\]+ 002c F561\[^\n\]*\n"       { set x [expr $x+1] }
812             -re "^ +\[0-9\]+ 002e F571\[^\n\]*\n"       { set x [expr $x+1] }
813             -re "^ +\[0-9\]+ 0030 F581\[^\n\]*\n"       { set x [expr $x+1] }
814             -re "^ +\[0-9\]+ 0032 F591\[^\n\]*\n"       { set x [expr $x+1] }
815             -re "^ +\[0-9\]+ 0034 F5A1\[^\n\]*\n"       { set x [expr $x+1] }
816             -re "^ +\[0-9\]+ 0036 F5B1\[^\n\]*\n"       { set x [expr $x+1] }
817             -re "^ +\[0-9\]+ 0038 F5C1\[^\n\]*\n"       { set x [expr $x+1] }
818             -re "^ +\[0-9\]+ 003a F5D1\[^\n\]*\n"       { set x [expr $x+1] }
819             -re "^ +\[0-9\]+ 003c F5E1\[^\n\]*\n"       { set x [expr $x+1] }
820             -re "^ +\[0-9\]+ 003e F5F1\[^\n\]*\n"       { set x [expr $x+1] }
821             -re "^ +\[0-9\]+ 0040 F9017F\[^\n\]*\n"     { set x [expr $x+1] }
822             -re "^ +\[0-9\]+ 0043 F9117F\[^\n\]*\n"     { set x [expr $x+1] }
823             -re "^ +\[0-9\]+ 0046 F9217F\[^\n\]*\n"     { set x [expr $x+1] }
824             -re "^ +\[0-9\]+ 0049 F9317F\[^\n\]*\n"     { set x [expr $x+1] }
825             -re "^ +\[0-9\]+ 004c F9417F\[^\n\]*\n"     { set x [expr $x+1] }
826             -re "^ +\[0-9\]+ 004f F9517F\[^\n\]*\n"     { set x [expr $x+1] }
827             -re "^ +\[0-9\]+ 0052 F9617F\[^\n\]*\n"     { set x [expr $x+1] }
828             -re "^ +\[0-9\]+ 0055 F9717F\[^\n\]*\n"     { set x [expr $x+1] }
829             -re "^ +\[0-9\]+ 0058 F9817F\[^\n\]*\n"     { set x [expr $x+1] }
830             -re "^ +\[0-9\]+ 005b F9917F\[^\n\]*\n"     { set x [expr $x+1] }
831             -re "^ +\[0-9\]+ 005e F9A17F\[^\n\]*\n"     { set x [expr $x+1] }
832             -re "^ +\[0-9\]+ 0061 F9B17F\[^\n\]*\n"     { set x [expr $x+1] }
833             -re "^ +\[0-9\]+ 0064 F9C17F\[^\n\]*\n"     { set x [expr $x+1] }
834             -re "^ +\[0-9\]+ 0067 F9D17F\[^\n\]*\n"     { set x [expr $x+1] }
835             -re "^ +\[0-9\]+ 006a F9E17F\[^\n\]*\n"     { set x [expr $x+1] }
836             -re "^ +\[0-9\]+ 006d F9F17F\[^\n\]*\n"     { set x [expr $x+1] }
837             -re "^ +\[0-9\]+ 0070 FB01FF7F\[^\n\]*\n"   { set x [expr $x+1] }
838             -re "^ +\[0-9\]+ 0074 FB11FF7F\[^\n\]*\n"   { set x [expr $x+1] }
839             -re "^ +\[0-9\]+ 0078 FB21FF7F\[^\n\]*\n"   { set x [expr $x+1] }
840             -re "^ +\[0-9\]+ 007c FB31FF7F\[^\n\]*\n"   { set x [expr $x+1] }
841             -re "^ +\[0-9\]+ 0080 FB41FF7F\[^\n\]*\n"   { set x [expr $x+1] }
842             -re "^ +\[0-9\]+ 0084 FB51FF7F\[^\n\]*\n"   { set x [expr $x+1] }
843             -re "^ +\[0-9\]+ 0088 FB61FF7F\[^\n\]*\n"   { set x [expr $x+1] }
844             -re "^ +\[0-9\]+ 008c FB71FF7F\[^\n\]*\n"   { set x [expr $x+1] }
845             -re "^ +\[0-9\]+ 0090 FB81FF7F\[^\n\]*\n"   { set x [expr $x+1] }
846             -re "^ +\[0-9\]+ 0094 FB91FF7F\[^\n\]*\n"   { set x [expr $x+1] }
847             -re "^ +\[0-9\]+ 0098 FBA1FF7F\[^\n\]*\n"   { set x [expr $x+1] }
848             -re "^ +\[0-9\]+ 009c FBB1FF7F\[^\n\]*\n"   { set x [expr $x+1] }
849             -re "^ +\[0-9\]+ 00a0 FBC1FF7F\[^\n\]*\n"   { set x [expr $x+1] }
850             -re "^ +\[0-9\]+ 00a4 FBD1FF7F\[^\n\]*\n"   { set x [expr $x+1] }
851             -re "^ +\[0-9\]+ 00a8 FBE1FF7F\[^\n\]*\n"   { set x [expr $x+1] }
852             -re "^ +\[0-9\]+ 00ac FBF1FF7F\[^\n\]*\n"   { set x [expr $x+1] }
853             -re "^ +\[0-9\]+ 00b0 FD01FFFF\[^\n\]*\n"   { set x [expr $x+1] }
854             -re "^ +66 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
855             -re "^ +\[0-9\]+ 00b6 FD11FFFF\[^\n\]*\n"   { set x [expr $x+1] }
856             -re "^ +67 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
857             -re "^ +\[0-9\]+ 00bc FD21FFFF\[^\n\]*\n"   { set x [expr $x+1] }
858             -re "^ +68 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
859             -re "^ +\[0-9\]+ 00c2 FD31FFFF\[^\n\]*\n"   { set x [expr $x+1] }
860             -re "^ +69 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
861             -re "^ +\[0-9\]+ 00c8 FD41FFFF\[^\n\]*\n"   { set x [expr $x+1] }
862             -re "^ +70 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
863             -re "^ +\[0-9\]+ 00ce FD51FFFF\[^\n\]*\n"   { set x [expr $x+1] }
864             -re "^ +71 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
865             -re "^ +\[0-9\]+ 00d4 FD61FFFF\[^\n\]*\n"   { set x [expr $x+1] }
866             -re "^ +72 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
867             -re "^ +\[0-9\]+ 00da FD71FFFF\[^\n\]*\n"   { set x [expr $x+1] }
868             -re "^ +73 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
869             -re "^ +\[0-9\]+ 00e0 FD81FFFF\[^\n\]*\n"   { set x [expr $x+1] }
870             -re "^ +74 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
871             -re "^ +\[0-9\]+ 00e6 FD91FFFF\[^\n\]*\n"   { set x [expr $x+1] }
872             -re "^ +75 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
873             -re "^ +\[0-9\]+ 00ec FDA1FFFF\[^\n\]*\n"   { set x [expr $x+1] }
874             -re "^ +76 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
875             -re "^ +\[0-9\]+ 00f2 FDB1FFFF\[^\n\]*\n"   { set x [expr $x+1] }
876             -re "^ +77 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
877             -re "^ +\[0-9\]+ 00f8 FDC1FFFF\[^\n\]*\n"   { set x [expr $x+1] }
878             -re "^ +78 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
879             -re "^ +\[0-9\]+ 00fe FDD1FFFF\[^\n\]*\n"   { set x [expr $x+1] }
880             -re "^ +79 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
881             -re "^ +\[0-9\]+ 0104 FDE1FFFF\[^\n\]*\n"   { set x [expr $x+1] }
882             -re "^ +80 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
883             -re "^ +\[0-9\]+ 010a FDF1FFFF\[^\n\]*\n"   { set x [expr $x+1] }
884             -re "^ +81 +0000\[^\n\]*\n"                 { set x [expr $x+1] }
885             -re "^ +\[0-9\]+ 0110 F90580\[^\n\]*\n"     { set x [expr $x+1] }
886             -re "^ +\[0-9\]+ 0113 F91580\[^\n\]*\n"     { set x [expr $x+1] }
887             -re "^ +\[0-9\]+ 0116 F92580\[^\n\]*\n"     { set x [expr $x+1] }
888             -re "^ +\[0-9\]+ 0119 F93580\[^\n\]*\n"     { set x [expr $x+1] }
889             -re "^ +\[0-9\]+ 011c F94580\[^\n\]*\n"     { set x [expr $x+1] }
890             -re "^ +\[0-9\]+ 011f F95580\[^\n\]*\n"     { set x [expr $x+1] }
891             -re "^ +\[0-9\]+ 0122 F96580\[^\n\]*\n"     { set x [expr $x+1] }
892             -re "^ +\[0-9\]+ 0125 F97580\[^\n\]*\n"     { set x [expr $x+1] }
893             -re "^ +\[0-9\]+ 0128 F98580\[^\n\]*\n"     { set x [expr $x+1] }
894             -re "^ +\[0-9\]+ 012b F99580\[^\n\]*\n"     { set x [expr $x+1] }
895             -re "^ +\[0-9\]+ 012e F9A580\[^\n\]*\n"     { set x [expr $x+1] }
896             -re "^ +\[0-9\]+ 0131 F9B580\[^\n\]*\n"     { set x [expr $x+1] }
897             -re "^ +\[0-9\]+ 0134 F9C580\[^\n\]*\n"     { set x [expr $x+1] }
898             -re "^ +\[0-9\]+ 0137 F9D580\[^\n\]*\n"     { set x [expr $x+1] }
899             -re "^ +\[0-9\]+ 013a F9E580\[^\n\]*\n"     { set x [expr $x+1] }
900             -re "^ +\[0-9\]+ 013d F9F580\[^\n\]*\n"     { set x [expr $x+1] }
901             -re "^ +\[0-9\]+ 0140 FB050080\[^\n\]*\n"   { set x [expr $x+1] }
902             -re "^ +\[0-9\]+ 0144 FB150080\[^\n\]*\n"   { set x [expr $x+1] }
903             -re "^ +\[0-9\]+ 0148 FB250080\[^\n\]*\n"   { set x [expr $x+1] }
904             -re "^ +\[0-9\]+ 014c FB350080\[^\n\]*\n"   { set x [expr $x+1] }
905             -re "^ +\[0-9\]+ 0150 FB450080\[^\n\]*\n"   { set x [expr $x+1] }
906             -re "^ +\[0-9\]+ 0154 FB550080\[^\n\]*\n"   { set x [expr $x+1] }
907             -re "^ +\[0-9\]+ 0158 FB650080\[^\n\]*\n"   { set x [expr $x+1] }
908             -re "^ +\[0-9\]+ 015c FB750080\[^\n\]*\n"   { set x [expr $x+1] }
909             -re "^ +\[0-9\]+ 0160 FB850080\[^\n\]*\n"   { set x [expr $x+1] }
910             -re "^ +\[0-9\]+ 0164 FB950080\[^\n\]*\n"   { set x [expr $x+1] }
911             -re "^ +\[0-9\]+ 0168 FBA50080\[^\n\]*\n"   { set x [expr $x+1] }
912             -re "^ +\[0-9\]+ 016c FBB50080\[^\n\]*\n"   { set x [expr $x+1] }
913             -re "^ +\[0-9\]+ 0170 FBC50080\[^\n\]*\n"   { set x [expr $x+1] }
914             -re "^ +\[0-9\]+ 0174 FBD50080\[^\n\]*\n"   { set x [expr $x+1] }
915             -re "^ +\[0-9\]+ 0178 FBE50080\[^\n\]*\n"   { set x [expr $x+1] }
916             -re "^ +\[0-9\]+ 017c FBF50080\[^\n\]*\n"   { set x [expr $x+1] }
917             -re "^ +\[0-9\]+ 0180 FD050000\[^\n\]*\n"   { set x [expr $x+1] }
918             -re "^ +114 +0100\[^\n\]*\n"                { set x [expr $x+1] }
919             -re "^ +\[0-9\]+ 0186 FD150000\[^\n\]*\n"   { set x [expr $x+1] }
920             -re "^ +115 +0100\[^\n\]*\n"                { set x [expr $x+1] }
921             -re "^ +\[0-9\]+ 018c FD250000\[^\n\]*\n"   { set x [expr $x+1] }
922             -re "^ +116 +0100\[^\n\]*\n"                { set x [expr $x+1] }
923             -re "^ +\[0-9\]+ 0192 FD350000\[^\n\]*\n"   { set x [expr $x+1] }
924             -re "^ +117 +0100\[^\n\]*\n"                { set x [expr $x+1] }
925             -re "^ +\[0-9\]+ 0198 FD450000\[^\n\]*\n"   { set x [expr $x+1] }
926             -re "^ +118 +0100\[^\n\]*\n"                { set x [expr $x+1] }
927             -re "^ +\[0-9\]+ 019e FD550000\[^\n\]*\n"   { set x [expr $x+1] }
928             -re "^ +119 +0100\[^\n\]*\n"                { set x [expr $x+1] }
929             -re "^ +\[0-9\]+ 01a4 FD650000\[^\n\]*\n"   { set x [expr $x+1] }
930             -re "^ +120 +0100\[^\n\]*\n"                { set x [expr $x+1] }
931             -re "^ +\[0-9\]+ 01aa FD750000\[^\n\]*\n"   { set x [expr $x+1] }
932             -re "^ +121 +0100\[^\n\]*\n"                { set x [expr $x+1] }
933             -re "^ +\[0-9\]+ 01b0 FD850000\[^\n\]*\n"   { set x [expr $x+1] }
934             -re "^ +122 +0100\[^\n\]*\n"                { set x [expr $x+1] }
935             -re "^ +\[0-9\]+ 01b6 FD950000\[^\n\]*\n"   { set x [expr $x+1] }
936             -re "^ +123 +0100\[^\n\]*\n"                { set x [expr $x+1] }
937             -re "^ +\[0-9\]+ 01bc FDA50000\[^\n\]*\n"   { set x [expr $x+1] }
938             -re "^ +124 +0100\[^\n\]*\n"                { set x [expr $x+1] }
939             -re "^ +\[0-9\]+ 01c2 FDB50000\[^\n\]*\n"   { set x [expr $x+1] }
940             -re "^ +125 +0100\[^\n\]*\n"                { set x [expr $x+1] }
941             -re "^ +\[0-9\]+ 01c8 FDC50000\[^\n\]*\n"   { set x [expr $x+1] }
942             -re "^ +126 +0100\[^\n\]*\n"                { set x [expr $x+1] }
943             -re "^ +\[0-9\]+ 01ce FDD50000\[^\n\]*\n"   { set x [expr $x+1] }
944             -re "^ +127 +0100\[^\n\]*\n"                { set x [expr $x+1] }
945             -re "^ +\[0-9\]+ 01d4 FDE50000\[^\n\]*\n"   { set x [expr $x+1] }
946             -re "^ +128 +0100\[^\n\]*\n"                { set x [expr $x+1] }
947             -re "^ +\[0-9\]+ 01da FDF50000\[^\n\]*\n"   { set x [expr $x+1] }
948             -re "^ +129 +0100\[^\n\]*\n"                { set x [expr $x+1] }
949             -re "\[^\n\]*\n"                            { }
950             timeout                             { perror "timeout\n"; break }
951             eof                                 { break }
952         }
953     }
954
955     # This was intended to do any cleanup necessary.  It kinda looks like it
956     # isn't needed, but just in case, please keep it in for now.
957     gas_finish
958
959     # Did we find what we were looking for?  If not, flunk it.
960     if [expr $x==160] then { pass $testname } else { fail $testname }
961 }
962
963 proc do_am33_1 {} {
964     set testname "am33.s: am33 tests part 1"
965     set x 0
966
967     gas_start "am33.s" "-al"
968
969     # Instead of having a variable for each match string just increment the
970     # total number of matches seen.  That's simpler when testing large numbers
971     # of instructions (as these tests to).
972     while 1 {
973         expect {
974             -re "^ +\[0-9\]+ 0000 CD000134\[^\n\]*\n"   { set x [expr $x+1] }
975             -re "^ +3 +09\[^\n\]*\n"                    { set x [expr $x+1] }
976             -re "^ +\[0-9\]+ 0005 CD000132\[^\n\]*\n"   { set x [expr $x+1] }
977             -re "^ +4 +09\[^\n\]*\n"                    { set x [expr $x+1] }
978             -re "^ +\[0-9\]+ 000a CD000131\[^\n\]*\n"   { set x [expr $x+1] }
979             -re "^ +5 +09\[^\n\]*\n"                    { set x [expr $x+1] }
980             -re "^ +\[0-9\]+ 000f CD0001FF\[^\n\]*\n"   { set x [expr $x+1] }
981             -re "^ +6 +09\[^\n\]*\n"                    { set x [expr $x+1] }
982             -re "^ +\[0-9\]+ 0014 DDFFFF01\[^\n\]*\n"   { set x [expr $x+1] }
983             -re "^ +7 +003409\[^\n\]*\n"                { set x [expr $x+1] }
984             -re "^ +\[0-9\]+ 001b DDFFFF01\[^\n\]*\n"   { set x [expr $x+1] }
985             -re "^ +8 +003209\[^\n\]*\n"                { set x [expr $x+1] }
986             -re "^ +\[0-9\]+ 0022 DDFFFF01\[^\n\]*\n"   { set x [expr $x+1] }
987             -re "^ +9 +003109\[^\n\]*\n"                { set x [expr $x+1] }
988             -re "^ +\[0-9\]+ 0029 DDFFFF01\[^\n\]*\n"   { set x [expr $x+1] }
989             -re "^ +10 +00FF09\[^\n\]*\n"               { set x [expr $x+1] }
990             -re "^ +\[0-9\]+ 0030 CE34\[^\n\]*\n"       { set x [expr $x+1] }
991             -re "^ +\[0-9\]+ 0032 CE32\[^\n\]*\n"       { set x [expr $x+1] }
992             -re "^ +\[0-9\]+ 0034 CE31\[^\n\]*\n"       { set x [expr $x+1] }
993             -re "^ +\[0-9\]+ 0036 CEFF\[^\n\]*\n"       { set x [expr $x+1] }
994             -re "^ +\[0-9\]+ 0038 CF34\[^\n\]*\n"       { set x [expr $x+1] }
995             -re "^ +\[0-9\]+ 003a CF32\[^\n\]*\n"       { set x [expr $x+1] }
996             -re "^ +\[0-9\]+ 003c CF31\[^\n\]*\n"       { set x [expr $x+1] }
997             -re "^ +\[0-9\]+ 003e CFFF\[^\n\]*\n"       { set x [expr $x+1] }
998             -re "^ +\[0-9\]+ 0040 F8CE34\[^\n\]*\n"     { set x [expr $x+1] }
999             -re "^ +\[0-9\]+ 0043 F8CE32\[^\n\]*\n"     { set x [expr $x+1] }
1000             -re "^ +\[0-9\]+ 0046 F8CE31\[^\n\]*\n"     { set x [expr $x+1] }
1001             -re "^ +\[0-9\]+ 0049 F8CEFF\[^\n\]*\n"     { set x [expr $x+1] }
1002             -re "^ +\[0-9\]+ 004c F8CF34\[^\n\]*\n"     { set x [expr $x+1] }
1003             -re "^ +\[0-9\]+ 004f F8CF32\[^\n\]*\n"     { set x [expr $x+1] }
1004             -re "^ +\[0-9\]+ 0052 F8CF31\[^\n\]*\n"     { set x [expr $x+1] }
1005             -re "^ +\[0-9\]+ 0055 F8CFFF\[^\n\]*\n"     { set x [expr $x+1] }
1006             -re "^ +\[0-9\]+ 0058 F020\[^\n\]*\n"       { set x [expr $x+1] }
1007             -re "^ +\[0-9\]+ 005a F025\[^\n\]*\n"       { set x [expr $x+1] }
1008             -re "^ +\[0-9\]+ 005c F02A\[^\n\]*\n"       { set x [expr $x+1] }
1009             -re "^ +\[0-9\]+ 005e F02F\[^\n\]*\n"       { set x [expr $x+1] }
1010             -re "^ +\[0-9\]+ 0060 F030\[^\n\]*\n"       { set x [expr $x+1] }
1011             -re "^ +\[0-9\]+ 0062 F035\[^\n\]*\n"       { set x [expr $x+1] }
1012             -re "^ +\[0-9\]+ 0064 F03A\[^\n\]*\n"       { set x [expr $x+1] }
1013             -re "^ +\[0-9\]+ 0066 F0E4\[^\n\]*\n"       { set x [expr $x+1] }
1014             -re "^ +\[0-9\]+ 0068 F2EC\[^\n\]*\n"       { set x [expr $x+1] }
1015             -re "^ +\[0-9\]+ 006a F2F5\[^\n\]*\n"       { set x [expr $x+1] }
1016             -re "^ +\[0-9\]+ 006c F501\[^\n\]*\n"       { set x [expr $x+1] }
1017             -re "^ +\[0-9\]+ 006e F563\[^\n\]*\n"       { set x [expr $x+1] }
1018             -re "^ +\[0-9\]+ 0070 F595\[^\n\]*\n"       { set x [expr $x+1] }
1019             -re "^ +\[0-9\]+ 0072 F5DF\[^\n\]*\n"       { set x [expr $x+1] }
1020             -re "^ +\[0-9\]+ 0074 F630\[^\n\]*\n"       { set x [expr $x+1] }
1021             -re "^ +\[0-9\]+ 0076 F665\[^\n\]*\n"       { set x [expr $x+1] }
1022             -re "^ +\[0-9\]+ 0078 F6C0\[^\n\]*\n"       { set x [expr $x+1] }
1023             -re "^ +\[0-9\]+ 007a F6D5\[^\n\]*\n"       { set x [expr $x+1] }
1024             -re "^ +\[0-9\]+ 007c FCFC0000\[^\n\]*\n"   { set x [expr $x+1] }
1025             -re "^ +45 +0200\[^\n\]*\n"         { set x [expr $x+1] }
1026             -re "^ +\[0-9\]+ 0082 FCFDFFFF\[^\n\]*\n"   { set x [expr $x+1] }
1027             -re "^ +46 +0000\[^\n\]*\n"         { set x [expr $x+1] }
1028             -re "\[^\n\]*\n"                            { }
1029             timeout                             { perror "timeout\n"; break }
1030             eof                                 { break }
1031         }
1032     }
1033
1034     # This was intended to do any cleanup necessary.  It kinda looks like it
1035     # isn't needed, but just in case, please keep it in for now.
1036     gas_finish
1037
1038     # Did we find what we were looking for?  If not, flunk it.
1039     if [expr $x==54] then { pass $testname } else { fail $testname }
1040 }
1041
1042 proc do_am33_2 {} {
1043     set testname "am33_2.s: am33 tests part 2"
1044     set x 0
1045
1046     gas_start "am33_2.s" "-al"
1047
1048     # Instead of having a variable for each match string just increment the
1049     # total number of matches seen.  That's simpler when testing large numbers
1050     # of instructions (as these tests to).
1051     while 1 {
1052         expect {
1053             -re "^ +\[0-9\]+ 0000 F90801\[^\n\]*\n"     { set x [expr $x+1] }
1054             -re "^ +\[0-9\]+ 0003 F91822\[^\n\]*\n"     { set x [expr $x+1] }
1055             -re "^ +\[0-9\]+ 0006 F92834\[^\n\]*\n"     { set x [expr $x+1] }
1056             -re "^ +\[0-9\]+ 0009 F93845\[^\n\]*\n"     { set x [expr $x+1] }
1057             -re "^ +\[0-9\]+ 000c F94867\[^\n\]*\n"     { set x [expr $x+1] }
1058             -re "^ +\[0-9\]+ 000f F95878\[^\n\]*\n"     { set x [expr $x+1] }
1059             -re "^ +\[0-9\]+ 0012 F96899\[^\n\]*\n"     { set x [expr $x+1] }
1060             -re "^ +\[0-9\]+ 0015 F978AB\[^\n\]*\n"     { set x [expr $x+1] }
1061             -re "^ +\[0-9\]+ 0018 F988CD\[^\n\]*\n"     { set x [expr $x+1] }
1062             -re "^ +\[0-9\]+ 001b F998EF\[^\n\]*\n"     { set x [expr $x+1] }
1063             -re "^ +\[0-9\]+ 001e F9A8FE\[^\n\]*\n"     { set x [expr $x+1] }
1064             -re "^ +\[0-9\]+ 0021 F9B8DD\[^\n\]*\n"     { set x [expr $x+1] }
1065             -re "^ +\[0-9\]+ 0024 F9C8CC\[^\n\]*\n"     { set x [expr $x+1] }
1066             -re "^ +\[0-9\]+ 0027 F9D8BA\[^\n\]*\n"     { set x [expr $x+1] }
1067             -re "^ +\[0-9\]+ 002a F9E801\[^\n\]*\n"     { set x [expr $x+1] }
1068             -re "^ +\[0-9\]+ 002d F9F812\[^\n\]*\n"     { set x [expr $x+1] }
1069             -re "^ +\[0-9\]+ 0030 F90901\[^\n\]*\n"     { set x [expr $x+1] }
1070             -re "^ +\[0-9\]+ 0033 F91923\[^\n\]*\n"     { set x [expr $x+1] }
1071             -re "^ +\[0-9\]+ 0036 F92945\[^\n\]*\n"     { set x [expr $x+1] }
1072             -re "^ +\[0-9\]+ 0039 F93966\[^\n\]*\n"     { set x [expr $x+1] }
1073             -re "^ +\[0-9\]+ 003c F94978\[^\n\]*\n"     { set x [expr $x+1] }
1074             -re "^ +\[0-9\]+ 003f F9599A\[^\n\]*\n"     { set x [expr $x+1] }
1075             -re "^ +\[0-9\]+ 0042 F969BC\[^\n\]*\n"     { set x [expr $x+1] }
1076             -re "^ +\[0-9\]+ 0045 F979DD\[^\n\]*\n"     { set x [expr $x+1] }
1077             -re "^ +\[0-9\]+ 0048 F989EE\[^\n\]*\n"     { set x [expr $x+1] }
1078             -re "^ +\[0-9\]+ 004b F999FF\[^\n\]*\n"     { set x [expr $x+1] }
1079             -re "^ +\[0-9\]+ 004e F9A912\[^\n\]*\n"     { set x [expr $x+1] }
1080             -re "^ +\[0-9\]+ 0051 F9B934\[^\n\]*\n"     { set x [expr $x+1] }
1081             -re "^ +\[0-9\]+ 0054 F9C956\[^\n\]*\n"     { set x [expr $x+1] }
1082             -re "^ +\[0-9\]+ 0057 F9D978\[^\n\]*\n"     { set x [expr $x+1] }
1083             -re "^ +\[0-9\]+ 005a F90A21\[^\n\]*\n"     { set x [expr $x+1] }
1084             -re "^ +\[0-9\]+ 005d F91A34\[^\n\]*\n"     { set x [expr $x+1] }
1085             -re "^ +\[0-9\]+ 0060 F92A65\[^\n\]*\n"     { set x [expr $x+1] }
1086             -re "^ +\[0-9\]+ 0063 F93A78\[^\n\]*\n"     { set x [expr $x+1] }
1087             -re "^ +\[0-9\]+ 0066 F94AA9\[^\n\]*\n"     { set x [expr $x+1] }
1088             -re "^ +\[0-9\]+ 0069 F95ABC\[^\n\]*\n"     { set x [expr $x+1] }
1089             -re "^ +\[0-9\]+ 006c F96A21\[^\n\]*\n"     { set x [expr $x+1] }
1090             -re "^ +\[0-9\]+ 006f F97A34\[^\n\]*\n"     { set x [expr $x+1] }
1091             -re "^ +\[0-9\]+ 0072 F98A50\[^\n\]*\n"     { set x [expr $x+1] }
1092             -re "^ +\[0-9\]+ 0075 F99A60\[^\n\]*\n"     { set x [expr $x+1] }
1093             -re "^ +\[0-9\]+ 0078 F9AA70\[^\n\]*\n"     { set x [expr $x+1] }
1094             -re "^ +\[0-9\]+ 007b F9BA80\[^\n\]*\n"     { set x [expr $x+1] }
1095             -re "^ +\[0-9\]+ 007e F9CA90\[^\n\]*\n"     { set x [expr $x+1] }
1096             -re "^ +\[0-9\]+ 0081 F9DAA0\[^\n\]*\n"     { set x [expr $x+1] }
1097             -re "^ +\[0-9\]+ 0084 F9EA76\[^\n\]*\n"     { set x [expr $x+1] }
1098             -re "^ +\[0-9\]+ 0087 F9FA89\[^\n\]*\n"     { set x [expr $x+1] }
1099             -re "^ +\[0-9\]+ 008a F90B12\[^\n\]*\n"     { set x [expr $x+1] }
1100             -re "^ +\[0-9\]+ 008d F91B34\[^\n\]*\n"     { set x [expr $x+1] }
1101             -re "^ +\[0-9\]+ 0090 F92B56\[^\n\]*\n"     { set x [expr $x+1] }
1102             -re "^ +\[0-9\]+ 0093 F93B78\[^\n\]*\n"     { set x [expr $x+1] }
1103             -re "^ +\[0-9\]+ 0096 F94B9A\[^\n\]*\n"     { set x [expr $x+1] }
1104             -re "^ +\[0-9\]+ 0099 F95BBC\[^\n\]*\n"     { set x [expr $x+1] }
1105             -re "^ +\[0-9\]+ 009c F96BDE\[^\n\]*\n"     { set x [expr $x+1] }
1106             -re "^ +\[0-9\]+ 009f F97BFE\[^\n\]*\n"     { set x [expr $x+1] }
1107             -re "^ +\[0-9\]+ 00a2 F98BDC\[^\n\]*\n"     { set x [expr $x+1] }
1108             -re "^ +\[0-9\]+ 00a5 F99BBA\[^\n\]*\n"     { set x [expr $x+1] }
1109             -re "^ +\[0-9\]+ 00a8 F9AB98\[^\n\]*\n"     { set x [expr $x+1] }
1110             -re "^ +\[0-9\]+ 00ab F9BB76\[^\n\]*\n"     { set x [expr $x+1] }
1111             -re "^ +\[0-9\]+ 00ae F9CB54\[^\n\]*\n"     { set x [expr $x+1] }
1112             -re "^ +\[0-9\]+ 00b1 F9DB32\[^\n\]*\n"     { set x [expr $x+1] }
1113             -re "^ +\[0-9\]+ 00b4 F9EB10\[^\n\]*\n"     { set x [expr $x+1] }
1114             -re "^ +\[0-9\]+ 00b7 F9FB12\[^\n\]*\n"     { set x [expr $x+1] }
1115             -re "\[^\n\]*\n"                            { }
1116             timeout                             { perror "timeout\n"; break }
1117             eof                                 { break }
1118         }
1119     }
1120
1121     # This was intended to do any cleanup necessary.  It kinda looks like it
1122     # isn't needed, but just in case, please keep it in for now.
1123     gas_finish
1124
1125     # Did we find what we were looking for?  If not, flunk it.
1126     if [expr $x==62] then { pass $testname } else { fail $testname }
1127 }
1128
1129 proc do_am33_3 {} {
1130     set testname "am33_3.s: am33 tests part 3"
1131     set x 0
1132
1133     gas_start "am33_3.s" "-al"
1134
1135     # Instead of having a variable for each match string just increment the
1136     # total number of matches seen.  That's simpler when testing large numbers
1137     # of instructions (as these tests to).
1138     while 1 {
1139         expect {
1140             -re "^ +\[0-9\]+ 0000 FB081110\[^\n\]*\n"   { set x [expr $x+1] }
1141             -re "^ +\[0-9\]+ 0004 FB181110\[^\n\]*\n"   { set x [expr $x+1] }
1142             -re "^ +\[0-9\]+ 0008 FB781110\[^\n\]*\n"   { set x [expr $x+1] }
1143             -re "^ +\[0-9\]+ 000c FB881110\[^\n\]*\n"   { set x [expr $x+1] }
1144             -re "^ +\[0-9\]+ 0010 FB981110\[^\n\]*\n"   { set x [expr $x+1] }
1145             -re "^ +\[0-9\]+ 0014 FBA81110\[^\n\]*\n"   { set x [expr $x+1] }
1146             -re "^ +\[0-9\]+ 0018 FBD81110\[^\n\]*\n"   { set x [expr $x+1] }
1147             -re "^ +\[0-9\]+ 001c FBF81110\[^\n\]*\n"   { set x [expr $x+1] }
1148             -re "^ +\[0-9\]+ 0020 FB091110\[^\n\]*\n"   { set x [expr $x+1] }
1149             -re "^ +\[0-9\]+ 0024 FB191110\[^\n\]*\n"   { set x [expr $x+1] }
1150             -re "^ +\[0-9\]+ 0028 FB291110\[^\n\]*\n"   { set x [expr $x+1] }
1151             -re "^ +\[0-9\]+ 002c FB491110\[^\n\]*\n"   { set x [expr $x+1] }
1152             -re "^ +\[0-9\]+ 0030 FB591110\[^\n\]*\n"   { set x [expr $x+1] }
1153             -re "^ +\[0-9\]+ 0034 FB691110\[^\n\]*\n"   { set x [expr $x+1] }
1154             -re "^ +\[0-9\]+ 0038 FBA91110\[^\n\]*\n"   { set x [expr $x+1] }
1155             -re "^ +\[0-9\]+ 003c FBB91110\[^\n\]*\n"   { set x [expr $x+1] }
1156             -re "^ +\[0-9\]+ 0040 FBE91110\[^\n\]*\n"   { set x [expr $x+1] }
1157             -re "^ +\[0-9\]+ 0044 FB0A2110\[^\n\]*\n"   { set x [expr $x+1] }
1158             -re "^ +\[0-9\]+ 0048 FB1A2110\[^\n\]*\n"   { set x [expr $x+1] }
1159             -re "^ +\[0-9\]+ 004c FB2A2110\[^\n\]*\n"   { set x [expr $x+1] }
1160             -re "^ +\[0-9\]+ 0050 FB3A2110\[^\n\]*\n"   { set x [expr $x+1] }
1161             -re "^ +\[0-9\]+ 0054 FB4A2110\[^\n\]*\n"   { set x [expr $x+1] }
1162             -re "^ +\[0-9\]+ 0058 FB5A2110\[^\n\]*\n"   { set x [expr $x+1] }
1163             -re "^ +\[0-9\]+ 005c FB8A2010\[^\n\]*\n"   { set x [expr $x+1] }
1164             -re "^ +\[0-9\]+ 0060 FB9A2010\[^\n\]*\n"   { set x [expr $x+1] }
1165             -re "^ +\[0-9\]+ 0064 FBAA2010\[^\n\]*\n"   { set x [expr $x+1] }
1166             -re "^ +\[0-9\]+ 0068 FBBA2010\[^\n\]*\n"   { set x [expr $x+1] }
1167             -re "^ +\[0-9\]+ 006c FBCA2010\[^\n\]*\n"   { set x [expr $x+1] }
1168             -re "^ +\[0-9\]+ 0070 FBDA2010\[^\n\]*\n"   { set x [expr $x+1] }
1169             -re "^ +\[0-9\]+ 0074 FB0B1110\[^\n\]*\n"   { set x [expr $x+1] }
1170             -re "^ +\[0-9\]+ 0078 FB1B1110\[^\n\]*\n"   { set x [expr $x+1] }
1171             -re "^ +\[0-9\]+ 007c FB2B1110\[^\n\]*\n"   { set x [expr $x+1] }
1172             -re "^ +\[0-9\]+ 0080 FB3B1110\[^\n\]*\n"   { set x [expr $x+1] }
1173             -re "^ +\[0-9\]+ 0084 FB4B1110\[^\n\]*\n"   { set x [expr $x+1] }
1174             -re "^ +\[0-9\]+ 0088 FB5B1110\[^\n\]*\n"   { set x [expr $x+1] }
1175             -re "^ +\[0-9\]+ 008c FBBB1110\[^\n\]*\n"   { set x [expr $x+1] }
1176             -re "^ +\[0-9\]+ 0090 FB7C1230\[^\n\]*\n"   { set x [expr $x+1] }
1177             -re "^ +\[0-9\]+ 0094 FB6A2110\[^\n\]*\n"   { set x [expr $x+1] }
1178             -re "^ +\[0-9\]+ 0098 FB7A1210\[^\n\]*\n"   { set x [expr $x+1] }
1179             -re "^ +\[0-9\]+ 009c FBEA2110\[^\n\]*\n"   { set x [expr $x+1] }
1180             -re "^ +\[0-9\]+ 00a0 FBFA1210\[^\n\]*\n"   { set x [expr $x+1] }
1181             -re "\[^\n\]*\n"                            { }
1182             timeout                             { perror "timeout\n"; break }
1183             eof                                 { break }
1184         }
1185     }
1186
1187     # This was intended to do any cleanup necessary.  It kinda looks like it
1188     # isn't needed, but just in case, please keep it in for now.
1189     gas_finish
1190
1191     # Did we find what we were looking for?  If not, flunk it.
1192     if [expr $x==41] then { pass $testname } else { fail $testname }
1193 }
1194
1195 proc do_am33_4 {} {
1196     set testname "am33_4.s: am33 tests part 4"
1197     set x 0
1198
1199     gas_start "am33_4.s" "-al"
1200
1201     # Instead of having a variable for each match string just increment the
1202     # total number of matches seen.  That's simpler when testing large numbers
1203     # of instructions (as these tests to).
1204     while 1 {
1205         expect {
1206             -re "^ +\[0-9\]+ 0000 FD0822FF\[^\n\]*\n"   { set x [expr $x+1] }
1207             -re "^ +3 +FE1F\[^\n\]*\n"          { set x [expr $x+1] }
1208             -re "^ +\[0-9\]+ 0006 FD1822FF\[^\n\]*\n"   { set x [expr $x+1] }
1209             -re "^ +4 +FE1F\[^\n\]*\n"          { set x [expr $x+1] }
1210             -re "^ +\[0-9\]+ 000c FD7822FF\[^\n\]*\n"   { set x [expr $x+1] }
1211             -re "^ +5 +FE1F\[^\n\]*\n"          { set x [expr $x+1] }
1212             -re "^ +\[0-9\]+ 0012 FD8822FF\[^\n\]*\n"   { set x [expr $x+1] }
1213             -re "^ +6 +FE1F\[^\n\]*\n"          { set x [expr $x+1] }
1214             -re "^ +\[0-9\]+ 0018 FD9822FF\[^\n\]*\n"   { set x [expr $x+1] }
1215             -re "^ +7 +FE1F\[^\n\]*\n"          { set x [expr $x+1] }
1216             -re "^ +\[0-9\]+ 001e FDA822FF\[^\n\]*\n"   { set x [expr $x+1] }
1217             -re "^ +8 +FE1F\[^\n\]*\n"          { set x [expr $x+1] }
1218             -re "^ +\[0-9\]+ 0024 FDD822FF\[^\n\]*\n"   { set x [expr $x+1] }
1219             -re "^ +9 +FE1F\[^\n\]*\n"          { set x [expr $x+1] }
1220             -re "^ +\[0-9\]+ 002a FDF822FF\[^\n\]*\n"   { set x [expr $x+1] }
1221             -re "^ +10 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1222             -re "^ +\[0-9\]+ 0030 FD0922FF\[^\n\]*\n"   { set x [expr $x+1] }
1223             -re "^ +11 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1224             -re "^ +\[0-9\]+ 0036 FD1922FF\[^\n\]*\n"   { set x [expr $x+1] }
1225             -re "^ +12 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1226             -re "^ +\[0-9\]+ 003c FD2922FF\[^\n\]*\n"   { set x [expr $x+1] }
1227             -re "^ +13 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1228             -re "^ +\[0-9\]+ 0042 FD4922FF\[^\n\]*\n"   { set x [expr $x+1] }
1229             -re "^ +14 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1230             -re "^ +\[0-9\]+ 0048 FD5922FF\[^\n\]*\n"   { set x [expr $x+1] }
1231             -re "^ +15 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1232             -re "^ +\[0-9\]+ 004e FD6922FF\[^\n\]*\n"   { set x [expr $x+1] }
1233             -re "^ +16 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1234             -re "^ +\[0-9\]+ 0054 FDA922FF\[^\n\]*\n"   { set x [expr $x+1] }
1235             -re "^ +17 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1236             -re "^ +\[0-9\]+ 005a FDB922FF\[^\n\]*\n"   { set x [expr $x+1] }
1237             -re "^ +18 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1238             -re "^ +\[0-9\]+ 0060 FDE922FF\[^\n\]*\n"   { set x [expr $x+1] }
1239             -re "^ +19 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1240             -re "^ +\[0-9\]+ 0066 FD0A21FF\[^\n\]*\n"   { set x [expr $x+1] }
1241             -re "^ +20 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1242             -re "^ +\[0-9\]+ 006c FD1A21FF\[^\n\]*\n"   { set x [expr $x+1] }
1243             -re "^ +21 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1244             -re "^ +\[0-9\]+ 0072 FD2A21FF\[^\n\]*\n"   { set x [expr $x+1] }
1245             -re "^ +22 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1246             -re "^ +\[0-9\]+ 0078 FD3A21FF\[^\n\]*\n"   { set x [expr $x+1] }
1247             -re "^ +23 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1248             -re "^ +\[0-9\]+ 007e FD4A21FF\[^\n\]*\n"   { set x [expr $x+1] }
1249             -re "^ +24 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1250             -re "^ +\[0-9\]+ 0084 FD5A21FF\[^\n\]*\n"   { set x [expr $x+1] }
1251             -re "^ +25 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1252             -re "^ +\[0-9\]+ 008a FD8A20FF\[^\n\]*\n"   { set x [expr $x+1] }
1253             -re "^ +26 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1254             -re "^ +\[0-9\]+ 0090 FD9A20FF\[^\n\]*\n"   { set x [expr $x+1] }
1255             -re "^ +27 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1256             -re "^ +\[0-9\]+ 0096 FDAA20FF\[^\n\]*\n"   { set x [expr $x+1] }
1257             -re "^ +28 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1258             -re "^ +\[0-9\]+ 009c FDBA20FF\[^\n\]*\n"   { set x [expr $x+1] }
1259             -re "^ +29 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1260             -re "^ +\[0-9\]+ 00a2 FDCA20FF\[^\n\]*\n"   { set x [expr $x+1] }
1261             -re "^ +30 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1262             -re "^ +\[0-9\]+ 00a8 FDDA20FF\[^\n\]*\n"   { set x [expr $x+1] }
1263             -re "^ +31 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1264             -re "^ +\[0-9\]+ 00ae FD0B22FF\[^\n\]*\n"   { set x [expr $x+1] }
1265             -re "^ +32 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1266             -re "^ +\[0-9\]+ 00b4 FD1B22FF\[^\n\]*\n"   { set x [expr $x+1] }
1267             -re "^ +33 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1268             -re "^ +\[0-9\]+ 00ba FD2B22FF\[^\n\]*\n"   { set x [expr $x+1] }
1269             -re "^ +34 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1270             -re "^ +\[0-9\]+ 00c0 FD3B22FF\[^\n\]*\n"   { set x [expr $x+1] }
1271             -re "^ +35 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1272             -re "^ +\[0-9\]+ 00c6 FD4B22FF\[^\n\]*\n"   { set x [expr $x+1] }
1273             -re "^ +36 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1274             -re "^ +\[0-9\]+ 00cc FD5B22FF\[^\n\]*\n"   { set x [expr $x+1] }
1275             -re "^ +37 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1276             -re "^ +\[0-9\]+ 00d2 FD0E20FF\[^\n\]*\n"   { set x [expr $x+1] }
1277             -re "^ +38 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1278             -re "^ +\[0-9\]+ 00d8 FD1E20FF\[^\n\]*\n"   { set x [expr $x+1] }
1279             -re "^ +39 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1280             -re "^ +\[0-9\]+ 00de FD2E20FF\[^\n\]*\n"   { set x [expr $x+1] }
1281             -re "^ +40 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1282             -re "^ +\[0-9\]+ 00e4 FD3E20FF\[^\n\]*\n"   { set x [expr $x+1] }
1283             -re "^ +41 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1284             -re "^ +\[0-9\]+ 00ea FD4E20FF\[^\n\]*\n"   { set x [expr $x+1] }
1285             -re "^ +42 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1286             -re "^ +\[0-9\]+ 00f0 FD5E20FF\[^\n\]*\n"   { set x [expr $x+1] }
1287             -re "^ +43 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1288             -re "^ +\[0-9\]+ 00f6 FD6A21FF\[^\n\]*\n"   { set x [expr $x+1] }
1289             -re "^ +44 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1290             -re "^ +\[0-9\]+ 00fc FD7A12FF\[^\n\]*\n"   { set x [expr $x+1] }
1291             -re "^ +45 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1292             -re "^ +\[0-9\]+ 0102 FDEA21FF\[^\n\]*\n"   { set x [expr $x+1] }
1293             -re "^ +46 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1294             -re "^ +\[0-9\]+ 0108 FDFA12FF\[^\n\]*\n"   { set x [expr $x+1] }
1295             -re "^ +47 +FE1F\[^\n\]*\n"         { set x [expr $x+1] }
1296             -re "\[^\n\]*\n"                            { }
1297             timeout                             { perror "timeout\n"; break }
1298             eof                                 { break }
1299         }
1300     }
1301
1302     # This was intended to do any cleanup necessary.  It kinda looks like it
1303     # isn't needed, but just in case, please keep it in for now.
1304     gas_finish
1305
1306     # Did we find what we were looking for?  If not, flunk it.
1307     if [expr $x==90] then { pass $testname } else { fail $testname }
1308 }
1309
1310 proc do_am33_5 {} {
1311     set testname "am33_5.s: am33 tests part 5"
1312     set x 0
1313
1314     gas_start "am33_5.s" "-al"
1315
1316     # Instead of having a variable for each match string just increment the
1317     # total number of matches seen.  That's simpler when testing large numbers
1318     # of instructions (as these tests to).
1319     while 1 {
1320         expect {
1321             -re "^ +\[0-9\]+ 0000 FE0822FC\[^\n\]*\n"   { set x [expr $x+1] }
1322             -re "^ +3 +FDFE7F\[^\n\]*\n"                { set x [expr $x+1] }
1323             -re "^ +\[0-9\]+ 0007 FE1822FC\[^\n\]*\n"   { set x [expr $x+1] }
1324             -re "^ +4 +FDFE7F\[^\n\]*\n"                { set x [expr $x+1] }
1325             -re "^ +\[0-9\]+ 000e FE7822FC\[^\n\]*\n"   { set x [expr $x+1] }
1326             -re "^ +5 +FDFE7F\[^\n\]*\n"                { set x [expr $x+1] }
1327             -re "^ +\[0-9\]+ 0015 FE8822FC\[^\n\]*\n"   { set x [expr $x+1] }
1328             -re "^ +6 +FDFE7F\[^\n\]*\n"                { set x [expr $x+1] }
1329             -re "^ +\[0-9\]+ 001c FE9822FC\[^\n\]*\n"   { set x [expr $x+1] }
1330             -re "^ +7 +FDFE7F\[^\n\]*\n"                { set x [expr $x+1] }
1331             -re "^ +\[0-9\]+ 0023 FEA822FC\[^\n\]*\n"   { set x [expr $x+1] }
1332             -re "^ +8 +FDFE7F\[^\n\]*\n"                { set x [expr $x+1] }
1333             -re "^ +\[0-9\]+ 002a FED822FC\[^\n\]*\n"   { set x [expr $x+1] }
1334             -re "^ +9 +FDFE7F\[^\n\]*\n"                { set x [expr $x+1] }
1335             -re "^ +\[0-9\]+ 0031 FEF822FC\[^\n\]*\n"   { set x [expr $x+1] }
1336             -re "^ +10 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1337             -re "^ +\[0-9\]+ 0038 FE0922FC\[^\n\]*\n"   { set x [expr $x+1] }
1338             -re "^ +11 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1339             -re "^ +\[0-9\]+ 003f FE1922FC\[^\n\]*\n"   { set x [expr $x+1] }
1340             -re "^ +12 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1341             -re "^ +\[0-9\]+ 0046 FE2922FC\[^\n\]*\n"   { set x [expr $x+1] }
1342             -re "^ +13 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1343             -re "^ +\[0-9\]+ 004d FE4922FC\[^\n\]*\n"   { set x [expr $x+1] }
1344             -re "^ +14 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1345             -re "^ +\[0-9\]+ 0054 FE5922FC\[^\n\]*\n"   { set x [expr $x+1] }
1346             -re "^ +15 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1347             -re "^ +\[0-9\]+ 005b FE6922FC\[^\n\]*\n"   { set x [expr $x+1] }
1348             -re "^ +16 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1349             -re "^ +\[0-9\]+ 0062 FEA922FC\[^\n\]*\n"   { set x [expr $x+1] }
1350             -re "^ +17 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1351             -re "^ +\[0-9\]+ 0069 FEB922FC\[^\n\]*\n"   { set x [expr $x+1] }
1352             -re "^ +18 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1353             -re "^ +\[0-9\]+ 0070 FEE922FC\[^\n\]*\n"   { set x [expr $x+1] }
1354             -re "^ +19 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1355             -re "^ +\[0-9\]+ 0077 FE0A21FC\[^\n\]*\n"   { set x [expr $x+1] }
1356             -re "^ +20 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1357             -re "^ +\[0-9\]+ 007e FE1A21FC\[^\n\]*\n"   { set x [expr $x+1] }
1358             -re "^ +21 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1359             -re "^ +\[0-9\]+ 0085 FE2A21FC\[^\n\]*\n"   { set x [expr $x+1] }
1360             -re "^ +22 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1361             -re "^ +\[0-9\]+ 008c FE3A21FC\[^\n\]*\n"   { set x [expr $x+1] }
1362             -re "^ +23 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1363             -re "^ +\[0-9\]+ 0093 FE4A21FC\[^\n\]*\n"   { set x [expr $x+1] }
1364             -re "^ +24 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1365             -re "^ +\[0-9\]+ 009a FE5A21FC\[^\n\]*\n"   { set x [expr $x+1] }
1366             -re "^ +25 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1367             -re "^ +\[0-9\]+ 00a1 FE8A20FC\[^\n\]*\n"   { set x [expr $x+1] }
1368             -re "^ +26 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1369             -re "^ +\[0-9\]+ 00a8 FE9A20FC\[^\n\]*\n"   { set x [expr $x+1] }
1370             -re "^ +27 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1371             -re "^ +\[0-9\]+ 00af FEAA20FC\[^\n\]*\n"   { set x [expr $x+1] }
1372             -re "^ +28 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1373             -re "^ +\[0-9\]+ 00b6 FEBA20FC\[^\n\]*\n"   { set x [expr $x+1] }
1374             -re "^ +29 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1375             -re "^ +\[0-9\]+ 00bd FECA20FC\[^\n\]*\n"   { set x [expr $x+1] }
1376             -re "^ +30 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1377             -re "^ +\[0-9\]+ 00c4 FEDA20FC\[^\n\]*\n"   { set x [expr $x+1] }
1378             -re "^ +31 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1379             -re "^ +\[0-9\]+ 00cb FE0B22FC\[^\n\]*\n"   { set x [expr $x+1] }
1380             -re "^ +32 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1381             -re "^ +\[0-9\]+ 00d2 FE1B22FC\[^\n\]*\n"   { set x [expr $x+1] }
1382             -re "^ +33 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1383             -re "^ +\[0-9\]+ 00d9 FE2B22FC\[^\n\]*\n"   { set x [expr $x+1] }
1384             -re "^ +34 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1385             -re "^ +\[0-9\]+ 00e0 FE3B22FC\[^\n\]*\n"   { set x [expr $x+1] }
1386             -re "^ +35 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1387             -re "^ +\[0-9\]+ 00e7 FE4B22FC\[^\n\]*\n"   { set x [expr $x+1] }
1388             -re "^ +36 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1389             -re "^ +\[0-9\]+ 00ee FE5B22FC\[^\n\]*\n"   { set x [expr $x+1] }
1390             -re "^ +37 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1391             -re "^ +\[0-9\]+ 00f5 FE6B22FC\[^\n\]*\n"   { set x [expr $x+1] }
1392             -re "^ +38 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1393             -re "^ +\[0-9\]+ 00fc FE7B22FC\[^\n\]*\n"   { set x [expr $x+1] }
1394             -re "^ +39 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1395             -re "^ +\[0-9\]+ 0103 FE8B22FC\[^\n\]*\n"   { set x [expr $x+1] }
1396             -re "^ +40 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1397             -re "^ +\[0-9\]+ 010a FE9B22FC\[^\n\]*\n"   { set x [expr $x+1] }
1398             -re "^ +41 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1399             -re "^ +\[0-9\]+ 0111 FE0E20FC\[^\n\]*\n"   { set x [expr $x+1] }
1400             -re "^ +42 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1401             -re "^ +\[0-9\]+ 0118 FE1E20FC\[^\n\]*\n"   { set x [expr $x+1] }
1402             -re "^ +43 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1403             -re "^ +\[0-9\]+ 011f FE2E20FC\[^\n\]*\n"   { set x [expr $x+1] }
1404             -re "^ +44 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1405             -re "^ +\[0-9\]+ 0126 FE3E20FC\[^\n\]*\n"   { set x [expr $x+1] }
1406             -re "^ +45 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1407             -re "^ +\[0-9\]+ 012d FE4E20FC\[^\n\]*\n"   { set x [expr $x+1] }
1408             -re "^ +46 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1409             -re "^ +\[0-9\]+ 0134 FE5E20FC\[^\n\]*\n"   { set x [expr $x+1] }
1410             -re "^ +47 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1411             -re "^ +\[0-9\]+ 013b FBADCD89\[^\n\]*\n"   { set x [expr $x+1] }
1412             -re "^ +\[0-9\]+ 013f FBBDCD89\[^\n\]*\n"   { set x [expr $x+1] }
1413             -re "^ +\[0-9\]+ 0143 FE6A21FC\[^\n\]*\n"   { set x [expr $x+1] }
1414             -re "^ +50 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1415             -re "^ +\[0-9\]+ 014a FE7A12FC\[^\n\]*\n"   { set x [expr $x+1] }
1416             -re "^ +51 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1417             -re "^ +\[0-9\]+ 0151 FEEA21FC\[^\n\]*\n"   { set x [expr $x+1] }
1418             -re "^ +52 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1419             -re "^ +\[0-9\]+ 0158 FEFA12FC\[^\n\]*\n"   { set x [expr $x+1] }
1420             -re "^ +53 +FDFE7F\[^\n\]*\n"               { set x [expr $x+1] }
1421             -re "^ +\[0-9\]+ 015f FE8A20F0\[^\n\]*\n"   { set x [expr $x+1] }
1422             -re "^ +54 +FFFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1423             -re "^ +\[0-9\]+ 0166 FE9A20F0\[^\n\]*\n"   { set x [expr $x+1] }
1424             -re "^ +55 +FFFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1425             -re "^ +\[0-9\]+ 016d FEAA20F0\[^\n\]*\n"   { set x [expr $x+1] }
1426             -re "^ +56 +FFFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1427             -re "^ +\[0-9\]+ 0174 FEBA20F0\[^\n\]*\n"   { set x [expr $x+1] }
1428             -re "^ +57 +FFFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1429             -re "^ +\[0-9\]+ 017b FECA20F0\[^\n\]*\n"   { set x [expr $x+1] }
1430             -re "^ +58 +FFFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1431             -re "^ +\[0-9\]+ 0182 FEDA20F0\[^\n\]*\n"   { set x [expr $x+1] }
1432             -re "^ +59 +FFFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1433             -re "^ +\[0-9\]+ 0189 FE8A2000\[^\n\]*\n"   { set x [expr $x+1] }
1434             -re "^ +60 +FCFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1435             -re "^ +\[0-9\]+ 0190 FE9A2000\[^\n\]*\n"   { set x [expr $x+1] }
1436             -re "^ +61 +FCFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1437             -re "^ +\[0-9\]+ 0197 FEAA2000\[^\n\]*\n"   { set x [expr $x+1] }
1438             -re "^ +62 +FCFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1439             -re "^ +\[0-9\]+ 019e FEBA2000\[^\n\]*\n"   { set x [expr $x+1] }
1440             -re "^ +63 +FCFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1441             -re "^ +\[0-9\]+ 01a5 FECA2000\[^\n\]*\n"   { set x [expr $x+1] }
1442             -re "^ +64 +FCFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1443             -re "^ +\[0-9\]+ 01ac FEDA2000\[^\n\]*\n"   { set x [expr $x+1] }
1444             -re "^ +65 +FCFFFF\[^\n\]*\n"               { set x [expr $x+1] }
1445             -re "\[^\n\]*\n"                            { }
1446             timeout                             { perror "timeout\n"; break }
1447             eof                                 { break }
1448         }
1449     }
1450
1451     # This was intended to do any cleanup necessary.  It kinda looks like it
1452     # isn't needed, but just in case, please keep it in for now.
1453     gas_finish
1454
1455     # Did we find what we were looking for?  If not, flunk it.
1456     if [expr $x==124] then { pass $testname } else { fail $testname }
1457 }
1458
1459 proc do_am33_6 {} {
1460     set testname "am33_6.s: am33 tests part 6"
1461     set x 0
1462
1463     gas_start "am33_6.s" "-al"
1464
1465     # Instead of having a variable for each match string just increment the
1466     # total number of matches seen.  That's simpler when testing large numbers
1467     # of instructions (as these tests to).
1468     while 1 {
1469         expect {
1470             -re "^ +\[0-9\]+ 0000 F7004123\[^\n\]*\n"   { set x [expr $x+1] }
1471             -re "^ +\[0-9\]+ 0004 F7104123\[^\n\]*\n"   { set x [expr $x+1] }
1472             -re "^ +\[0-9\]+ 0008 F7204123\[^\n\]*\n"   { set x [expr $x+1] }
1473             -re "^ +\[0-9\]+ 000c F7304123\[^\n\]*\n"   { set x [expr $x+1] }
1474             -re "^ +\[0-9\]+ 0010 F7404123\[^\n\]*\n"   { set x [expr $x+1] }
1475             -re "^ +\[0-9\]+ 0014 F7504123\[^\n\]*\n"   { set x [expr $x+1] }
1476             -re "^ +\[0-9\]+ 0018 F7604123\[^\n\]*\n"   { set x [expr $x+1] }
1477             -re "^ +\[0-9\]+ 001c F7704123\[^\n\]*\n"   { set x [expr $x+1] }
1478             -re "^ +\[0-9\]+ 0020 F7804123\[^\n\]*\n"   { set x [expr $x+1] }
1479             -re "^ +\[0-9\]+ 0024 F7904123\[^\n\]*\n"   { set x [expr $x+1] }
1480             -re "^ +\[0-9\]+ 0028 F7A04123\[^\n\]*\n"   { set x [expr $x+1] }
1481             -re "^ +\[0-9\]+ 002c F7B04123\[^\n\]*\n"   { set x [expr $x+1] }
1482             -re "^ +\[0-9\]+ 0030 F7C04123\[^\n\]*\n"   { set x [expr $x+1] }
1483             -re "^ +\[0-9\]+ 0034 F7D04123\[^\n\]*\n"   { set x [expr $x+1] }
1484             -re "^ +\[0-9\]+ 0038 F7014123\[^\n\]*\n"   { set x [expr $x+1] }
1485             -re "^ +\[0-9\]+ 003c F7114123\[^\n\]*\n"   { set x [expr $x+1] }
1486             -re "^ +\[0-9\]+ 0040 F7214123\[^\n\]*\n"   { set x [expr $x+1] }
1487             -re "^ +\[0-9\]+ 0044 F7314123\[^\n\]*\n"   { set x [expr $x+1] }
1488             -re "^ +\[0-9\]+ 0048 F7614123\[^\n\]*\n"   { set x [expr $x+1] }
1489             -re "^ +\[0-9\]+ 004c F7714123\[^\n\]*\n"   { set x [expr $x+1] }
1490             -re "^ +\[0-9\]+ 0050 F7814123\[^\n\]*\n"   { set x [expr $x+1] }
1491             -re "^ +\[0-9\]+ 0054 F7914123\[^\n\]*\n"   { set x [expr $x+1] }
1492             -re "^ +\[0-9\]+ 0058 F7A14123\[^\n\]*\n"   { set x [expr $x+1] }
1493             -re "^ +\[0-9\]+ 005c F7B14123\[^\n\]*\n"   { set x [expr $x+1] }
1494             -re "^ +\[0-9\]+ 0060 F7C14123\[^\n\]*\n"   { set x [expr $x+1] }
1495             -re "^ +\[0-9\]+ 0064 F7D14123\[^\n\]*\n"   { set x [expr $x+1] }
1496             -re "^ +\[0-9\]+ 0068 F7024123\[^\n\]*\n"   { set x [expr $x+1] }
1497             -re "^ +\[0-9\]+ 006c F7124123\[^\n\]*\n"   { set x [expr $x+1] }
1498             -re "^ +\[0-9\]+ 0070 F7224123\[^\n\]*\n"   { set x [expr $x+1] }
1499             -re "^ +\[0-9\]+ 0074 F7324123\[^\n\]*\n"   { set x [expr $x+1] }
1500             -re "^ +\[0-9\]+ 0078 F7424123\[^\n\]*\n"   { set x [expr $x+1] }
1501             -re "^ +\[0-9\]+ 007c F7524123\[^\n\]*\n"   { set x [expr $x+1] }
1502             -re "^ +\[0-9\]+ 0080 F7624123\[^\n\]*\n"   { set x [expr $x+1] }
1503             -re "^ +\[0-9\]+ 0084 F7724123\[^\n\]*\n"   { set x [expr $x+1] }
1504             -re "^ +\[0-9\]+ 0088 F7824123\[^\n\]*\n"   { set x [expr $x+1] }
1505             -re "^ +\[0-9\]+ 008c F7924123\[^\n\]*\n"   { set x [expr $x+1] }
1506             -re "^ +\[0-9\]+ 0090 F7A24123\[^\n\]*\n"   { set x [expr $x+1] }
1507             -re "^ +\[0-9\]+ 0094 F7B24123\[^\n\]*\n"   { set x [expr $x+1] }
1508             -re "^ +\[0-9\]+ 0098 F7C24123\[^\n\]*\n"   { set x [expr $x+1] }
1509             -re "^ +\[0-9\]+ 009c F7D24123\[^\n\]*\n"   { set x [expr $x+1] }
1510             -re "^ +\[0-9\]+ 00a0 F7034123\[^\n\]*\n"   { set x [expr $x+1] }
1511             -re "^ +\[0-9\]+ 00a4 F7134123\[^\n\]*\n"   { set x [expr $x+1] }
1512             -re "^ +\[0-9\]+ 00a8 F7234123\[^\n\]*\n"   { set x [expr $x+1] }
1513             -re "^ +\[0-9\]+ 00ac F7334123\[^\n\]*\n"   { set x [expr $x+1] }
1514             -re "^ +\[0-9\]+ 00b0 F7434123\[^\n\]*\n"   { set x [expr $x+1] }
1515             -re "^ +\[0-9\]+ 00b4 F7534123\[^\n\]*\n"   { set x [expr $x+1] }
1516             -re "^ +\[0-9\]+ 00b8 F7634123\[^\n\]*\n"   { set x [expr $x+1] }
1517             -re "^ +\[0-9\]+ 00bc F7734123\[^\n\]*\n"   { set x [expr $x+1] }
1518             -re "^ +\[0-9\]+ 00c0 F7834123\[^\n\]*\n"   { set x [expr $x+1] }
1519             -re "^ +\[0-9\]+ 00c4 F7934123\[^\n\]*\n"   { set x [expr $x+1] }
1520             -re "^ +\[0-9\]+ 00c8 F7A34123\[^\n\]*\n"   { set x [expr $x+1] }
1521             -re "^ +\[0-9\]+ 00cc F7B34123\[^\n\]*\n"   { set x [expr $x+1] }
1522             -re "^ +\[0-9\]+ 00d0 F7C34123\[^\n\]*\n"   { set x [expr $x+1] }
1523             -re "^ +\[0-9\]+ 00d4 F7D34123\[^\n\]*\n"   { set x [expr $x+1] }
1524             -re "^ +\[0-9\]+ 00d8 F7044123\[^\n\]*\n"   { set x [expr $x+1] }
1525             -re "^ +\[0-9\]+ 00dc F7144123\[^\n\]*\n"   { set x [expr $x+1] }
1526             -re "^ +\[0-9\]+ 00e0 F7244123\[^\n\]*\n"   { set x [expr $x+1] }
1527             -re "^ +\[0-9\]+ 00e4 F7344123\[^\n\]*\n"   { set x [expr $x+1] }
1528             -re "^ +\[0-9\]+ 00e8 F7444123\[^\n\]*\n"   { set x [expr $x+1] }
1529             -re "^ +\[0-9\]+ 00ec F7544123\[^\n\]*\n"   { set x [expr $x+1] }
1530             -re "^ +\[0-9\]+ 00f0 F7644123\[^\n\]*\n"   { set x [expr $x+1] }
1531             -re "^ +\[0-9\]+ 00f4 F7744123\[^\n\]*\n"   { set x [expr $x+1] }
1532             -re "^ +\[0-9\]+ 00f8 F7844123\[^\n\]*\n"   { set x [expr $x+1] }
1533             -re "^ +\[0-9\]+ 00fc F7944123\[^\n\]*\n"   { set x [expr $x+1] }
1534             -re "^ +\[0-9\]+ 0100 F7A44123\[^\n\]*\n"   { set x [expr $x+1] }
1535             -re "^ +\[0-9\]+ 0104 F7B44123\[^\n\]*\n"   { set x [expr $x+1] }
1536             -re "^ +\[0-9\]+ 0108 F7C44123\[^\n\]*\n"   { set x [expr $x+1] }
1537             -re "^ +\[0-9\]+ 010c F7D44123\[^\n\]*\n"   { set x [expr $x+1] }
1538             -re "\[^\n\]*\n"                            { }
1539             timeout                             { perror "timeout\n"; break }
1540             eof                                 { break }
1541         }
1542     }
1543
1544     # This was intended to do any cleanup necessary.  It kinda looks like it
1545     # isn't needed, but just in case, please keep it in for now.
1546     gas_finish
1547
1548     # Did we find what we were looking for?  If not, flunk it.
1549     if [expr $x==68] then { pass $testname } else { fail $testname }
1550 }
1551
1552 proc do_am33_7 {} {
1553     set testname "am33_7.s: am33 tests part 7"
1554     set x 0
1555
1556     gas_start "am33_7.s" "-al"
1557
1558     # Instead of having a variable for each match string just increment the
1559     # total number of matches seen.  That's simpler when testing large numbers
1560     # of instructions (as these tests to).
1561     while 1 {
1562         expect {
1563             -re "^ +\[0-9\]+ 0000 F7054123\[^\n\]*\n"   { set x [expr $x+1] }
1564             -re "^ +\[0-9\]+ 0004 F7154123\[^\n\]*\n"   { set x [expr $x+1] }
1565             -re "^ +\[0-9\]+ 0008 F7254123\[^\n\]*\n"   { set x [expr $x+1] }
1566             -re "^ +\[0-9\]+ 000c F7354123\[^\n\]*\n"   { set x [expr $x+1] }
1567             -re "^ +\[0-9\]+ 0010 F7654123\[^\n\]*\n"   { set x [expr $x+1] }
1568             -re "^ +\[0-9\]+ 0014 F7754123\[^\n\]*\n"   { set x [expr $x+1] }
1569             -re "^ +\[0-9\]+ 0018 F7854123\[^\n\]*\n"   { set x [expr $x+1] }
1570             -re "^ +\[0-9\]+ 001c F7954123\[^\n\]*\n"   { set x [expr $x+1] }
1571             -re "^ +\[0-9\]+ 0020 F7A54123\[^\n\]*\n"   { set x [expr $x+1] }
1572             -re "^ +\[0-9\]+ 0024 F7B54123\[^\n\]*\n"   { set x [expr $x+1] }
1573             -re "^ +\[0-9\]+ 0028 F7C54123\[^\n\]*\n"   { set x [expr $x+1] }
1574             -re "^ +\[0-9\]+ 002c F7D54123\[^\n\]*\n"   { set x [expr $x+1] }
1575             -re "^ +\[0-9\]+ 0030 F7064123\[^\n\]*\n"   { set x [expr $x+1] }
1576             -re "^ +\[0-9\]+ 0034 F7164123\[^\n\]*\n"   { set x [expr $x+1] }
1577             -re "^ +\[0-9\]+ 0038 F7264123\[^\n\]*\n"   { set x [expr $x+1] }
1578             -re "^ +\[0-9\]+ 003c F7364123\[^\n\]*\n"   { set x [expr $x+1] }
1579             -re "^ +\[0-9\]+ 0040 F7464123\[^\n\]*\n"   { set x [expr $x+1] }
1580             -re "^ +\[0-9\]+ 0044 F7564123\[^\n\]*\n"   { set x [expr $x+1] }
1581             -re "^ +\[0-9\]+ 0048 F7664123\[^\n\]*\n"   { set x [expr $x+1] }
1582             -re "^ +\[0-9\]+ 004c F7764123\[^\n\]*\n"   { set x [expr $x+1] }
1583             -re "^ +\[0-9\]+ 0050 F7864123\[^\n\]*\n"   { set x [expr $x+1] }
1584             -re "^ +\[0-9\]+ 0054 F7964123\[^\n\]*\n"   { set x [expr $x+1] }
1585             -re "^ +\[0-9\]+ 0058 F7A64123\[^\n\]*\n"   { set x [expr $x+1] }
1586             -re "^ +\[0-9\]+ 005c F7B64123\[^\n\]*\n"   { set x [expr $x+1] }
1587             -re "^ +\[0-9\]+ 0060 F7C64123\[^\n\]*\n"   { set x [expr $x+1] }
1588             -re "^ +\[0-9\]+ 0064 F7D64123\[^\n\]*\n"   { set x [expr $x+1] }
1589             -re "^ +\[0-9\]+ 0068 F7074123\[^\n\]*\n"   { set x [expr $x+1] }
1590             -re "^ +\[0-9\]+ 006c F7174123\[^\n\]*\n"   { set x [expr $x+1] }
1591             -re "^ +\[0-9\]+ 0070 F7274123\[^\n\]*\n"   { set x [expr $x+1] }
1592             -re "^ +\[0-9\]+ 0074 F7374123\[^\n\]*\n"   { set x [expr $x+1] }
1593             -re "^ +\[0-9\]+ 0078 F7474123\[^\n\]*\n"   { set x [expr $x+1] }
1594             -re "^ +\[0-9\]+ 007c F7574123\[^\n\]*\n"   { set x [expr $x+1] }
1595             -re "^ +\[0-9\]+ 0080 F7674123\[^\n\]*\n"   { set x [expr $x+1] }
1596             -re "^ +\[0-9\]+ 0084 F7774123\[^\n\]*\n"   { set x [expr $x+1] }
1597             -re "^ +\[0-9\]+ 0088 F7874123\[^\n\]*\n"   { set x [expr $x+1] }
1598             -re "^ +\[0-9\]+ 008c F7974123\[^\n\]*\n"   { set x [expr $x+1] }
1599             -re "^ +\[0-9\]+ 0090 F7A74123\[^\n\]*\n"   { set x [expr $x+1] }
1600             -re "^ +\[0-9\]+ 0094 F7B74123\[^\n\]*\n"   { set x [expr $x+1] }
1601             -re "^ +\[0-9\]+ 0098 F7C74123\[^\n\]*\n"   { set x [expr $x+1] }
1602             -re "^ +\[0-9\]+ 009c F7D74123\[^\n\]*\n"   { set x [expr $x+1] }
1603             -re "^ +\[0-9\]+ 00a0 F7084123\[^\n\]*\n"   { set x [expr $x+1] }
1604             -re "^ +\[0-9\]+ 00a4 F7184123\[^\n\]*\n"   { set x [expr $x+1] }
1605             -re "^ +\[0-9\]+ 00a8 F7284123\[^\n\]*\n"   { set x [expr $x+1] }
1606             -re "^ +\[0-9\]+ 00ac F7384123\[^\n\]*\n"   { set x [expr $x+1] }
1607             -re "^ +\[0-9\]+ 00b0 F7484123\[^\n\]*\n"   { set x [expr $x+1] }
1608             -re "^ +\[0-9\]+ 00b4 F7584123\[^\n\]*\n"   { set x [expr $x+1] }
1609             -re "^ +\[0-9\]+ 00b8 F7684123\[^\n\]*\n"   { set x [expr $x+1] }
1610             -re "^ +\[0-9\]+ 00bc F7784123\[^\n\]*\n"   { set x [expr $x+1] }
1611             -re "^ +\[0-9\]+ 00c0 F7884123\[^\n\]*\n"   { set x [expr $x+1] }
1612             -re "^ +\[0-9\]+ 00c4 F7984123\[^\n\]*\n"   { set x [expr $x+1] }
1613             -re "^ +\[0-9\]+ 00c8 F7A84123\[^\n\]*\n"   { set x [expr $x+1] }
1614             -re "^ +\[0-9\]+ 00cc F7B84123\[^\n\]*\n"   { set x [expr $x+1] }
1615             -re "^ +\[0-9\]+ 00d0 F7C84123\[^\n\]*\n"   { set x [expr $x+1] }
1616             -re "^ +\[0-9\]+ 00d4 F7D84123\[^\n\]*\n"   { set x [expr $x+1] }
1617             -re "^ +\[0-9\]+ 00d8 F7094123\[^\n\]*\n"   { set x [expr $x+1] }
1618             -re "^ +\[0-9\]+ 00dc F7194123\[^\n\]*\n"   { set x [expr $x+1] }
1619             -re "^ +\[0-9\]+ 00e0 F7294123\[^\n\]*\n"   { set x [expr $x+1] }
1620             -re "^ +\[0-9\]+ 00e4 F7394123\[^\n\]*\n"   { set x [expr $x+1] }
1621             -re "^ +\[0-9\]+ 00e8 F7494123\[^\n\]*\n"   { set x [expr $x+1] }
1622             -re "^ +\[0-9\]+ 00ec F7594123\[^\n\]*\n"   { set x [expr $x+1] }
1623             -re "^ +\[0-9\]+ 00f0 F7694123\[^\n\]*\n"   { set x [expr $x+1] }
1624             -re "^ +\[0-9\]+ 00f4 F7794123\[^\n\]*\n"   { set x [expr $x+1] }
1625             -re "^ +\[0-9\]+ 00f8 F7894123\[^\n\]*\n"   { set x [expr $x+1] }
1626             -re "^ +\[0-9\]+ 00fc F7994123\[^\n\]*\n"   { set x [expr $x+1] }
1627             -re "^ +\[0-9\]+ 0100 F7A94123\[^\n\]*\n"   { set x [expr $x+1] }
1628             -re "^ +\[0-9\]+ 0104 F7B94123\[^\n\]*\n"   { set x [expr $x+1] }
1629             -re "^ +\[0-9\]+ 0108 F7C94123\[^\n\]*\n"   { set x [expr $x+1] }
1630             -re "^ +\[0-9\]+ 010c F7D94123\[^\n\]*\n"   { set x [expr $x+1] }
1631             -re "\[^\n\]*\n"                            { }
1632             timeout                             { perror "timeout\n"; break }
1633             eof                                 { break }
1634         }
1635     }
1636
1637     # This was intended to do any cleanup necessary.  It kinda looks like it
1638     # isn't needed, but just in case, please keep it in for now.
1639     gas_finish
1640
1641     # Did we find what we were looking for?  If not, flunk it.
1642     if [expr $x==68] then { pass $testname } else { fail $testname }
1643 }
1644
1645 proc do_am33_8 {} {
1646     set testname "am33_8.s: am33 tests part 8"
1647     set x 0
1648
1649     gas_start "am33_8.s" "-al"
1650
1651     # Instead of having a variable for each match string just increment the
1652     # total number of matches seen.  That's simpler when testing large numbers
1653     # of instructions (as these tests to).
1654     while 1 {
1655         expect {
1656             -re "^ +\[0-9\]+ 0000 F70A4123\[^\n\]*\n"   { set x [expr $x+1] }
1657             -re "^ +\[0-9\]+ 0004 F71A4123\[^\n\]*\n"   { set x [expr $x+1] }
1658             -re "^ +\[0-9\]+ 0008 F72A4123\[^\n\]*\n"   { set x [expr $x+1] }
1659             -re "^ +\[0-9\]+ 000c F73A4123\[^\n\]*\n"   { set x [expr $x+1] }
1660             -re "^ +\[0-9\]+ 0010 F74A4123\[^\n\]*\n"   { set x [expr $x+1] }
1661             -re "^ +\[0-9\]+ 0014 F75A4123\[^\n\]*\n"   { set x [expr $x+1] }
1662             -re "^ +\[0-9\]+ 0018 F76A4123\[^\n\]*\n"   { set x [expr $x+1] }
1663             -re "^ +\[0-9\]+ 001c F77A4123\[^\n\]*\n"   { set x [expr $x+1] }
1664             -re "^ +\[0-9\]+ 0020 F78A4123\[^\n\]*\n"   { set x [expr $x+1] }
1665             -re "^ +\[0-9\]+ 0024 F79A4123\[^\n\]*\n"   { set x [expr $x+1] }
1666             -re "^ +\[0-9\]+ 0028 F7AA4123\[^\n\]*\n"   { set x [expr $x+1] }
1667             -re "^ +\[0-9\]+ 002c F7BA4123\[^\n\]*\n"   { set x [expr $x+1] }
1668             -re "^ +\[0-9\]+ 0030 F7CA4123\[^\n\]*\n"   { set x [expr $x+1] }
1669             -re "^ +\[0-9\]+ 0034 F7DA4123\[^\n\]*\n"   { set x [expr $x+1] }
1670             -re "^ +\[0-9\]+ 0038 F70B4123\[^\n\]*\n"   { set x [expr $x+1] }
1671             -re "^ +\[0-9\]+ 003c F71B4123\[^\n\]*\n"   { set x [expr $x+1] }
1672             -re "^ +\[0-9\]+ 0040 F72B4123\[^\n\]*\n"   { set x [expr $x+1] }
1673             -re "^ +\[0-9\]+ 0044 F73B4123\[^\n\]*\n"   { set x [expr $x+1] }
1674             -re "^ +\[0-9\]+ 0048 F74B4123\[^\n\]*\n"   { set x [expr $x+1] }
1675             -re "^ +\[0-9\]+ 004c F75B4123\[^\n\]*\n"   { set x [expr $x+1] }
1676             -re "^ +\[0-9\]+ 0050 F76B4123\[^\n\]*\n"   { set x [expr $x+1] }
1677             -re "^ +\[0-9\]+ 0054 F77B4123\[^\n\]*\n"   { set x [expr $x+1] }
1678             -re "^ +\[0-9\]+ 0058 F78B4123\[^\n\]*\n"   { set x [expr $x+1] }
1679             -re "^ +\[0-9\]+ 005c F79B4123\[^\n\]*\n"   { set x [expr $x+1] }
1680             -re "^ +\[0-9\]+ 0060 F7AB4123\[^\n\]*\n"   { set x [expr $x+1] }
1681             -re "^ +\[0-9\]+ 0064 F7BB4123\[^\n\]*\n"   { set x [expr $x+1] }
1682             -re "^ +\[0-9\]+ 0068 F7CB4123\[^\n\]*\n"   { set x [expr $x+1] }
1683             -re "^ +\[0-9\]+ 006c F7DB4123\[^\n\]*\n"   { set x [expr $x+1] }
1684             -re "^ +\[0-9\]+ 0070 F70C4123\[^\n\]*\n"   { set x [expr $x+1] }
1685             -re "^ +\[0-9\]+ 0074 F71C4123\[^\n\]*\n"   { set x [expr $x+1] }
1686             -re "^ +\[0-9\]+ 0078 F72C4123\[^\n\]*\n"   { set x [expr $x+1] }
1687             -re "^ +\[0-9\]+ 007c F73C4123\[^\n\]*\n"   { set x [expr $x+1] }
1688             -re "^ +\[0-9\]+ 0080 F74C4123\[^\n\]*\n"   { set x [expr $x+1] }
1689             -re "^ +\[0-9\]+ 0084 F75C4123\[^\n\]*\n"   { set x [expr $x+1] }
1690             -re "^ +\[0-9\]+ 0088 F76C4123\[^\n\]*\n"   { set x [expr $x+1] }
1691             -re "^ +\[0-9\]+ 008c F77C4123\[^\n\]*\n"   { set x [expr $x+1] }
1692             -re "^ +\[0-9\]+ 0090 F78C4123\[^\n\]*\n"   { set x [expr $x+1] }
1693             -re "^ +\[0-9\]+ 0094 F79C4123\[^\n\]*\n"   { set x [expr $x+1] }
1694             -re "^ +\[0-9\]+ 0098 F7AC4123\[^\n\]*\n"   { set x [expr $x+1] }
1695             -re "^ +\[0-9\]+ 009c F7BC4123\[^\n\]*\n"   { set x [expr $x+1] }
1696             -re "^ +\[0-9\]+ 00a0 F7CC4123\[^\n\]*\n"   { set x [expr $x+1] }
1697             -re "^ +\[0-9\]+ 00a4 F7DC4123\[^\n\]*\n"   { set x [expr $x+1] }
1698             -re "^ +\[0-9\]+ 00a8 F70D4123\[^\n\]*\n"   { set x [expr $x+1] }
1699             -re "^ +\[0-9\]+ 00ac F71D4123\[^\n\]*\n"   { set x [expr $x+1] }
1700             -re "^ +\[0-9\]+ 00b0 F72D4123\[^\n\]*\n"   { set x [expr $x+1] }
1701             -re "^ +\[0-9\]+ 00b4 F73D4123\[^\n\]*\n"   { set x [expr $x+1] }
1702             -re "^ +\[0-9\]+ 00b8 F74D4123\[^\n\]*\n"   { set x [expr $x+1] }
1703             -re "^ +\[0-9\]+ 00bc F75D4123\[^\n\]*\n"   { set x [expr $x+1] }
1704             -re "^ +\[0-9\]+ 00c0 F76D4123\[^\n\]*\n"   { set x [expr $x+1] }
1705             -re "^ +\[0-9\]+ 00c4 F77D4123\[^\n\]*\n"   { set x [expr $x+1] }
1706             -re "^ +\[0-9\]+ 00c8 F78D4123\[^\n\]*\n"   { set x [expr $x+1] }
1707             -re "^ +\[0-9\]+ 00cc F79D4123\[^\n\]*\n"   { set x [expr $x+1] }
1708             -re "^ +\[0-9\]+ 00d0 F7AD4123\[^\n\]*\n"   { set x [expr $x+1] }
1709             -re "^ +\[0-9\]+ 00d4 F7BD4123\[^\n\]*\n"   { set x [expr $x+1] }
1710             -re "^ +\[0-9\]+ 00d8 F7CD4123\[^\n\]*\n"   { set x [expr $x+1] }
1711             -re "^ +\[0-9\]+ 00dc F7DD4123\[^\n\]*\n"   { set x [expr $x+1] }
1712             -re "^ +\[0-9\]+ 00e0 F7E02140\[^\n\]*\n"   { set x [expr $x+1] }
1713             -re "^ +\[0-9\]+ 00e4 F7E02141\[^\n\]*\n"   { set x [expr $x+1] }
1714             -re "^ +\[0-9\]+ 00e8 F7E02142\[^\n\]*\n"   { set x [expr $x+1] }
1715             -re "^ +\[0-9\]+ 00ec F7E02143\[^\n\]*\n"   { set x [expr $x+1] }
1716             -re "^ +\[0-9\]+ 00f0 F7E02144\[^\n\]*\n"   { set x [expr $x+1] }
1717             -re "^ +\[0-9\]+ 00f4 F7E02145\[^\n\]*\n"   { set x [expr $x+1] }
1718             -re "^ +\[0-9\]+ 00f8 F7E02146\[^\n\]*\n"   { set x [expr $x+1] }
1719             -re "^ +\[0-9\]+ 00fc F7E02147\[^\n\]*\n"   { set x [expr $x+1] }
1720             -re "^ +\[0-9\]+ 0100 F7E02148\[^\n\]*\n"   { set x [expr $x+1] }
1721             -re "^ +\[0-9\]+ 0104 F7E02149\[^\n\]*\n"   { set x [expr $x+1] }
1722             -re "^ +\[0-9\]+ 0108 F7E0214A\[^\n\]*\n"   { set x [expr $x+1] }
1723             -re "\[^\n\]*\n"                            { }
1724             timeout                             { perror "timeout\n"; break }
1725             eof                                 { break }
1726         }
1727     }
1728
1729     # This was intended to do any cleanup necessary.  It kinda looks like it
1730     # isn't needed, but just in case, please keep it in for now.
1731     gas_finish
1732
1733     # Did we find what we were looking for?  If not, flunk it.
1734     if [expr $x==67] then { pass $testname } else { fail $testname }
1735 }
1736
1737 proc run_list_test { name opts } {
1738     global srcdir subdir
1739     set testname "mn10300 $name"
1740     set file $srcdir/$subdir/$name
1741     gas_run ${name}.s $opts ">&dump.out"
1742     if { [regexp_diff "dump.out" "${file}.l"] } then {
1743         fail $testname
1744         verbose "output is [file_contents "dump.out"]" 2
1745         return
1746     }
1747     pass $testname
1748 }
1749
1750
1751 if [istarget mn10300*-*-*] then {
1752     # Test the basic instruction parser.
1753     do_add
1754     do_bcc
1755     do_bit
1756     do_cmp
1757     do_ext
1758     do_extend
1759     do_logical
1760     do_loop
1761     do_mov1
1762     do_mov2
1763     do_mov3
1764     do_mov4
1765     do_movbu
1766     do_movhu
1767     do_movm
1768     do_muldiv
1769     do_other
1770     do_shift
1771     do_sub
1772     do_udf
1773     do_am33_1
1774     do_am33_2
1775     do_am33_3
1776     do_am33_4
1777     do_am33_5
1778     do_am33_6
1779     do_am33_7
1780     do_am33_8
1781
1782     run_list_test "movpc" ""
1783 }