Home | History | Annotate | Download | only in mn10300
      1 # Copyright (C) 1996-2016 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 3 of the License, or
      6 # (at your option) any later version.
      7 #
      8 # This program is distributed in the hope that it will be useful,
      9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
     10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     11 # GNU General Public License for more details.
     12 #
     13 # You should have received a copy of the GNU General Public License
     14 # along with this program; if not, write to the Free Software
     15 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
     16 
     17 # Please email any bugs, comments, and/or additions to this file to:
     18 # dejagnu (at) gnu.org
     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_mov5 {} {
    503     set testname "mov5.s: mov5 tests"
    504     set x 0
    505 
    506     gas_start "mov5.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 FBF80008\[^\n\]*\n"	{ set x [expr $x+1] }
    514 	    -re "^ +\[0-9\]+ 0004 FDF80000\[^\n\]*\n"	{ set x [expr $x+1] }
    515 	    -re "^ +4 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    516 	    -re "^ +\[0-9\]+ 000a FDF800FF\[^\n\]*\n"	{ set x [expr $x+1] }
    517 	    -re "^ +5 +FF7F\[^\n\]*\n"			{ set x [expr $x+1] }
    518 	    -re "^ +\[0-9\]+ 0010 FEF80080\[^\n\]*\n"	{ set x [expr $x+1] }
    519 	    -re "^ +6 +FFFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
    520 	    -re "^ +\[0-9\]+ 0017 FEF80000\[^\n\]*\n"	{ set x [expr $x+1] }
    521 	    -re "^ +7 +0080FF\[^\n\]*\n"		{ set x [expr $x+1] }
    522 	    -re "\[^\n\]*\n"				{ }
    523 	    timeout				{ perror "timeout\n"; break }
    524 	    eof					{ break }
    525 	}
    526     }
    527 
    528     # This was intended to do any cleanup necessary.  It kinda looks like it
    529     # isn't needed, but just in case, please keep it in for now.
    530     gas_finish
    531 
    532     # Did we find what we were looking for?  If not, flunk it.
    533     if [expr $x==9] then { pass $testname } else { fail $testname }
    534 }
    535 
    536 proc do_movbu {} {
    537     set testname "movbu.s: movbu tests"
    538     set x 0
    539 
    540     gas_start "movbu.s" "-al"
    541 
    542     # Instead of having a variable for each match string just increment the
    543     # total number of matches seen.  That's simpler when testing large numbers
    544     # of instructions (as these tests to).
    545     while 1 {
    546 	expect {
    547 	    -re "^ +\[0-9\]+ 0000 F046\[^\n\]*\n"	{ set x [expr $x+1] }
    548 	    -re "^ +\[0-9\]+ 0002 F84608\[^\n\]*\n"	{ set x [expr $x+1] }
    549 	    -re "^ +\[0-9\]+ 0005 FA460001\[^\n\]*\n"	{ set x [expr $x+1] }
    550 	    -re "^ +\[0-9\]+ 0009 FC46FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    551 	    -re "^ +5 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    552 	    -re "^ +\[0-9\]+ 000f F8B908\[^\n\]*\n"	{ set x [expr $x+1] }
    553 	    -re "^ +\[0-9\]+ 0012 FAB90001\[^\n\]*\n"	{ set x [expr $x+1] }
    554 	    -re "^ +\[0-9\]+ 0016 FCB9FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    555 	    -re "^ +8 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    556 	    -re "^ +\[0-9\]+ 001c F425\[^\n\]*\n"	{ set x [expr $x+1] }
    557 	    -re "^ +\[0-9\]+ 001e 350080\[^\n\]*\n"	{ set x [expr $x+1] }
    558 	    -re "^ +\[0-9\]+ 0021 FCA9FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    559 	    -re "^ +11 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    560 	    -re "^ +\[0-9\]+ 0027 F056\[^\n\]*\n"	{ set x [expr $x+1] }
    561 	    -re "^ +\[0-9\]+ 0029 F85620\[^\n\]*\n"	{ set x [expr $x+1] }
    562 	    -re "^ +\[0-9\]+ 002c FA560001\[^\n\]*\n"	{ set x [expr $x+1] }
    563 	    -re "^ +\[0-9\]+ 0030 FC56FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    564 	    -re "^ +15 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    565 	    -re "^ +\[0-9\]+ 0036 F89620\[^\n\]*\n"	{ set x [expr $x+1] }
    566 	    -re "^ +\[0-9\]+ 0039 FA960080\[^\n\]*\n"	{ set x [expr $x+1] }
    567 	    -re "^ +\[0-9\]+ 003d FC96FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    568 	    -re "^ +18 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    569 	    -re "^ +\[0-9\]+ 0043 F45A\[^\n\]*\n"	{ set x [expr $x+1] }
    570 	    -re "^ +\[0-9\]+ 0045 068000\[^\n\]*\n"	{ set x [expr $x+1] }
    571 	    -re "^ +\[0-9\]+ 0048 FC86FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    572 	    -re "^ +21 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    573 	    -re "\[^\n\]*\n"				{ }
    574 	    timeout				{ perror "timeout\n"; break }
    575 	    eof					{ break }
    576 	}
    577     }
    578 
    579     # This was intended to do any cleanup necessary.  It kinda looks like it
    580     # isn't needed, but just in case, please keep it in for now.
    581     gas_finish
    582 
    583     # Did we find what we were looking for?  If not, flunk it.
    584     if [expr $x==26] then { pass $testname } else { fail $testname }
    585 }
    586 
    587 proc do_movhu {} {
    588     set testname "movhu.s: movhu tests"
    589     set x 0
    590 
    591     gas_start "movhu.s" "-al"
    592 
    593     # Instead of having a variable for each match string just increment the
    594     # total number of matches seen.  That's simpler when testing large numbers
    595     # of instructions (as these tests to).
    596     while 1 {
    597 	expect {
    598 	    -re "^ +\[0-9\]+ 0000 F066\[^\n\]*\n"	{ set x [expr $x+1] }
    599 	    -re "^ +\[0-9\]+ 0002 F86608\[^\n\]*\n"	{ set x [expr $x+1] }
    600 	    -re "^ +\[0-9\]+ 0005 FA660001\[^\n\]*\n"	{ set x [expr $x+1] }
    601 	    -re "^ +\[0-9\]+ 0009 FC66FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    602 	    -re "^ +5 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    603 	    -re "^ +\[0-9\]+ 000f F8BD08\[^\n\]*\n"	{ set x [expr $x+1] }
    604 	    -re "^ +\[0-9\]+ 0012 FABD0001\[^\n\]*\n"	{ set x [expr $x+1] }
    605 	    -re "^ +\[0-9\]+ 0016 FCBDFFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    606 	    -re "^ +8 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    607 	    -re "^ +\[0-9\]+ 001c F4A5\[^\n\]*\n"	{ set x [expr $x+1] }
    608 	    -re "^ +\[0-9\]+ 001e 390080\[^\n\]*\n"	{ set x [expr $x+1] }
    609 	    -re "^ +\[0-9\]+ 0021 FCADFFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    610 	    -re "^ +11 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    611 	    -re "^ +\[0-9\]+ 0027 F076\[^\n\]*\n"	{ set x [expr $x+1] }
    612 	    -re "^ +\[0-9\]+ 0029 F87620\[^\n\]*\n"	{ set x [expr $x+1] }
    613 	    -re "^ +\[0-9\]+ 002c FA760001\[^\n\]*\n"	{ set x [expr $x+1] }
    614 	    -re "^ +\[0-9\]+ 0030 FC76FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    615 	    -re "^ +15 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    616 	    -re "^ +\[0-9\]+ 0036 F89720\[^\n\]*\n"	{ set x [expr $x+1] }
    617 	    -re "^ +\[0-9\]+ 0039 FA970080\[^\n\]*\n"	{ set x [expr $x+1] }
    618 	    -re "^ +\[0-9\]+ 003d FC97FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    619 	    -re "^ +18 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    620 	    -re "^ +\[0-9\]+ 0043 F4DA\[^\n\]*\n"	{ set x [expr $x+1] }
    621 	    -re "^ +\[0-9\]+ 0045 078000\[^\n\]*\n"	{ set x [expr $x+1] }
    622 	    -re "^ +\[0-9\]+ 0048 FC87FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    623 	    -re "^ +21 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    624 	    -re "\[^\n\]*\n"				{ }
    625 	    timeout				{ perror "timeout\n"; break }
    626 	    eof					{ break }
    627 	}
    628     }
    629 
    630     # This was intended to do any cleanup necessary.  It kinda looks like it
    631     # isn't needed, but just in case, please keep it in for now.
    632     gas_finish
    633 
    634     # Did we find what we were looking for?  If not, flunk it.
    635     if [expr $x==26] then { pass $testname } else { fail $testname }
    636 }
    637 
    638 proc do_movm {} {
    639     set testname "movm.s: movm tests"
    640     set x 0
    641 
    642     gas_start "movm.s" "-al"
    643 
    644     # Instead of having a variable for each match string just increment the
    645     # total number of matches seen.  That's simpler when testing large numbers
    646     # of instructions (as these tests to).
    647     while 1 {
    648 	expect {
    649 	    -re "^ +\[0-9\]+ 0000 CE30\[^\n\]*\n"	{ set x [expr $x+1] }
    650 	    -re "^ +\[0-9\]+ 0002 CEF8\[^\n\]*\n"	{ set x [expr $x+1] }
    651 	    -re "^ +\[0-9\]+ 0004 CF30\[^\n\]*\n"	{ set x [expr $x+1] }
    652 	    -re "^ +\[0-9\]+ 0006 CFF8\[^\n\]*\n"	{ set x [expr $x+1] }
    653 	    -re "\[^\n\]*\n"				{ }
    654 	    timeout				{ perror "timeout\n"; break }
    655 	    eof					{ break }
    656 	}
    657     }
    658 
    659     # This was intended to do any cleanup necessary.  It kinda looks like it
    660     # isn't needed, but just in case, please keep it in for now.
    661     gas_finish
    662 
    663     # Did we find what we were looking for?  If not, flunk it.
    664     if [expr $x==4] then { pass $testname } else { fail $testname }
    665 }
    666 
    667 proc do_muldiv {} {
    668     set testname "muldiv.s: muldiv tests"
    669     set x 0
    670 
    671     gas_start "muldiv.s" "-al"
    672 
    673     # Instead of having a variable for each match string just increment the
    674     # total number of matches seen.  That's simpler when testing large numbers
    675     # of instructions (as these tests to).
    676     while 1 {
    677 	expect {
    678 	    -re "^ +\[0-9\]+ 0000 F246\[^\n\]*\n"	{ set x [expr $x+1] }
    679 	    -re "^ +\[0-9\]+ 0002 F25B\[^\n\]*\n"	{ set x [expr $x+1] }
    680 	    -re "^ +\[0-9\]+ 0004 F26F\[^\n\]*\n"	{ set x [expr $x+1] }
    681 	    -re "^ +\[0-9\]+ 0006 F27E\[^\n\]*\n"	{ set x [expr $x+1] }
    682 	    -re "\[^\n\]*\n"				{ }
    683 	    timeout				{ perror "timeout\n"; break }
    684 	    eof					{ break }
    685 	}
    686     }
    687 
    688     # This was intended to do any cleanup necessary.  It kinda looks like it
    689     # isn't needed, but just in case, please keep it in for now.
    690     gas_finish
    691 
    692     # Did we find what we were looking for?  If not, flunk it.
    693     if [expr $x==4] then { pass $testname } else { fail $testname }
    694 }
    695 
    696 proc do_other {} {
    697     set testname "other.s: other tests"
    698     set x 0
    699 
    700     gas_start "other.s" "-al"
    701 
    702     # Instead of having a variable for each match string just increment the
    703     # total number of matches seen.  That's simpler when testing large numbers
    704     # of instructions (as these tests to).
    705     while 1 {
    706 	expect {
    707 	    -re "^ +\[0-9\]+ 0000 08\[^\n\]*\n"		{ set x [expr $x+1] }
    708 	    -re "^ +\[0-9\]+ 0001 44\[^\n\]*\n"		{ set x [expr $x+1] }
    709 	    -re "^ +\[0-9\]+ 0002 49\[^\n\]*\n"		{ set x [expr $x+1] }
    710 	    -re "^ +\[0-9\]+ 0003 53\[^\n\]*\n"		{ set x [expr $x+1] }
    711 	    -re "^ +\[0-9\]+ 0004 F0F6\[^\n\]*\n"	{ set x [expr $x+1] }
    712 	    -re "^ +\[0-9\]+ 0006 CC0001\[^\n\]*\n"	{ set x [expr $x+1] }
    713 	    -re "^ +\[0-9\]+ 0009 DCFFFF01\[^\n\]*\n"	{ set x [expr $x+1] }
    714 	    -re "^ +8 +00\[^\n\]*\n"			{ set x [expr $x+1] }
    715 	    -re "^ +\[0-9\]+ 000e CD000130\[^\n\]*\n"	{ set x [expr $x+1] }
    716 	    -re "^ +9 +09\[^\n\]*\n"			{ set x [expr $x+1] }
    717 	    -re "^ +\[0-9\]+ 0013 DDFFFF01\[^\n\]*\n"	{ set x [expr $x+1] }
    718 	    -re "^ +10 +003020\[^\n\]*\n"		{ set x [expr $x+1] }
    719 	    -re "^ +\[0-9\]+ 001a F0F2\[^\n\]*\n"	{ set x [expr $x+1] }
    720 	    -re "^ +\[0-9\]+ 001c FAFF0001\[^\n\]*\n"	{ set x [expr $x+1] }
    721 	    -re "^ +\[0-9\]+ 0020 FCFFFFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    722 	    -re "^ +13 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    723 	    -re "^ +\[0-9\]+ 0026 DF3007\[^\n\]*\n"	{ set x [expr $x+1] }
    724 	    -re "^ +\[0-9\]+ 0029 DE3005\[^\n\]*\n"	{ set x [expr $x+1] }
    725 	    -re "^ +\[0-9\]+ 002c F0FC\[^\n\]*\n"	{ set x [expr $x+1] }
    726 	    -re "^ +\[0-9\]+ 002e F0FD\[^\n\]*\n"	{ set x [expr $x+1] }
    727 	    -re "^ +\[0-9\]+ 0030 F0FE\[^\n\]*\n"	{ set x [expr $x+1] }
    728 	    -re "^ +\[0-9\]+ 0032 CB\[^\n\]*\n"		{ set x [expr $x+1] }
    729 	    -re "^ +\[0-9\]+ 0033 F0FF\[^\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==23] then { pass $testname } else { fail $testname }
    742 }
    743 
    744 proc do_shift {} {
    745     set testname "shift.s: shift tests"
    746     set x 0
    747 
    748     gas_start "shift.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 F2B6\[^\n\]*\n"	{ set x [expr $x+1] }
    756 	    -re "^ +\[0-9\]+ 0002 F8CA04\[^\n\]*\n"	{ set x [expr $x+1] }
    757 	    -re "^ +\[0-9\]+ 0005 F2AB\[^\n\]*\n"	{ set x [expr $x+1] }
    758 	    -re "^ +\[0-9\]+ 0007 F8C704\[^\n\]*\n"	{ set x [expr $x+1] }
    759 	    -re "^ +\[0-9\]+ 000a F29E\[^\n\]*\n"	{ set x [expr $x+1] }
    760 	    -re "^ +\[0-9\]+ 000c F8C204\[^\n\]*\n"	{ set x [expr $x+1] }
    761 	    -re "^ +\[0-9\]+ 000f 56\[^\n\]*\n"		{ set x [expr $x+1] }
    762 	    -re "^ +\[0-9\]+ 0010 F285\[^\n\]*\n"	{ set x [expr $x+1] }
    763 	    -re "^ +\[0-9\]+ 0012 F282\[^\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_sub {} {
    779     set testname "sub.s: sub tests"
    780     set x 0
    781 
    782     gas_start "sub.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 F106\[^\n\]*\n"	{ set x [expr $x+1] }
    790 	    -re "^ +\[0-9\]+ 0002 F12B\[^\n\]*\n"	{ set x [expr $x+1] }
    791 	    -re "^ +\[0-9\]+ 0004 F11F\[^\n\]*\n"	{ set x [expr $x+1] }
    792 	    -re "^ +\[0-9\]+ 0006 F13E\[^\n\]*\n"	{ set x [expr $x+1] }
    793 	    -re "^ +\[0-9\]+ 0008 FCC6FFFF \[^\n\]*\n"	{ set x [expr $x+1] }
    794 	    -re "^ +6 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    795 	    -re "^ +\[0-9\]+ 000e FCD5FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    796 	    -re "^ +7 +0100\[^\n\]*\n"			{ set x [expr $x+1] }
    797 	    -re "^ +\[0-9\]+ 0014 F186\[^\n\]*\n"	{ set x [expr $x+1] }
    798 	    -re "\[^\n\]*\n"				{ }
    799 	    timeout				{ perror "timeout\n"; break }
    800 	    eof					{ break }
    801 	}
    802     }
    803 
    804     # This was intended to do any cleanup necessary.  It kinda looks like it
    805     # isn't needed, but just in case, please keep it in for now.
    806     gas_finish
    807 
    808     # Did we find what we were looking for?  If not, flunk it.
    809     if [expr $x==9] then { pass $testname } else { fail $testname }
    810 }
    811 
    812 proc do_udf {} {
    813     set testname "udf.s: udf tests part 1"
    814     set x 0
    815 
    816     gas_start "udf.s" "-al"
    817 
    818     # Instead of having a variable for each match string just increment the
    819     # total number of matches seen.  That's simpler when testing large numbers
    820     # of instructions (as these tests to).
    821     while 1 {
    822 	expect {
    823 	    -re "^ +\[0-9\]+ 0000 F601\[^\n\]*\n"	{ set x [expr $x+1] }
    824 	    -re "^ +\[0-9\]+ 0002 F611\[^\n\]*\n"	{ set x [expr $x+1] }
    825 	    -re "^ +\[0-9\]+ 0004 F621\[^\n\]*\n"	{ set x [expr $x+1] }
    826 	    -re "^ +\[0-9\]+ 0006 F631\[^\n\]*\n"	{ set x [expr $x+1] }
    827 	    -re "^ +\[0-9\]+ 0008 F641\[^\n\]*\n"	{ set x [expr $x+1] }
    828 	    -re "^ +\[0-9\]+ 000a F651\[^\n\]*\n"	{ set x [expr $x+1] }
    829 	    -re "^ +\[0-9\]+ 000c F661\[^\n\]*\n"	{ set x [expr $x+1] }
    830 	    -re "^ +\[0-9\]+ 000e F671\[^\n\]*\n"	{ set x [expr $x+1] }
    831 	    -re "^ +\[0-9\]+ 0010 F681\[^\n\]*\n"	{ set x [expr $x+1] }
    832 	    -re "^ +\[0-9\]+ 0012 F691\[^\n\]*\n"	{ set x [expr $x+1] }
    833 	    -re "^ +\[0-9\]+ 0014 F6A1\[^\n\]*\n"	{ set x [expr $x+1] }
    834 	    -re "^ +\[0-9\]+ 0016 F6B1\[^\n\]*\n"	{ set x [expr $x+1] }
    835 	    -re "^ +\[0-9\]+ 0018 F6C1\[^\n\]*\n"	{ set x [expr $x+1] }
    836 	    -re "^ +\[0-9\]+ 001a F6D1\[^\n\]*\n"	{ set x [expr $x+1] }
    837 	    -re "^ +\[0-9\]+ 001c F6E1\[^\n\]*\n"	{ set x [expr $x+1] }
    838 	    -re "^ +\[0-9\]+ 001e F6F1\[^\n\]*\n"	{ set x [expr $x+1] }
    839 	    -re "^ +\[0-9\]+ 0020 F501\[^\n\]*\n"	{ set x [expr $x+1] }
    840 	    -re "^ +\[0-9\]+ 0022 F511\[^\n\]*\n"	{ set x [expr $x+1] }
    841 	    -re "^ +\[0-9\]+ 0024 F521\[^\n\]*\n"	{ set x [expr $x+1] }
    842 	    -re "^ +\[0-9\]+ 0026 F531\[^\n\]*\n"	{ set x [expr $x+1] }
    843 	    -re "^ +\[0-9\]+ 0028 F541\[^\n\]*\n"	{ set x [expr $x+1] }
    844 	    -re "^ +\[0-9\]+ 002a F551\[^\n\]*\n"	{ set x [expr $x+1] }
    845 	    -re "^ +\[0-9\]+ 002c F561\[^\n\]*\n"	{ set x [expr $x+1] }
    846 	    -re "^ +\[0-9\]+ 002e F571\[^\n\]*\n"	{ set x [expr $x+1] }
    847 	    -re "^ +\[0-9\]+ 0030 F581\[^\n\]*\n"	{ set x [expr $x+1] }
    848 	    -re "^ +\[0-9\]+ 0032 F591\[^\n\]*\n"	{ set x [expr $x+1] }
    849 	    -re "^ +\[0-9\]+ 0034 F5A1\[^\n\]*\n"	{ set x [expr $x+1] }
    850 	    -re "^ +\[0-9\]+ 0036 F5B1\[^\n\]*\n"	{ set x [expr $x+1] }
    851 	    -re "^ +\[0-9\]+ 0038 F5C1\[^\n\]*\n"	{ set x [expr $x+1] }
    852 	    -re "^ +\[0-9\]+ 003a F5D1\[^\n\]*\n"	{ set x [expr $x+1] }
    853 	    -re "^ +\[0-9\]+ 003c F5E1\[^\n\]*\n"	{ set x [expr $x+1] }
    854 	    -re "^ +\[0-9\]+ 003e F5F1\[^\n\]*\n"	{ set x [expr $x+1] }
    855 	    -re "^ +\[0-9\]+ 0040 F9017F\[^\n\]*\n"	{ set x [expr $x+1] }
    856 	    -re "^ +\[0-9\]+ 0043 F9117F\[^\n\]*\n"	{ set x [expr $x+1] }
    857 	    -re "^ +\[0-9\]+ 0046 F9217F\[^\n\]*\n"	{ set x [expr $x+1] }
    858 	    -re "^ +\[0-9\]+ 0049 F9317F\[^\n\]*\n"	{ set x [expr $x+1] }
    859 	    -re "^ +\[0-9\]+ 004c F9417F\[^\n\]*\n"	{ set x [expr $x+1] }
    860 	    -re "^ +\[0-9\]+ 004f F9517F\[^\n\]*\n"	{ set x [expr $x+1] }
    861 	    -re "^ +\[0-9\]+ 0052 F9617F\[^\n\]*\n"	{ set x [expr $x+1] }
    862 	    -re "^ +\[0-9\]+ 0055 F9717F\[^\n\]*\n"	{ set x [expr $x+1] }
    863 	    -re "^ +\[0-9\]+ 0058 F9817F\[^\n\]*\n"	{ set x [expr $x+1] }
    864 	    -re "^ +\[0-9\]+ 005b F9917F\[^\n\]*\n"	{ set x [expr $x+1] }
    865 	    -re "^ +\[0-9\]+ 005e F9A17F\[^\n\]*\n"	{ set x [expr $x+1] }
    866 	    -re "^ +\[0-9\]+ 0061 F9B17F\[^\n\]*\n"	{ set x [expr $x+1] }
    867 	    -re "^ +\[0-9\]+ 0064 F9C17F\[^\n\]*\n"	{ set x [expr $x+1] }
    868 	    -re "^ +\[0-9\]+ 0067 F9D17F\[^\n\]*\n"	{ set x [expr $x+1] }
    869 	    -re "^ +\[0-9\]+ 006a F9E17F\[^\n\]*\n"	{ set x [expr $x+1] }
    870 	    -re "^ +\[0-9\]+ 006d F9F17F\[^\n\]*\n"	{ set x [expr $x+1] }
    871 	    -re "^ +\[0-9\]+ 0070 FB01FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    872 	    -re "^ +\[0-9\]+ 0074 FB11FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    873 	    -re "^ +\[0-9\]+ 0078 FB21FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    874 	    -re "^ +\[0-9\]+ 007c FB31FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    875 	    -re "^ +\[0-9\]+ 0080 FB41FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    876 	    -re "^ +\[0-9\]+ 0084 FB51FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    877 	    -re "^ +\[0-9\]+ 0088 FB61FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    878 	    -re "^ +\[0-9\]+ 008c FB71FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    879 	    -re "^ +\[0-9\]+ 0090 FB81FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    880 	    -re "^ +\[0-9\]+ 0094 FB91FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    881 	    -re "^ +\[0-9\]+ 0098 FBA1FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    882 	    -re "^ +\[0-9\]+ 009c FBB1FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    883 	    -re "^ +\[0-9\]+ 00a0 FBC1FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    884 	    -re "^ +\[0-9\]+ 00a4 FBD1FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    885 	    -re "^ +\[0-9\]+ 00a8 FBE1FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    886 	    -re "^ +\[0-9\]+ 00ac FBF1FF7F\[^\n\]*\n"	{ set x [expr $x+1] }
    887 	    -re "^ +\[0-9\]+ 00b0 FD01FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    888 	    -re "^ +66 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    889 	    -re "^ +\[0-9\]+ 00b6 FD11FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    890 	    -re "^ +67 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    891 	    -re "^ +\[0-9\]+ 00bc FD21FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    892 	    -re "^ +68 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    893 	    -re "^ +\[0-9\]+ 00c2 FD31FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    894 	    -re "^ +69 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    895 	    -re "^ +\[0-9\]+ 00c8 FD41FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    896 	    -re "^ +70 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    897 	    -re "^ +\[0-9\]+ 00ce FD51FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    898 	    -re "^ +71 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    899 	    -re "^ +\[0-9\]+ 00d4 FD61FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    900 	    -re "^ +72 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    901 	    -re "^ +\[0-9\]+ 00da FD71FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    902 	    -re "^ +73 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    903 	    -re "^ +\[0-9\]+ 00e0 FD81FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    904 	    -re "^ +74 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    905 	    -re "^ +\[0-9\]+ 00e6 FD91FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    906 	    -re "^ +75 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    907 	    -re "^ +\[0-9\]+ 00ec FDA1FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    908 	    -re "^ +76 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    909 	    -re "^ +\[0-9\]+ 00f2 FDB1FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    910 	    -re "^ +77 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    911 	    -re "^ +\[0-9\]+ 00f8 FDC1FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    912 	    -re "^ +78 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    913 	    -re "^ +\[0-9\]+ 00fe FDD1FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    914 	    -re "^ +79 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    915 	    -re "^ +\[0-9\]+ 0104 FDE1FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    916 	    -re "^ +80 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    917 	    -re "^ +\[0-9\]+ 010a FDF1FFFF\[^\n\]*\n"	{ set x [expr $x+1] }
    918 	    -re "^ +81 +0000\[^\n\]*\n"			{ set x [expr $x+1] }
    919 	    -re "^ +\[0-9\]+ 0110 F90580\[^\n\]*\n"	{ set x [expr $x+1] }
    920 	    -re "^ +\[0-9\]+ 0113 F91580\[^\n\]*\n"	{ set x [expr $x+1] }
    921 	    -re "^ +\[0-9\]+ 0116 F92580\[^\n\]*\n"	{ set x [expr $x+1] }
    922 	    -re "^ +\[0-9\]+ 0119 F93580\[^\n\]*\n"	{ set x [expr $x+1] }
    923 	    -re "^ +\[0-9\]+ 011c F94580\[^\n\]*\n"	{ set x [expr $x+1] }
    924 	    -re "^ +\[0-9\]+ 011f F95580\[^\n\]*\n"	{ set x [expr $x+1] }
    925 	    -re "^ +\[0-9\]+ 0122 F96580\[^\n\]*\n"	{ set x [expr $x+1] }
    926 	    -re "^ +\[0-9\]+ 0125 F97580\[^\n\]*\n"	{ set x [expr $x+1] }
    927 	    -re "^ +\[0-9\]+ 0128 F98580\[^\n\]*\n"	{ set x [expr $x+1] }
    928 	    -re "^ +\[0-9\]+ 012b F99580\[^\n\]*\n"	{ set x [expr $x+1] }
    929 	    -re "^ +\[0-9\]+ 012e F9A580\[^\n\]*\n"	{ set x [expr $x+1] }
    930 	    -re "^ +\[0-9\]+ 0131 F9B580\[^\n\]*\n"	{ set x [expr $x+1] }
    931 	    -re "^ +\[0-9\]+ 0134 F9C580\[^\n\]*\n"	{ set x [expr $x+1] }
    932 	    -re "^ +\[0-9\]+ 0137 F9D580\[^\n\]*\n"	{ set x [expr $x+1] }
    933 	    -re "^ +\[0-9\]+ 013a F9E580\[^\n\]*\n"	{ set x [expr $x+1] }
    934 	    -re "^ +\[0-9\]+ 013d F9F580\[^\n\]*\n"	{ set x [expr $x+1] }
    935 	    -re "^ +\[0-9\]+ 0140 FB050080\[^\n\]*\n"	{ set x [expr $x+1] }
    936 	    -re "^ +\[0-9\]+ 0144 FB150080\[^\n\]*\n"	{ set x [expr $x+1] }
    937 	    -re "^ +\[0-9\]+ 0148 FB250080\[^\n\]*\n"	{ set x [expr $x+1] }
    938 	    -re "^ +\[0-9\]+ 014c FB350080\[^\n\]*\n"	{ set x [expr $x+1] }
    939 	    -re "^ +\[0-9\]+ 0150 FB450080\[^\n\]*\n"	{ set x [expr $x+1] }
    940 	    -re "^ +\[0-9\]+ 0154 FB550080\[^\n\]*\n"	{ set x [expr $x+1] }
    941 	    -re "^ +\[0-9\]+ 0158 FB650080\[^\n\]*\n"	{ set x [expr $x+1] }
    942 	    -re "^ +\[0-9\]+ 015c FB750080\[^\n\]*\n"	{ set x [expr $x+1] }
    943 	    -re "^ +\[0-9\]+ 0160 FB850080\[^\n\]*\n"	{ set x [expr $x+1] }
    944 	    -re "^ +\[0-9\]+ 0164 FB950080\[^\n\]*\n"	{ set x [expr $x+1] }
    945 	    -re "^ +\[0-9\]+ 0168 FBA50080\[^\n\]*\n"	{ set x [expr $x+1] }
    946 	    -re "^ +\[0-9\]+ 016c FBB50080\[^\n\]*\n"	{ set x [expr $x+1] }
    947 	    -re "^ +\[0-9\]+ 0170 FBC50080\[^\n\]*\n"	{ set x [expr $x+1] }
    948 	    -re "^ +\[0-9\]+ 0174 FBD50080\[^\n\]*\n"	{ set x [expr $x+1] }
    949 	    -re "^ +\[0-9\]+ 0178 FBE50080\[^\n\]*\n"	{ set x [expr $x+1] }
    950 	    -re "^ +\[0-9\]+ 017c FBF50080\[^\n\]*\n"	{ set x [expr $x+1] }
    951 	    -re "^ +\[0-9\]+ 0180 FD050000\[^\n\]*\n"	{ set x [expr $x+1] }
    952 	    -re "^ +114 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    953 	    -re "^ +\[0-9\]+ 0186 FD150000\[^\n\]*\n"	{ set x [expr $x+1] }
    954 	    -re "^ +115 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    955 	    -re "^ +\[0-9\]+ 018c FD250000\[^\n\]*\n"	{ set x [expr $x+1] }
    956 	    -re "^ +116 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    957 	    -re "^ +\[0-9\]+ 0192 FD350000\[^\n\]*\n"	{ set x [expr $x+1] }
    958 	    -re "^ +117 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    959 	    -re "^ +\[0-9\]+ 0198 FD450000\[^\n\]*\n"	{ set x [expr $x+1] }
    960 	    -re "^ +118 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    961 	    -re "^ +\[0-9\]+ 019e FD550000\[^\n\]*\n"	{ set x [expr $x+1] }
    962 	    -re "^ +119 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    963 	    -re "^ +\[0-9\]+ 01a4 FD650000\[^\n\]*\n"	{ set x [expr $x+1] }
    964 	    -re "^ +120 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    965 	    -re "^ +\[0-9\]+ 01aa FD750000\[^\n\]*\n"	{ set x [expr $x+1] }
    966 	    -re "^ +121 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    967 	    -re "^ +\[0-9\]+ 01b0 FD850000\[^\n\]*\n"	{ set x [expr $x+1] }
    968 	    -re "^ +122 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    969 	    -re "^ +\[0-9\]+ 01b6 FD950000\[^\n\]*\n"	{ set x [expr $x+1] }
    970 	    -re "^ +123 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    971 	    -re "^ +\[0-9\]+ 01bc FDA50000\[^\n\]*\n"	{ set x [expr $x+1] }
    972 	    -re "^ +124 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    973 	    -re "^ +\[0-9\]+ 01c2 FDB50000\[^\n\]*\n"	{ set x [expr $x+1] }
    974 	    -re "^ +125 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    975 	    -re "^ +\[0-9\]+ 01c8 FDC50000\[^\n\]*\n"	{ set x [expr $x+1] }
    976 	    -re "^ +126 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    977 	    -re "^ +\[0-9\]+ 01ce FDD50000\[^\n\]*\n"	{ set x [expr $x+1] }
    978 	    -re "^ +127 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    979 	    -re "^ +\[0-9\]+ 01d4 FDE50000\[^\n\]*\n"	{ set x [expr $x+1] }
    980 	    -re "^ +128 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    981 	    -re "^ +\[0-9\]+ 01da FDF50000\[^\n\]*\n"	{ set x [expr $x+1] }
    982 	    -re "^ +129 +0100\[^\n\]*\n"		{ set x [expr $x+1] }
    983 	    -re "\[^\n\]*\n"				{ }
    984 	    timeout				{ perror "timeout\n"; break }
    985 	    eof					{ break }
    986 	}
    987     }
    988 
    989     # This was intended to do any cleanup necessary.  It kinda looks like it
    990     # isn't needed, but just in case, please keep it in for now.
    991     gas_finish
    992 
    993     # Did we find what we were looking for?  If not, flunk it.
    994     if [expr $x==160] then { pass $testname } else { fail $testname }
    995 }
    996 
    997 proc do_am33_1 {} {
    998     set testname "am33.s: am33 tests part 1"
    999     set x 0
   1000 
   1001     gas_start "am33.s" "-al"
   1002 
   1003     # Instead of having a variable for each match string just increment the
   1004     # total number of matches seen.  That's simpler when testing large numbers
   1005     # of instructions (as these tests to).
   1006     while 1 {
   1007 	expect {
   1008 	    -re "^ +\[0-9\]+ 0000 CD000134\[^\n\]*\n"	{ set x [expr $x+1] }
   1009 	    -re "^ +3 +09\[^\n\]*\n"			{ set x [expr $x+1] }
   1010 	    -re "^ +\[0-9\]+ 0005 CD000132\[^\n\]*\n"	{ set x [expr $x+1] }
   1011 	    -re "^ +4 +09\[^\n\]*\n"			{ set x [expr $x+1] }
   1012 	    -re "^ +\[0-9\]+ 000a CD000131\[^\n\]*\n"	{ set x [expr $x+1] }
   1013 	    -re "^ +5 +09\[^\n\]*\n"			{ set x [expr $x+1] }
   1014 	    -re "^ +\[0-9\]+ 000f CD0001FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1015 	    -re "^ +6 +09\[^\n\]*\n"			{ set x [expr $x+1] }
   1016 	    -re "^ +\[0-9\]+ 0014 DDFFFF01\[^\n\]*\n"	{ set x [expr $x+1] }
   1017 	    -re "^ +7 +003409\[^\n\]*\n"		{ set x [expr $x+1] }
   1018 	    -re "^ +\[0-9\]+ 001b DDFFFF01\[^\n\]*\n"	{ set x [expr $x+1] }
   1019 	    -re "^ +8 +003209\[^\n\]*\n"		{ set x [expr $x+1] }
   1020 	    -re "^ +\[0-9\]+ 0022 DDFFFF01\[^\n\]*\n"	{ set x [expr $x+1] }
   1021 	    -re "^ +9 +003109\[^\n\]*\n"		{ set x [expr $x+1] }
   1022 	    -re "^ +\[0-9\]+ 0029 DDFFFF01\[^\n\]*\n"	{ set x [expr $x+1] }
   1023 	    -re "^ +10 +00FF09\[^\n\]*\n"		{ set x [expr $x+1] }
   1024 	    -re "^ +\[0-9\]+ 0030 CE34\[^\n\]*\n"	{ set x [expr $x+1] }
   1025 	    -re "^ +\[0-9\]+ 0032 CE32\[^\n\]*\n"	{ set x [expr $x+1] }
   1026 	    -re "^ +\[0-9\]+ 0034 CE31\[^\n\]*\n"	{ set x [expr $x+1] }
   1027 	    -re "^ +\[0-9\]+ 0036 CEFF\[^\n\]*\n"	{ set x [expr $x+1] }
   1028 	    -re "^ +\[0-9\]+ 0038 CF34\[^\n\]*\n"	{ set x [expr $x+1] }
   1029 	    -re "^ +\[0-9\]+ 003a CF32\[^\n\]*\n"	{ set x [expr $x+1] }
   1030 	    -re "^ +\[0-9\]+ 003c CF31\[^\n\]*\n"	{ set x [expr $x+1] }
   1031 	    -re "^ +\[0-9\]+ 003e CFFF\[^\n\]*\n"	{ set x [expr $x+1] }
   1032 	    -re "^ +\[0-9\]+ 0040 F8CE34\[^\n\]*\n"	{ set x [expr $x+1] }
   1033 	    -re "^ +\[0-9\]+ 0043 F8CE32\[^\n\]*\n"	{ set x [expr $x+1] }
   1034 	    -re "^ +\[0-9\]+ 0046 F8CE31\[^\n\]*\n"	{ set x [expr $x+1] }
   1035 	    -re "^ +\[0-9\]+ 0049 F8CEFF\[^\n\]*\n"	{ set x [expr $x+1] }
   1036 	    -re "^ +\[0-9\]+ 004c F8CF34\[^\n\]*\n"	{ set x [expr $x+1] }
   1037 	    -re "^ +\[0-9\]+ 004f F8CF32\[^\n\]*\n"	{ set x [expr $x+1] }
   1038 	    -re "^ +\[0-9\]+ 0052 F8CF31\[^\n\]*\n"	{ set x [expr $x+1] }
   1039 	    -re "^ +\[0-9\]+ 0055 F8CFFF\[^\n\]*\n"	{ set x [expr $x+1] }
   1040 	    -re "^ +\[0-9\]+ 0058 F020\[^\n\]*\n"	{ set x [expr $x+1] }
   1041 	    -re "^ +\[0-9\]+ 005a F025\[^\n\]*\n"	{ set x [expr $x+1] }
   1042 	    -re "^ +\[0-9\]+ 005c F02A\[^\n\]*\n"	{ set x [expr $x+1] }
   1043 	    -re "^ +\[0-9\]+ 005e F02F\[^\n\]*\n"	{ set x [expr $x+1] }
   1044 	    -re "^ +\[0-9\]+ 0060 F030\[^\n\]*\n"	{ set x [expr $x+1] }
   1045 	    -re "^ +\[0-9\]+ 0062 F035\[^\n\]*\n"	{ set x [expr $x+1] }
   1046 	    -re "^ +\[0-9\]+ 0064 F03A\[^\n\]*\n"	{ set x [expr $x+1] }
   1047 	    -re "^ +\[0-9\]+ 0066 F0E4\[^\n\]*\n"	{ set x [expr $x+1] }
   1048 	    -re "^ +\[0-9\]+ 0068 F2EC\[^\n\]*\n"	{ set x [expr $x+1] }
   1049 	    -re "^ +\[0-9\]+ 006a F2F5\[^\n\]*\n"	{ set x [expr $x+1] }
   1050 	    -re "^ +\[0-9\]+ 006c F501\[^\n\]*\n"	{ set x [expr $x+1] }
   1051 	    -re "^ +\[0-9\]+ 006e F563\[^\n\]*\n"	{ set x [expr $x+1] }
   1052 	    -re "^ +\[0-9\]+ 0070 F595\[^\n\]*\n"	{ set x [expr $x+1] }
   1053 	    -re "^ +\[0-9\]+ 0072 F5DF\[^\n\]*\n"	{ set x [expr $x+1] }
   1054 	    -re "^ +\[0-9\]+ 0074 F630\[^\n\]*\n"	{ set x [expr $x+1] }
   1055 	    -re "^ +\[0-9\]+ 0076 F665\[^\n\]*\n"	{ set x [expr $x+1] }
   1056 	    -re "^ +\[0-9\]+ 0078 F6C0\[^\n\]*\n"	{ set x [expr $x+1] }
   1057 	    -re "^ +\[0-9\]+ 007a F6D5\[^\n\]*\n"	{ set x [expr $x+1] }
   1058 	    -re "^ +\[0-9\]+ 007c FCFC0000\[^\n\]*\n"	{ set x [expr $x+1] }
   1059 	    -re "^ +45 +0200\[^\n\]*\n"		{ set x [expr $x+1] }
   1060 	    -re "^ +\[0-9\]+ 0082 FCFDFFFF\[^\n\]*\n"	{ set x [expr $x+1] }
   1061 	    -re "^ +46 +0000\[^\n\]*\n"		{ set x [expr $x+1] }
   1062 	    -re "\[^\n\]*\n"				{ }
   1063 	    timeout				{ perror "timeout\n"; break }
   1064 	    eof					{ break }
   1065 	}
   1066     }
   1067 
   1068     # This was intended to do any cleanup necessary.  It kinda looks like it
   1069     # isn't needed, but just in case, please keep it in for now.
   1070     gas_finish
   1071 
   1072     # Did we find what we were looking for?  If not, flunk it.
   1073     if [expr $x==54] then { pass $testname } else { fail $testname }
   1074 }
   1075 
   1076 proc do_am33_2 {} {
   1077     set testname "am33_2.s: am33 tests part 2"
   1078     set x 0
   1079 
   1080     gas_start "am33_2.s" "-al"
   1081 
   1082     # Instead of having a variable for each match string just increment the
   1083     # total number of matches seen.  That's simpler when testing large numbers
   1084     # of instructions (as these tests to).
   1085     while 1 {
   1086 	expect {
   1087 	    -re "^ +\[0-9\]+ 0000 F90801\[^\n\]*\n"	{ set x [expr $x+1] }
   1088 	    -re "^ +\[0-9\]+ 0003 F91822\[^\n\]*\n"	{ set x [expr $x+1] }
   1089 	    -re "^ +\[0-9\]+ 0006 F92834\[^\n\]*\n"	{ set x [expr $x+1] }
   1090 	    -re "^ +\[0-9\]+ 0009 F93845\[^\n\]*\n"	{ set x [expr $x+1] }
   1091 	    -re "^ +\[0-9\]+ 000c F94867\[^\n\]*\n"	{ set x [expr $x+1] }
   1092 	    -re "^ +\[0-9\]+ 000f F95878\[^\n\]*\n"	{ set x [expr $x+1] }
   1093 	    -re "^ +\[0-9\]+ 0012 F96899\[^\n\]*\n"	{ set x [expr $x+1] }
   1094 	    -re "^ +\[0-9\]+ 0015 F978AB\[^\n\]*\n"	{ set x [expr $x+1] }
   1095 	    -re "^ +\[0-9\]+ 0018 F988CD\[^\n\]*\n"	{ set x [expr $x+1] }
   1096 	    -re "^ +\[0-9\]+ 001b F998EF\[^\n\]*\n"	{ set x [expr $x+1] }
   1097 	    -re "^ +\[0-9\]+ 001e F9A8FE\[^\n\]*\n"	{ set x [expr $x+1] }
   1098 	    -re "^ +\[0-9\]+ 0021 F9B8DD\[^\n\]*\n"	{ set x [expr $x+1] }
   1099 	    -re "^ +\[0-9\]+ 0024 F9C8CC\[^\n\]*\n"	{ set x [expr $x+1] }
   1100 	    -re "^ +\[0-9\]+ 0027 F9D8BA\[^\n\]*\n"	{ set x [expr $x+1] }
   1101 	    -re "^ +\[0-9\]+ 002a F9E801\[^\n\]*\n"	{ set x [expr $x+1] }
   1102 	    -re "^ +\[0-9\]+ 002d F9F812\[^\n\]*\n"	{ set x [expr $x+1] }
   1103 	    -re "^ +\[0-9\]+ 0030 F90901\[^\n\]*\n"	{ set x [expr $x+1] }
   1104 	    -re "^ +\[0-9\]+ 0033 F91923\[^\n\]*\n"	{ set x [expr $x+1] }
   1105 	    -re "^ +\[0-9\]+ 0036 F92945\[^\n\]*\n"	{ set x [expr $x+1] }
   1106 	    -re "^ +\[0-9\]+ 0039 F93966\[^\n\]*\n"	{ set x [expr $x+1] }
   1107 	    -re "^ +\[0-9\]+ 003c F94978\[^\n\]*\n"	{ set x [expr $x+1] }
   1108 	    -re "^ +\[0-9\]+ 003f F9599A\[^\n\]*\n"	{ set x [expr $x+1] }
   1109 	    -re "^ +\[0-9\]+ 0042 F969BC\[^\n\]*\n"	{ set x [expr $x+1] }
   1110 	    -re "^ +\[0-9\]+ 0045 F979DD\[^\n\]*\n"	{ set x [expr $x+1] }
   1111 	    -re "^ +\[0-9\]+ 0048 F989EE\[^\n\]*\n"	{ set x [expr $x+1] }
   1112 	    -re "^ +\[0-9\]+ 004b F999FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1113 	    -re "^ +\[0-9\]+ 004e F9A912\[^\n\]*\n"	{ set x [expr $x+1] }
   1114 	    -re "^ +\[0-9\]+ 0051 F9B934\[^\n\]*\n"	{ set x [expr $x+1] }
   1115 	    -re "^ +\[0-9\]+ 0054 F9C956\[^\n\]*\n"	{ set x [expr $x+1] }
   1116 	    -re "^ +\[0-9\]+ 0057 F9D978\[^\n\]*\n"	{ set x [expr $x+1] }
   1117 	    -re "^ +\[0-9\]+ 005a F90A21\[^\n\]*\n"	{ set x [expr $x+1] }
   1118 	    -re "^ +\[0-9\]+ 005d F91A34\[^\n\]*\n"	{ set x [expr $x+1] }
   1119 	    -re "^ +\[0-9\]+ 0060 F92A65\[^\n\]*\n"	{ set x [expr $x+1] }
   1120 	    -re "^ +\[0-9\]+ 0063 F93A78\[^\n\]*\n"	{ set x [expr $x+1] }
   1121 	    -re "^ +\[0-9\]+ 0066 F94AA9\[^\n\]*\n"	{ set x [expr $x+1] }
   1122 	    -re "^ +\[0-9\]+ 0069 F95ABC\[^\n\]*\n"	{ set x [expr $x+1] }
   1123 	    -re "^ +\[0-9\]+ 006c F96A21\[^\n\]*\n"	{ set x [expr $x+1] }
   1124 	    -re "^ +\[0-9\]+ 006f F97A34\[^\n\]*\n"	{ set x [expr $x+1] }
   1125 	    -re "^ +\[0-9\]+ 0072 F98A50\[^\n\]*\n"	{ set x [expr $x+1] }
   1126 	    -re "^ +\[0-9\]+ 0075 F99A60\[^\n\]*\n"	{ set x [expr $x+1] }
   1127 	    -re "^ +\[0-9\]+ 0078 F9AA70\[^\n\]*\n"	{ set x [expr $x+1] }
   1128 	    -re "^ +\[0-9\]+ 007b F9BA80\[^\n\]*\n"	{ set x [expr $x+1] }
   1129 	    -re "^ +\[0-9\]+ 007e F9CA90\[^\n\]*\n"	{ set x [expr $x+1] }
   1130 	    -re "^ +\[0-9\]+ 0081 F9DAA0\[^\n\]*\n"	{ set x [expr $x+1] }
   1131 	    -re "^ +\[0-9\]+ 0084 F9EA76\[^\n\]*\n"	{ set x [expr $x+1] }
   1132 	    -re "^ +\[0-9\]+ 0087 F9FA89\[^\n\]*\n"	{ set x [expr $x+1] }
   1133 	    -re "^ +\[0-9\]+ 008a F90B12\[^\n\]*\n"	{ set x [expr $x+1] }
   1134 	    -re "^ +\[0-9\]+ 008d F91B34\[^\n\]*\n"	{ set x [expr $x+1] }
   1135 	    -re "^ +\[0-9\]+ 0090 F92B56\[^\n\]*\n"	{ set x [expr $x+1] }
   1136 	    -re "^ +\[0-9\]+ 0093 F93B78\[^\n\]*\n"	{ set x [expr $x+1] }
   1137 	    -re "^ +\[0-9\]+ 0096 F94B9A\[^\n\]*\n"	{ set x [expr $x+1] }
   1138 	    -re "^ +\[0-9\]+ 0099 F95BBC\[^\n\]*\n"	{ set x [expr $x+1] }
   1139 	    -re "^ +\[0-9\]+ 009c F96BDE\[^\n\]*\n"	{ set x [expr $x+1] }
   1140 	    -re "^ +\[0-9\]+ 009f F97BFE\[^\n\]*\n"	{ set x [expr $x+1] }
   1141 	    -re "^ +\[0-9\]+ 00a2 F98BDC\[^\n\]*\n"	{ set x [expr $x+1] }
   1142 	    -re "^ +\[0-9\]+ 00a5 F99BBA\[^\n\]*\n"	{ set x [expr $x+1] }
   1143 	    -re "^ +\[0-9\]+ 00a8 F9AB98\[^\n\]*\n"	{ set x [expr $x+1] }
   1144 	    -re "^ +\[0-9\]+ 00ab F9BB76\[^\n\]*\n"	{ set x [expr $x+1] }
   1145 	    -re "^ +\[0-9\]+ 00ae F9CB54\[^\n\]*\n"	{ set x [expr $x+1] }
   1146 	    -re "^ +\[0-9\]+ 00b1 F9DB32\[^\n\]*\n"	{ set x [expr $x+1] }
   1147 	    -re "^ +\[0-9\]+ 00b4 F9EB10\[^\n\]*\n"	{ set x [expr $x+1] }
   1148 	    -re "^ +\[0-9\]+ 00b7 F9FB12\[^\n\]*\n"	{ set x [expr $x+1] }
   1149 	    -re "\[^\n\]*\n"				{ }
   1150 	    timeout				{ perror "timeout\n"; break }
   1151 	    eof					{ break }
   1152 	}
   1153     }
   1154 
   1155     # This was intended to do any cleanup necessary.  It kinda looks like it
   1156     # isn't needed, but just in case, please keep it in for now.
   1157     gas_finish
   1158 
   1159     # Did we find what we were looking for?  If not, flunk it.
   1160     if [expr $x==62] then { pass $testname } else { fail $testname }
   1161 }
   1162 
   1163 proc do_am33_3 {} {
   1164     set testname "am33_3.s: am33 tests part 3"
   1165     set x 0
   1166 
   1167     gas_start "am33_3.s" "-al"
   1168 
   1169     # Instead of having a variable for each match string just increment the
   1170     # total number of matches seen.  That's simpler when testing large numbers
   1171     # of instructions (as these tests to).
   1172     while 1 {
   1173 	expect {
   1174 	    -re "^ +\[0-9\]+ 0000 FB081110\[^\n\]*\n"	{ set x [expr $x+1] }
   1175 	    -re "^ +\[0-9\]+ 0004 FB181110\[^\n\]*\n"	{ set x [expr $x+1] }
   1176 	    -re "^ +\[0-9\]+ 0008 FB781110\[^\n\]*\n"	{ set x [expr $x+1] }
   1177 	    -re "^ +\[0-9\]+ 000c FB881110\[^\n\]*\n"	{ set x [expr $x+1] }
   1178 	    -re "^ +\[0-9\]+ 0010 FB981110\[^\n\]*\n"	{ set x [expr $x+1] }
   1179 	    -re "^ +\[0-9\]+ 0014 FBA81110\[^\n\]*\n"	{ set x [expr $x+1] }
   1180 	    -re "^ +\[0-9\]+ 0018 FBD81110\[^\n\]*\n"	{ set x [expr $x+1] }
   1181 	    -re "^ +\[0-9\]+ 001c FBF81110\[^\n\]*\n"	{ set x [expr $x+1] }
   1182 	    -re "^ +\[0-9\]+ 0020 FB091110\[^\n\]*\n"	{ set x [expr $x+1] }
   1183 	    -re "^ +\[0-9\]+ 0024 FB191110\[^\n\]*\n"	{ set x [expr $x+1] }
   1184 	    -re "^ +\[0-9\]+ 0028 FB291110\[^\n\]*\n"	{ set x [expr $x+1] }
   1185 	    -re "^ +\[0-9\]+ 002c FB491110\[^\n\]*\n"	{ set x [expr $x+1] }
   1186 	    -re "^ +\[0-9\]+ 0030 FB591110\[^\n\]*\n"	{ set x [expr $x+1] }
   1187 	    -re "^ +\[0-9\]+ 0034 FB691110\[^\n\]*\n"	{ set x [expr $x+1] }
   1188 	    -re "^ +\[0-9\]+ 0038 FBA91110\[^\n\]*\n"	{ set x [expr $x+1] }
   1189 	    -re "^ +\[0-9\]+ 003c FBB91110\[^\n\]*\n"	{ set x [expr $x+1] }
   1190 	    -re "^ +\[0-9\]+ 0040 FBE91110\[^\n\]*\n"	{ set x [expr $x+1] }
   1191 	    -re "^ +\[0-9\]+ 0044 FB0A2110\[^\n\]*\n"	{ set x [expr $x+1] }
   1192 	    -re "^ +\[0-9\]+ 0048 FB1A2110\[^\n\]*\n"	{ set x [expr $x+1] }
   1193 	    -re "^ +\[0-9\]+ 004c FB2A2110\[^\n\]*\n"	{ set x [expr $x+1] }
   1194 	    -re "^ +\[0-9\]+ 0050 FB3A2110\[^\n\]*\n"	{ set x [expr $x+1] }
   1195 	    -re "^ +\[0-9\]+ 0054 FB4A2110\[^\n\]*\n"	{ set x [expr $x+1] }
   1196 	    -re "^ +\[0-9\]+ 0058 FB5A2110\[^\n\]*\n"	{ set x [expr $x+1] }
   1197 	    -re "^ +\[0-9\]+ 005c FB8A2010\[^\n\]*\n"	{ set x [expr $x+1] }
   1198 	    -re "^ +\[0-9\]+ 0060 FB9A2010\[^\n\]*\n"	{ set x [expr $x+1] }
   1199 	    -re "^ +\[0-9\]+ 0064 FBAA2010\[^\n\]*\n"	{ set x [expr $x+1] }
   1200 	    -re "^ +\[0-9\]+ 0068 FBBA2010\[^\n\]*\n"	{ set x [expr $x+1] }
   1201 	    -re "^ +\[0-9\]+ 006c FBCA2010\[^\n\]*\n"	{ set x [expr $x+1] }
   1202 	    -re "^ +\[0-9\]+ 0070 FBDA2010\[^\n\]*\n"	{ set x [expr $x+1] }
   1203 	    -re "^ +\[0-9\]+ 0074 FB0B1110\[^\n\]*\n"	{ set x [expr $x+1] }
   1204 	    -re "^ +\[0-9\]+ 0078 FB1B1110\[^\n\]*\n"	{ set x [expr $x+1] }
   1205 	    -re "^ +\[0-9\]+ 007c FB2B1110\[^\n\]*\n"	{ set x [expr $x+1] }
   1206 	    -re "^ +\[0-9\]+ 0080 FB3B1110\[^\n\]*\n"	{ set x [expr $x+1] }
   1207 	    -re "^ +\[0-9\]+ 0084 FB4B1110\[^\n\]*\n"	{ set x [expr $x+1] }
   1208 	    -re "^ +\[0-9\]+ 0088 FB5B1110\[^\n\]*\n"	{ set x [expr $x+1] }
   1209 	    -re "^ +\[0-9\]+ 008c FBBB1110\[^\n\]*\n"	{ set x [expr $x+1] }
   1210 	    -re "^ +\[0-9\]+ 0090 FB7C1230\[^\n\]*\n"	{ set x [expr $x+1] }
   1211 	    -re "^ +\[0-9\]+ 0094 FB6A2110\[^\n\]*\n"	{ set x [expr $x+1] }
   1212 	    -re "^ +\[0-9\]+ 0098 FB7A1210\[^\n\]*\n"	{ set x [expr $x+1] }
   1213 	    -re "^ +\[0-9\]+ 009c FBEA2110\[^\n\]*\n"	{ set x [expr $x+1] }
   1214 	    -re "^ +\[0-9\]+ 00a0 FBFA1210\[^\n\]*\n"	{ set x [expr $x+1] }
   1215 	    -re "\[^\n\]*\n"				{ }
   1216 	    timeout				{ perror "timeout\n"; break }
   1217 	    eof					{ break }
   1218 	}
   1219     }
   1220 
   1221     # This was intended to do any cleanup necessary.  It kinda looks like it
   1222     # isn't needed, but just in case, please keep it in for now.
   1223     gas_finish
   1224 
   1225     # Did we find what we were looking for?  If not, flunk it.
   1226     if [expr $x==41] then { pass $testname } else { fail $testname }
   1227 }
   1228 
   1229 proc do_am33_4 {} {
   1230     set testname "am33_4.s: am33 tests part 4"
   1231     set x 0
   1232 
   1233     gas_start "am33_4.s" "-al"
   1234 
   1235     # Instead of having a variable for each match string just increment the
   1236     # total number of matches seen.  That's simpler when testing large numbers
   1237     # of instructions (as these tests to).
   1238     while 1 {
   1239 	expect {
   1240 	    -re "^ +\[0-9\]+ 0000 FD0822FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1241 	    -re "^ +3 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1242 	    -re "^ +\[0-9\]+ 0006 FD1822FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1243 	    -re "^ +4 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1244 	    -re "^ +\[0-9\]+ 000c FD7822FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1245 	    -re "^ +5 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1246 	    -re "^ +\[0-9\]+ 0012 FD8822FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1247 	    -re "^ +6 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1248 	    -re "^ +\[0-9\]+ 0018 FD9822FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1249 	    -re "^ +7 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1250 	    -re "^ +\[0-9\]+ 001e FDA822FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1251 	    -re "^ +8 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1252 	    -re "^ +\[0-9\]+ 0024 FDD822FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1253 	    -re "^ +9 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1254 	    -re "^ +\[0-9\]+ 002a FDF822FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1255 	    -re "^ +10 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1256 	    -re "^ +\[0-9\]+ 0030 FD0922FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1257 	    -re "^ +11 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1258 	    -re "^ +\[0-9\]+ 0036 FD1922FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1259 	    -re "^ +12 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1260 	    -re "^ +\[0-9\]+ 003c FD2922FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1261 	    -re "^ +13 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1262 	    -re "^ +\[0-9\]+ 0042 FD4922FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1263 	    -re "^ +14 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1264 	    -re "^ +\[0-9\]+ 0048 FD5922FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1265 	    -re "^ +15 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1266 	    -re "^ +\[0-9\]+ 004e FD6922FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1267 	    -re "^ +16 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1268 	    -re "^ +\[0-9\]+ 0054 FDA922FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1269 	    -re "^ +17 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1270 	    -re "^ +\[0-9\]+ 005a FDB922FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1271 	    -re "^ +18 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1272 	    -re "^ +\[0-9\]+ 0060 FDE922FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1273 	    -re "^ +19 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1274 	    -re "^ +\[0-9\]+ 0066 FD0A21FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1275 	    -re "^ +20 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1276 	    -re "^ +\[0-9\]+ 006c FD1A21FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1277 	    -re "^ +21 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1278 	    -re "^ +\[0-9\]+ 0072 FD2A21FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1279 	    -re "^ +22 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1280 	    -re "^ +\[0-9\]+ 0078 FD3A21FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1281 	    -re "^ +23 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1282 	    -re "^ +\[0-9\]+ 007e FD4A21FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1283 	    -re "^ +24 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1284 	    -re "^ +\[0-9\]+ 0084 FD5A21FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1285 	    -re "^ +25 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1286 	    -re "^ +\[0-9\]+ 008a FD8A20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1287 	    -re "^ +26 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1288 	    -re "^ +\[0-9\]+ 0090 FD9A20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1289 	    -re "^ +27 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1290 	    -re "^ +\[0-9\]+ 0096 FDAA20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1291 	    -re "^ +28 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1292 	    -re "^ +\[0-9\]+ 009c FDBA20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1293 	    -re "^ +29 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1294 	    -re "^ +\[0-9\]+ 00a2 FDCA20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1295 	    -re "^ +30 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1296 	    -re "^ +\[0-9\]+ 00a8 FDDA20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1297 	    -re "^ +31 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1298 	    -re "^ +\[0-9\]+ 00ae FD0B22FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1299 	    -re "^ +32 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1300 	    -re "^ +\[0-9\]+ 00b4 FD1B22FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1301 	    -re "^ +33 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1302 	    -re "^ +\[0-9\]+ 00ba FD2B22FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1303 	    -re "^ +34 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1304 	    -re "^ +\[0-9\]+ 00c0 FD3B22FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1305 	    -re "^ +35 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1306 	    -re "^ +\[0-9\]+ 00c6 FD4B22FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1307 	    -re "^ +36 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1308 	    -re "^ +\[0-9\]+ 00cc FD5B22FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1309 	    -re "^ +37 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1310 	    -re "^ +\[0-9\]+ 00d2 FD0E20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1311 	    -re "^ +38 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1312 	    -re "^ +\[0-9\]+ 00d8 FD1E20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1313 	    -re "^ +39 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1314 	    -re "^ +\[0-9\]+ 00de FD2E20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1315 	    -re "^ +40 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1316 	    -re "^ +\[0-9\]+ 00e4 FD3E20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1317 	    -re "^ +41 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1318 	    -re "^ +\[0-9\]+ 00ea FD4E20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1319 	    -re "^ +42 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1320 	    -re "^ +\[0-9\]+ 00f0 FD5E20FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1321 	    -re "^ +43 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1322 	    -re "^ +\[0-9\]+ 00f6 FD6A21FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1323 	    -re "^ +44 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1324 	    -re "^ +\[0-9\]+ 00fc FD7A12FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1325 	    -re "^ +45 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1326 	    -re "^ +\[0-9\]+ 0102 FDEA21FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1327 	    -re "^ +46 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1328 	    -re "^ +\[0-9\]+ 0108 FDFA12FF\[^\n\]*\n"	{ set x [expr $x+1] }
   1329 	    -re "^ +47 +FE1F\[^\n\]*\n"		{ set x [expr $x+1] }
   1330 	    -re "\[^\n\]*\n"				{ }
   1331 	    timeout				{ perror "timeout\n"; break }
   1332 	    eof					{ break }
   1333 	}
   1334     }
   1335 
   1336     # This was intended to do any cleanup necessary.  It kinda looks like it
   1337     # isn't needed, but just in case, please keep it in for now.
   1338     gas_finish
   1339 
   1340     # Did we find what we were looking for?  If not, flunk it.
   1341     if [expr $x==90] then { pass $testname } else { fail $testname }
   1342 }
   1343 
   1344 proc do_am33_5 {} {
   1345     set testname "am33_5.s: am33 tests part 5"
   1346     set x 0
   1347 
   1348     gas_start "am33_5.s" "-al"
   1349 
   1350     # Instead of having a variable for each match string just increment the
   1351     # total number of matches seen.  That's simpler when testing large numbers
   1352     # of instructions (as these tests to).
   1353     while 1 {
   1354 	expect {
   1355 	    -re "^ +\[0-9\]+ 0000 FE0822FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1356 	    -re "^ +3 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1357 	    -re "^ +\[0-9\]+ 0007 FE1822FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1358 	    -re "^ +4 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1359 	    -re "^ +\[0-9\]+ 000e FE7822FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1360 	    -re "^ +5 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1361 	    -re "^ +\[0-9\]+ 0015 FE8822FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1362 	    -re "^ +6 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1363 	    -re "^ +\[0-9\]+ 001c FE9822FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1364 	    -re "^ +7 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1365 	    -re "^ +\[0-9\]+ 0023 FEA822FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1366 	    -re "^ +8 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1367 	    -re "^ +\[0-9\]+ 002a FED822FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1368 	    -re "^ +9 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1369 	    -re "^ +\[0-9\]+ 0031 FEF822FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1370 	    -re "^ +10 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1371 	    -re "^ +\[0-9\]+ 0038 FE0922FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1372 	    -re "^ +11 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1373 	    -re "^ +\[0-9\]+ 003f FE1922FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1374 	    -re "^ +12 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1375 	    -re "^ +\[0-9\]+ 0046 FE2922FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1376 	    -re "^ +13 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1377 	    -re "^ +\[0-9\]+ 004d FE4922FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1378 	    -re "^ +14 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1379 	    -re "^ +\[0-9\]+ 0054 FE5922FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1380 	    -re "^ +15 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1381 	    -re "^ +\[0-9\]+ 005b FE6922FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1382 	    -re "^ +16 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1383 	    -re "^ +\[0-9\]+ 0062 FEA922FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1384 	    -re "^ +17 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1385 	    -re "^ +\[0-9\]+ 0069 FEB922FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1386 	    -re "^ +18 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1387 	    -re "^ +\[0-9\]+ 0070 FEE922FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1388 	    -re "^ +19 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1389 	    -re "^ +\[0-9\]+ 0077 FE0A21FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1390 	    -re "^ +20 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1391 	    -re "^ +\[0-9\]+ 007e FE1A21FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1392 	    -re "^ +21 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1393 	    -re "^ +\[0-9\]+ 0085 FE2A21FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1394 	    -re "^ +22 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1395 	    -re "^ +\[0-9\]+ 008c FE3A21FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1396 	    -re "^ +23 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1397 	    -re "^ +\[0-9\]+ 0093 FE4A21FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1398 	    -re "^ +24 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1399 	    -re "^ +\[0-9\]+ 009a FE5A21FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1400 	    -re "^ +25 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1401 	    -re "^ +\[0-9\]+ 00a1 FE8A20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1402 	    -re "^ +26 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1403 	    -re "^ +\[0-9\]+ 00a8 FE9A20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1404 	    -re "^ +27 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1405 	    -re "^ +\[0-9\]+ 00af FEAA20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1406 	    -re "^ +28 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1407 	    -re "^ +\[0-9\]+ 00b6 FEBA20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1408 	    -re "^ +29 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1409 	    -re "^ +\[0-9\]+ 00bd FECA20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1410 	    -re "^ +30 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1411 	    -re "^ +\[0-9\]+ 00c4 FEDA20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1412 	    -re "^ +31 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1413 	    -re "^ +\[0-9\]+ 00cb FE0B22FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1414 	    -re "^ +32 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1415 	    -re "^ +\[0-9\]+ 00d2 FE1B22FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1416 	    -re "^ +33 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1417 	    -re "^ +\[0-9\]+ 00d9 FE2B22FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1418 	    -re "^ +34 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1419 	    -re "^ +\[0-9\]+ 00e0 FE3B22FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1420 	    -re "^ +35 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1421 	    -re "^ +\[0-9\]+ 00e7 FE4B22FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1422 	    -re "^ +36 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1423 	    -re "^ +\[0-9\]+ 00ee FE5B22FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1424 	    -re "^ +37 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1425 	    -re "^ +\[0-9\]+ 00f5 FE6B22FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1426 	    -re "^ +38 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1427 	    -re "^ +\[0-9\]+ 00fc FE7B22FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1428 	    -re "^ +39 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1429 	    -re "^ +\[0-9\]+ 0103 FE8B22FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1430 	    -re "^ +40 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1431 	    -re "^ +\[0-9\]+ 010a FE9B22FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1432 	    -re "^ +41 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1433 	    -re "^ +\[0-9\]+ 0111 FE0E20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1434 	    -re "^ +42 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1435 	    -re "^ +\[0-9\]+ 0118 FE1E20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1436 	    -re "^ +43 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1437 	    -re "^ +\[0-9\]+ 011f FE2E20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1438 	    -re "^ +44 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1439 	    -re "^ +\[0-9\]+ 0126 FE3E20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1440 	    -re "^ +45 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1441 	    -re "^ +\[0-9\]+ 012d FE4E20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1442 	    -re "^ +46 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1443 	    -re "^ +\[0-9\]+ 0134 FE5E20FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1444 	    -re "^ +47 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1445 	    -re "^ +\[0-9\]+ 013b FBADCD89\[^\n\]*\n"	{ set x [expr $x+1] }
   1446 	    -re "^ +\[0-9\]+ 013f FBBDCD89\[^\n\]*\n"	{ set x [expr $x+1] }
   1447 	    -re "^ +\[0-9\]+ 0143 FE6A21FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1448 	    -re "^ +50 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1449 	    -re "^ +\[0-9\]+ 014a FE7A12FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1450 	    -re "^ +51 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1451 	    -re "^ +\[0-9\]+ 0151 FEEA21FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1452 	    -re "^ +52 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1453 	    -re "^ +\[0-9\]+ 0158 FEFA12FC\[^\n\]*\n"	{ set x [expr $x+1] }
   1454 	    -re "^ +53 +FDFE7F\[^\n\]*\n"		{ set x [expr $x+1] }
   1455 	    -re "^ +\[0-9\]+ 015f FE8A20F0\[^\n\]*\n"	{ set x [expr $x+1] }
   1456 	    -re "^ +54 +FFFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1457 	    -re "^ +\[0-9\]+ 0166 FE9A20F0\[^\n\]*\n"	{ set x [expr $x+1] }
   1458 	    -re "^ +55 +FFFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1459 	    -re "^ +\[0-9\]+ 016d FEAA20F0\[^\n\]*\n"	{ set x [expr $x+1] }
   1460 	    -re "^ +56 +FFFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1461 	    -re "^ +\[0-9\]+ 0174 FEBA20F0\[^\n\]*\n"	{ set x [expr $x+1] }
   1462 	    -re "^ +57 +FFFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1463 	    -re "^ +\[0-9\]+ 017b FECA20F0\[^\n\]*\n"	{ set x [expr $x+1] }
   1464 	    -re "^ +58 +FFFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1465 	    -re "^ +\[0-9\]+ 0182 FEDA20F0\[^\n\]*\n"	{ set x [expr $x+1] }
   1466 	    -re "^ +59 +FFFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1467 	    -re "^ +\[0-9\]+ 0189 FE8A2000\[^\n\]*\n"	{ set x [expr $x+1] }
   1468 	    -re "^ +60 +FCFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1469 	    -re "^ +\[0-9\]+ 0190 FE9A2000\[^\n\]*\n"	{ set x [expr $x+1] }
   1470 	    -re "^ +61 +FCFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1471 	    -re "^ +\[0-9\]+ 0197 FEAA2000\[^\n\]*\n"	{ set x [expr $x+1] }
   1472 	    -re "^ +62 +FCFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1473 	    -re "^ +\[0-9\]+ 019e FEBA2000\[^\n\]*\n"	{ set x [expr $x+1] }
   1474 	    -re "^ +63 +FCFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1475 	    -re "^ +\[0-9\]+ 01a5 FECA2000\[^\n\]*\n"	{ set x [expr $x+1] }
   1476 	    -re "^ +64 +FCFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1477 	    -re "^ +\[0-9\]+ 01ac FEDA2000\[^\n\]*\n"	{ set x [expr $x+1] }
   1478 	    -re "^ +65 +FCFFFF\[^\n\]*\n"		{ set x [expr $x+1] }
   1479 	    -re "\[^\n\]*\n"				{ }
   1480 	    timeout				{ perror "timeout\n"; break }
   1481 	    eof					{ break }
   1482 	}
   1483     }
   1484 
   1485     # This was intended to do any cleanup necessary.  It kinda looks like it
   1486     # isn't needed, but just in case, please keep it in for now.
   1487     gas_finish
   1488 
   1489     # Did we find what we were looking for?  If not, flunk it.
   1490     if [expr $x==124] then { pass $testname } else { fail $testname }
   1491 }
   1492 
   1493 proc do_am33_6 {} {
   1494     set testname "am33_6.s: am33 tests part 6"
   1495     set x 0
   1496 
   1497     gas_start "am33_6.s" "-al"
   1498 
   1499     # Instead of having a variable for each match string just increment the
   1500     # total number of matches seen.  That's simpler when testing large numbers
   1501     # of instructions (as these tests to).
   1502     while 1 {
   1503 	expect {
   1504 	    -re "^ +\[0-9\]+ 0000 F7004123\[^\n\]*\n"	{ set x [expr $x+1] }
   1505 	    -re "^ +\[0-9\]+ 0004 F7104123\[^\n\]*\n"	{ set x [expr $x+1] }
   1506 	    -re "^ +\[0-9\]+ 0008 F7204123\[^\n\]*\n"	{ set x [expr $x+1] }
   1507 	    -re "^ +\[0-9\]+ 000c F7304123\[^\n\]*\n"	{ set x [expr $x+1] }
   1508 	    -re "^ +\[0-9\]+ 0010 F7404123\[^\n\]*\n"	{ set x [expr $x+1] }
   1509 	    -re "^ +\[0-9\]+ 0014 F7504123\[^\n\]*\n"	{ set x [expr $x+1] }
   1510 	    -re "^ +\[0-9\]+ 0018 F7604123\[^\n\]*\n"	{ set x [expr $x+1] }
   1511 	    -re "^ +\[0-9\]+ 001c F7704123\[^\n\]*\n"	{ set x [expr $x+1] }
   1512 	    -re "^ +\[0-9\]+ 0020 F7804123\[^\n\]*\n"	{ set x [expr $x+1] }
   1513 	    -re "^ +\[0-9\]+ 0024 F7904123\[^\n\]*\n"	{ set x [expr $x+1] }
   1514 	    -re "^ +\[0-9\]+ 0028 F7A04123\[^\n\]*\n"	{ set x [expr $x+1] }
   1515 	    -re "^ +\[0-9\]+ 002c F7B04123\[^\n\]*\n"	{ set x [expr $x+1] }
   1516 	    -re "^ +\[0-9\]+ 0030 F7C04123\[^\n\]*\n"	{ set x [expr $x+1] }
   1517 	    -re "^ +\[0-9\]+ 0034 F7D04123\[^\n\]*\n"	{ set x [expr $x+1] }
   1518 	    -re "^ +\[0-9\]+ 0038 F7014123\[^\n\]*\n"	{ set x [expr $x+1] }
   1519 	    -re "^ +\[0-9\]+ 003c F7114123\[^\n\]*\n"	{ set x [expr $x+1] }
   1520 	    -re "^ +\[0-9\]+ 0040 F7214123\[^\n\]*\n"	{ set x [expr $x+1] }
   1521 	    -re "^ +\[0-9\]+ 0044 F7314123\[^\n\]*\n"	{ set x [expr $x+1] }
   1522 	    -re "^ +\[0-9\]+ 0048 F7614123\[^\n\]*\n"	{ set x [expr $x+1] }
   1523 	    -re "^ +\[0-9\]+ 004c F7714123\[^\n\]*\n"	{ set x [expr $x+1] }
   1524 	    -re "^ +\[0-9\]+ 0050 F7814123\[^\n\]*\n"	{ set x [expr $x+1] }
   1525 	    -re "^ +\[0-9\]+ 0054 F7914123\[^\n\]*\n"	{ set x [expr $x+1] }
   1526 	    -re "^ +\[0-9\]+ 0058 F7A14123\[^\n\]*\n"	{ set x [expr $x+1] }
   1527 	    -re "^ +\[0-9\]+ 005c F7B14123\[^\n\]*\n"	{ set x [expr $x+1] }
   1528 	    -re "^ +\[0-9\]+ 0060 F7C14123\[^\n\]*\n"	{ set x [expr $x+1] }
   1529 	    -re "^ +\[0-9\]+ 0064 F7D14123\[^\n\]*\n"	{ set x [expr $x+1] }
   1530 	    -re "^ +\[0-9\]+ 0068 F7024123\[^\n\]*\n"	{ set x [expr $x+1] }
   1531 	    -re "^ +\[0-9\]+ 006c F7124123\[^\n\]*\n"	{ set x [expr $x+1] }
   1532 	    -re "^ +\[0-9\]+ 0070 F7224123\[^\n\]*\n"	{ set x [expr $x+1] }
   1533 	    -re "^ +\[0-9\]+ 0074 F7324123\[^\n\]*\n"	{ set x [expr $x+1] }
   1534 	    -re "^ +\[0-9\]+ 0078 F7424123\[^\n\]*\n"	{ set x [expr $x+1] }
   1535 	    -re "^ +\[0-9\]+ 007c F7524123\[^\n\]*\n"	{ set x [expr $x+1] }
   1536 	    -re "^ +\[0-9\]+ 0080 F7624123\[^\n\]*\n"	{ set x [expr $x+1] }
   1537 	    -re "^ +\[0-9\]+ 0084 F7724123\[^\n\]*\n"	{ set x [expr $x+1] }
   1538 	    -re "^ +\[0-9\]+ 0088 F7824123\[^\n\]*\n"	{ set x [expr $x+1] }
   1539 	    -re "^ +\[0-9\]+ 008c F7924123\[^\n\]*\n"	{ set x [expr $x+1] }
   1540 	    -re "^ +\[0-9\]+ 0090 F7A24123\[^\n\]*\n"	{ set x [expr $x+1] }
   1541 	    -re "^ +\[0-9\]+ 0094 F7B24123\[^\n\]*\n"	{ set x [expr $x+1] }
   1542 	    -re "^ +\[0-9\]+ 0098 F7C24123\[^\n\]*\n"	{ set x [expr $x+1] }
   1543 	    -re "^ +\[0-9\]+ 009c F7D24123\[^\n\]*\n"	{ set x [expr $x+1] }
   1544 	    -re "^ +\[0-9\]+ 00a0 F7034123\[^\n\]*\n"	{ set x [expr $x+1] }
   1545 	    -re "^ +\[0-9\]+ 00a4 F7134123\[^\n\]*\n"	{ set x [expr $x+1] }
   1546 	    -re "^ +\[0-9\]+ 00a8 F7234123\[^\n\]*\n"	{ set x [expr $x+1] }
   1547 	    -re "^ +\[0-9\]+ 00ac F7334123\[^\n\]*\n"	{ set x [expr $x+1] }
   1548 	    -re "^ +\[0-9\]+ 00b0 F7434123\[^\n\]*\n"	{ set x [expr $x+1] }
   1549 	    -re "^ +\[0-9\]+ 00b4 F7534123\[^\n\]*\n"	{ set x [expr $x+1] }
   1550 	    -re "^ +\[0-9\]+ 00b8 F7634123\[^\n\]*\n"	{ set x [expr $x+1] }
   1551 	    -re "^ +\[0-9\]+ 00bc F7734123\[^\n\]*\n"	{ set x [expr $x+1] }
   1552 	    -re "^ +\[0-9\]+ 00c0 F7834123\[^\n\]*\n"	{ set x [expr $x+1] }
   1553 	    -re "^ +\[0-9\]+ 00c4 F7934123\[^\n\]*\n"	{ set x [expr $x+1] }
   1554 	    -re "^ +\[0-9\]+ 00c8 F7A34123\[^\n\]*\n"	{ set x [expr $x+1] }
   1555 	    -re "^ +\[0-9\]+ 00cc F7B34123\[^\n\]*\n"	{ set x [expr $x+1] }
   1556 	    -re "^ +\[0-9\]+ 00d0 F7C34123\[^\n\]*\n"	{ set x [expr $x+1] }
   1557 	    -re "^ +\[0-9\]+ 00d4 F7D34123\[^\n\]*\n"	{ set x [expr $x+1] }
   1558 	    -re "^ +\[0-9\]+ 00d8 F7044123\[^\n\]*\n"	{ set x [expr $x+1] }
   1559 	    -re "^ +\[0-9\]+ 00dc F7144123\[^\n\]*\n"	{ set x [expr $x+1] }
   1560 	    -re "^ +\[0-9\]+ 00e0 F7244123\[^\n\]*\n"	{ set x [expr $x+1] }
   1561 	    -re "^ +\[0-9\]+ 00e4 F7344123\[^\n\]*\n"	{ set x [expr $x+1] }
   1562 	    -re "^ +\[0-9\]+ 00e8 F7444123\[^\n\]*\n"	{ set x [expr $x+1] }
   1563 	    -re "^ +\[0-9\]+ 00ec F7544123\[^\n\]*\n"	{ set x [expr $x+1] }
   1564 	    -re "^ +\[0-9\]+ 00f0 F7644123\[^\n\]*\n"	{ set x [expr $x+1] }
   1565 	    -re "^ +\[0-9\]+ 00f4 F7744123\[^\n\]*\n"	{ set x [expr $x+1] }
   1566 	    -re "^ +\[0-9\]+ 00f8 F7844123\[^\n\]*\n"	{ set x [expr $x+1] }
   1567 	    -re "^ +\[0-9\]+ 00fc F7944123\[^\n\]*\n"	{ set x [expr $x+1] }
   1568 	    -re "^ +\[0-9\]+ 0100 F7A44123\[^\n\]*\n"	{ set x [expr $x+1] }
   1569 	    -re "^ +\[0-9\]+ 0104 F7B44123\[^\n\]*\n"	{ set x [expr $x+1] }
   1570 	    -re "^ +\[0-9\]+ 0108 F7C44123\[^\n\]*\n"	{ set x [expr $x+1] }
   1571 	    -re "^ +\[0-9\]+ 010c F7D44123\[^\n\]*\n"	{ set x [expr $x+1] }
   1572 	    -re "\[^\n\]*\n"				{ }
   1573 	    timeout				{ perror "timeout\n"; break }
   1574 	    eof					{ break }
   1575 	}
   1576     }
   1577 
   1578     # This was intended to do any cleanup necessary.  It kinda looks like it
   1579     # isn't needed, but just in case, please keep it in for now.
   1580     gas_finish
   1581 
   1582     # Did we find what we were looking for?  If not, flunk it.
   1583     if [expr $x==68] then { pass $testname } else { fail $testname }
   1584 }
   1585 
   1586 proc do_am33_7 {} {
   1587     set testname "am33_7.s: am33 tests part 7"
   1588     set x 0
   1589 
   1590     gas_start "am33_7.s" "-al"
   1591 
   1592     # Instead of having a variable for each match string just increment the
   1593     # total number of matches seen.  That's simpler when testing large numbers
   1594     # of instructions (as these tests to).
   1595     while 1 {
   1596 	expect {
   1597 	    -re "^ +\[0-9\]+ 0000 F7054123\[^\n\]*\n"	{ set x [expr $x+1] }
   1598 	    -re "^ +\[0-9\]+ 0004 F7154123\[^\n\]*\n"	{ set x [expr $x+1] }
   1599 	    -re "^ +\[0-9\]+ 0008 F7254123\[^\n\]*\n"	{ set x [expr $x+1] }
   1600 	    -re "^ +\[0-9\]+ 000c F7354123\[^\n\]*\n"	{ set x [expr $x+1] }
   1601 	    -re "^ +\[0-9\]+ 0010 F7654123\[^\n\]*\n"	{ set x [expr $x+1] }
   1602 	    -re "^ +\[0-9\]+ 0014 F7754123\[^\n\]*\n"	{ set x [expr $x+1] }
   1603 	    -re "^ +\[0-9\]+ 0018 F7854123\[^\n\]*\n"	{ set x [expr $x+1] }
   1604 	    -re "^ +\[0-9\]+ 001c F7954123\[^\n\]*\n"	{ set x [expr $x+1] }
   1605 	    -re "^ +\[0-9\]+ 0020 F7A54123\[^\n\]*\n"	{ set x [expr $x+1] }
   1606 	    -re "^ +\[0-9\]+ 0024 F7B54123\[^\n\]*\n"	{ set x [expr $x+1] }
   1607 	    -re "^ +\[0-9\]+ 0028 F7C54123\[^\n\]*\n"	{ set x [expr $x+1] }
   1608 	    -re "^ +\[0-9\]+ 002c F7D54123\[^\n\]*\n"	{ set x [expr $x+1] }
   1609 	    -re "^ +\[0-9\]+ 0030 F7064123\[^\n\]*\n"	{ set x [expr $x+1] }
   1610 	    -re "^ +\[0-9\]+ 0034 F7164123\[^\n\]*\n"	{ set x [expr $x+1] }
   1611 	    -re "^ +\[0-9\]+ 0038 F7264123\[^\n\]*\n"	{ set x [expr $x+1] }
   1612 	    -re "^ +\[0-9\]+ 003c F7364123\[^\n\]*\n"	{ set x [expr $x+1] }
   1613 	    -re "^ +\[0-9\]+ 0040 F7464123\[^\n\]*\n"	{ set x [expr $x+1] }
   1614 	    -re "^ +\[0-9\]+ 0044 F7564123\[^\n\]*\n"	{ set x [expr $x+1] }
   1615 	    -re "^ +\[0-9\]+ 0048 F7664123\[^\n\]*\n"	{ set x [expr $x+1] }
   1616 	    -re "^ +\[0-9\]+ 004c F7764123\[^\n\]*\n"	{ set x [expr $x+1] }
   1617 	    -re "^ +\[0-9\]+ 0050 F7864123\[^\n\]*\n"	{ set x [expr $x+1] }
   1618 	    -re "^ +\[0-9\]+ 0054 F7964123\[^\n\]*\n"	{ set x [expr $x+1] }
   1619 	    -re "^ +\[0-9\]+ 0058 F7A64123\[^\n\]*\n"	{ set x [expr $x+1] }
   1620 	    -re "^ +\[0-9\]+ 005c F7B64123\[^\n\]*\n"	{ set x [expr $x+1] }
   1621 	    -re "^ +\[0-9\]+ 0060 F7C64123\[^\n\]*\n"	{ set x [expr $x+1] }
   1622 	    -re "^ +\[0-9\]+ 0064 F7D64123\[^\n\]*\n"	{ set x [expr $x+1] }
   1623 	    -re "^ +\[0-9\]+ 0068 F7074123\[^\n\]*\n"	{ set x [expr $x+1] }
   1624 	    -re "^ +\[0-9\]+ 006c F7174123\[^\n\]*\n"	{ set x [expr $x+1] }
   1625 	    -re "^ +\[0-9\]+ 0070 F7274123\[^\n\]*\n"	{ set x [expr $x+1] }
   1626 	    -re "^ +\[0-9\]+ 0074 F7374123\[^\n\]*\n"	{ set x [expr $x+1] }
   1627 	    -re "^ +\[0-9\]+ 0078 F7474123\[^\n\]*\n"	{ set x [expr $x+1] }
   1628 	    -re "^ +\[0-9\]+ 007c F7574123\[^\n\]*\n"	{ set x [expr $x+1] }
   1629 	    -re "^ +\[0-9\]+ 0080 F7674123\[^\n\]*\n"	{ set x [expr $x+1] }
   1630 	    -re "^ +\[0-9\]+ 0084 F7774123\[^\n\]*\n"	{ set x [expr $x+1] }
   1631 	    -re "^ +\[0-9\]+ 0088 F7874123\[^\n\]*\n"	{ set x [expr $x+1] }
   1632 	    -re "^ +\[0-9\]+ 008c F7974123\[^\n\]*\n"	{ set x [expr $x+1] }
   1633 	    -re "^ +\[0-9\]+ 0090 F7A74123\[^\n\]*\n"	{ set x [expr $x+1] }
   1634 	    -re "^ +\[0-9\]+ 0094 F7B74123\[^\n\]*\n"	{ set x [expr $x+1] }
   1635 	    -re "^ +\[0-9\]+ 0098 F7C74123\[^\n\]*\n"	{ set x [expr $x+1] }
   1636 	    -re "^ +\[0-9\]+ 009c F7D74123\[^\n\]*\n"	{ set x [expr $x+1] }
   1637 	    -re "^ +\[0-9\]+ 00a0 F7084123\[^\n\]*\n"	{ set x [expr $x+1] }
   1638 	    -re "^ +\[0-9\]+ 00a4 F7184123\[^\n\]*\n"	{ set x [expr $x+1] }
   1639 	    -re "^ +\[0-9\]+ 00a8 F7284123\[^\n\]*\n"	{ set x [expr $x+1] }
   1640 	    -re "^ +\[0-9\]+ 00ac F7384123\[^\n\]*\n"	{ set x [expr $x+1] }
   1641 	    -re "^ +\[0-9\]+ 00b0 F7484123\[^\n\]*\n"	{ set x [expr $x+1] }
   1642 	    -re "^ +\[0-9\]+ 00b4 F7584123\[^\n\]*\n"	{ set x [expr $x+1] }
   1643 	    -re "^ +\[0-9\]+ 00b8 F7684123\[^\n\]*\n"	{ set x [expr $x+1] }
   1644 	    -re "^ +\[0-9\]+ 00bc F7784123\[^\n\]*\n"	{ set x [expr $x+1] }
   1645 	    -re "^ +\[0-9\]+ 00c0 F7884123\[^\n\]*\n"	{ set x [expr $x+1] }
   1646 	    -re "^ +\[0-9\]+ 00c4 F7984123\[^\n\]*\n"	{ set x [expr $x+1] }
   1647 	    -re "^ +\[0-9\]+ 00c8 F7A84123\[^\n\]*\n"	{ set x [expr $x+1] }
   1648 	    -re "^ +\[0-9\]+ 00cc F7B84123\[^\n\]*\n"	{ set x [expr $x+1] }
   1649 	    -re "^ +\[0-9\]+ 00d0 F7C84123\[^\n\]*\n"	{ set x [expr $x+1] }
   1650 	    -re "^ +\[0-9\]+ 00d4 F7D84123\[^\n\]*\n"	{ set x [expr $x+1] }
   1651 	    -re "^ +\[0-9\]+ 00d8 F7094123\[^\n\]*\n"	{ set x [expr $x+1] }
   1652 	    -re "^ +\[0-9\]+ 00dc F7194123\[^\n\]*\n"	{ set x [expr $x+1] }
   1653 	    -re "^ +\[0-9\]+ 00e0 F7294123\[^\n\]*\n"	{ set x [expr $x+1] }
   1654 	    -re "^ +\[0-9\]+ 00e4 F7394123\[^\n\]*\n"	{ set x [expr $x+1] }
   1655 	    -re "^ +\[0-9\]+ 00e8 F7494123\[^\n\]*\n"	{ set x [expr $x+1] }
   1656 	    -re "^ +\[0-9\]+ 00ec F7594123\[^\n\]*\n"	{ set x [expr $x+1] }
   1657 	    -re "^ +\[0-9\]+ 00f0 F7694123\[^\n\]*\n"	{ set x [expr $x+1] }
   1658 	    -re "^ +\[0-9\]+ 00f4 F7794123\[^\n\]*\n"	{ set x [expr $x+1] }
   1659 	    -re "^ +\[0-9\]+ 00f8 F7894123\[^\n\]*\n"	{ set x [expr $x+1] }
   1660 	    -re "^ +\[0-9\]+ 00fc F7994123\[^\n\]*\n"	{ set x [expr $x+1] }
   1661 	    -re "^ +\[0-9\]+ 0100 F7A94123\[^\n\]*\n"	{ set x [expr $x+1] }
   1662 	    -re "^ +\[0-9\]+ 0104 F7B94123\[^\n\]*\n"	{ set x [expr $x+1] }
   1663 	    -re "^ +\[0-9\]+ 0108 F7C94123\[^\n\]*\n"	{ set x [expr $x+1] }
   1664 	    -re "^ +\[0-9\]+ 010c F7D94123\[^\n\]*\n"	{ set x [expr $x+1] }
   1665 	    -re "\[^\n\]*\n"				{ }
   1666 	    timeout				{ perror "timeout\n"; break }
   1667 	    eof					{ break }
   1668 	}
   1669     }
   1670 
   1671     # This was intended to do any cleanup necessary.  It kinda looks like it
   1672     # isn't needed, but just in case, please keep it in for now.
   1673     gas_finish
   1674 
   1675     # Did we find what we were looking for?  If not, flunk it.
   1676     if [expr $x==68] then { pass $testname } else { fail $testname }
   1677 }
   1678 
   1679 proc do_am33_8 {} {
   1680     set testname "am33_8.s: am33 tests part 8"
   1681     set x 0
   1682 
   1683     gas_start "am33_8.s" "-al"
   1684 
   1685     # Instead of having a variable for each match string just increment the
   1686     # total number of matches seen.  That's simpler when testing large numbers
   1687     # of instructions (as these tests to).
   1688     while 1 {
   1689 	expect {
   1690 	    -re "^ +\[0-9\]+ 0000 F70A4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1691 	    -re "^ +\[0-9\]+ 0004 F71A4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1692 	    -re "^ +\[0-9\]+ 0008 F72A4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1693 	    -re "^ +\[0-9\]+ 000c F73A4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1694 	    -re "^ +\[0-9\]+ 0010 F74A4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1695 	    -re "^ +\[0-9\]+ 0014 F75A4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1696 	    -re "^ +\[0-9\]+ 0018 F76A4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1697 	    -re "^ +\[0-9\]+ 001c F77A4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1698 	    -re "^ +\[0-9\]+ 0020 F78A4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1699 	    -re "^ +\[0-9\]+ 0024 F79A4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1700 	    -re "^ +\[0-9\]+ 0028 F7AA4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1701 	    -re "^ +\[0-9\]+ 002c F7BA4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1702 	    -re "^ +\[0-9\]+ 0030 F7CA4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1703 	    -re "^ +\[0-9\]+ 0034 F7DA4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1704 	    -re "^ +\[0-9\]+ 0038 F70B4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1705 	    -re "^ +\[0-9\]+ 003c F71B4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1706 	    -re "^ +\[0-9\]+ 0040 F72B4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1707 	    -re "^ +\[0-9\]+ 0044 F73B4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1708 	    -re "^ +\[0-9\]+ 0048 F74B4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1709 	    -re "^ +\[0-9\]+ 004c F75B4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1710 	    -re "^ +\[0-9\]+ 0050 F76B4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1711 	    -re "^ +\[0-9\]+ 0054 F77B4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1712 	    -re "^ +\[0-9\]+ 0058 F78B4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1713 	    -re "^ +\[0-9\]+ 005c F79B4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1714 	    -re "^ +\[0-9\]+ 0060 F7AB4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1715 	    -re "^ +\[0-9\]+ 0064 F7BB4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1716 	    -re "^ +\[0-9\]+ 0068 F7CB4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1717 	    -re "^ +\[0-9\]+ 006c F7DB4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1718 	    -re "^ +\[0-9\]+ 0070 F70C4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1719 	    -re "^ +\[0-9\]+ 0074 F71C4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1720 	    -re "^ +\[0-9\]+ 0078 F72C4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1721 	    -re "^ +\[0-9\]+ 007c F73C4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1722 	    -re "^ +\[0-9\]+ 0080 F74C4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1723 	    -re "^ +\[0-9\]+ 0084 F75C4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1724 	    -re "^ +\[0-9\]+ 0088 F76C4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1725 	    -re "^ +\[0-9\]+ 008c F77C4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1726 	    -re "^ +\[0-9\]+ 0090 F78C4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1727 	    -re "^ +\[0-9\]+ 0094 F79C4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1728 	    -re "^ +\[0-9\]+ 0098 F7AC4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1729 	    -re "^ +\[0-9\]+ 009c F7BC4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1730 	    -re "^ +\[0-9\]+ 00a0 F7CC4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1731 	    -re "^ +\[0-9\]+ 00a4 F7DC4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1732 	    -re "^ +\[0-9\]+ 00a8 F70D4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1733 	    -re "^ +\[0-9\]+ 00ac F71D4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1734 	    -re "^ +\[0-9\]+ 00b0 F72D4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1735 	    -re "^ +\[0-9\]+ 00b4 F73D4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1736 	    -re "^ +\[0-9\]+ 00b8 F74D4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1737 	    -re "^ +\[0-9\]+ 00bc F75D4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1738 	    -re "^ +\[0-9\]+ 00c0 F76D4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1739 	    -re "^ +\[0-9\]+ 00c4 F77D4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1740 	    -re "^ +\[0-9\]+ 00c8 F78D4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1741 	    -re "^ +\[0-9\]+ 00cc F79D4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1742 	    -re "^ +\[0-9\]+ 00d0 F7AD4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1743 	    -re "^ +\[0-9\]+ 00d4 F7BD4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1744 	    -re "^ +\[0-9\]+ 00d8 F7CD4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1745 	    -re "^ +\[0-9\]+ 00dc F7DD4123\[^\n\]*\n"	{ set x [expr $x+1] }
   1746 	    -re "^ +\[0-9\]+ 00e0 F7E02140\[^\n\]*\n"	{ set x [expr $x+1] }
   1747 	    -re "^ +\[0-9\]+ 00e4 F7E02141\[^\n\]*\n"	{ set x [expr $x+1] }
   1748 	    -re "^ +\[0-9\]+ 00e8 F7E02142\[^\n\]*\n"	{ set x [expr $x+1] }
   1749 	    -re "^ +\[0-9\]+ 00ec F7E02143\[^\n\]*\n"	{ set x [expr $x+1] }
   1750 	    -re "^ +\[0-9\]+ 00f0 F7E02144\[^\n\]*\n"	{ set x [expr $x+1] }
   1751 	    -re "^ +\[0-9\]+ 00f4 F7E02145\[^\n\]*\n"	{ set x [expr $x+1] }
   1752 	    -re "^ +\[0-9\]+ 00f8 F7E02146\[^\n\]*\n"	{ set x [expr $x+1] }
   1753 	    -re "^ +\[0-9\]+ 00fc F7E02147\[^\n\]*\n"	{ set x [expr $x+1] }
   1754 	    -re "^ +\[0-9\]+ 0100 F7E02148\[^\n\]*\n"	{ set x [expr $x+1] }
   1755 	    -re "^ +\[0-9\]+ 0104 F7E02149\[^\n\]*\n"	{ set x [expr $x+1] }
   1756 	    -re "^ +\[0-9\]+ 0108 F7E0214A\[^\n\]*\n"	{ set x [expr $x+1] }
   1757 	    -re "\[^\n\]*\n"				{ }
   1758 	    timeout				{ perror "timeout\n"; break }
   1759 	    eof					{ break }
   1760 	}
   1761     }
   1762 
   1763     # This was intended to do any cleanup necessary.  It kinda looks like it
   1764     # isn't needed, but just in case, please keep it in for now.
   1765     gas_finish
   1766 
   1767     # Did we find what we were looking for?  If not, flunk it.
   1768     if [expr $x==67] then { pass $testname } else { fail $testname }
   1769 }
   1770 
   1771 if [istarget mn10300*-*-*] then {
   1772     # Test the basic instruction parser.
   1773     do_add
   1774     do_bcc
   1775     do_bit
   1776     do_cmp
   1777     do_ext
   1778     do_extend
   1779     do_logical
   1780     do_loop
   1781     do_mov1
   1782     do_mov2
   1783     do_mov3
   1784     do_mov4
   1785     do_mov5
   1786     do_movbu
   1787     do_movhu
   1788     do_movm
   1789     do_muldiv
   1790     do_other
   1791     do_shift
   1792     do_sub
   1793     do_udf
   1794     do_am33_1
   1795     do_am33_2
   1796     do_am33_3
   1797     do_am33_4
   1798     do_am33_5
   1799     do_am33_6
   1800     do_am33_7
   1801     do_am33_8
   1802 
   1803     run_list_test "movpc" ""
   1804     run_list_test "pr997" "-a"
   1805 
   1806     run_dump_test "am33-2"
   1807     run_dump_test "relax"
   1808     run_dump_test "pr11973"
   1809 }
   1810