2 ;;; Test all opcodes and argument permuation
3 ;;; To make our job a lot simpler, we define a couple of
4 ;;; insn classes, that we use to generate the proper
7 ;;; To rebuild this file you must use
10 ;;; These definitions are used within this file:
11 ;;; TEST_C3X Enables testing of c3x opcodes
12 ;;; TEST_C4X Enables testing of c4x opcodes
13 ;;; TEST_ENH Enable testing of enhanced opcodes
14 ;;; TEST_IDLE2 Enable testing of IDLE2 command
15 ;;; TEST_LPWR Enable testing of LOPOWER commands
17 #include "opclasses.h"
20 ;;------------------------------------
22 ;;------------------------------------
23 start: B_CLASS( absf, TEST_C3X )
24 P_CLASS( absf, stf, TEST_C3X )
25 A_CLASS( absi, TEST_C3X )
26 P_CLASS( absi, sti, TEST_C3X )
27 A_CLASS( addc, TEST_C3X )
28 TC_CLASS( addc, TEST_C3X )
29 B_CLASS( addf, TEST_C3X )
30 SC_CLASS( addf, TEST_C3X )
31 QC_CLASS( addf, stf, TEST_C3X )
32 A_CLASS( addi, TEST_C3X )
33 TC_CLASS( addi, TEST_C3X )
34 QC_CLASS( addi, sti, TEST_C3X )
35 AU_CLASS( and, TEST_C3X )
36 TC_CLASS( and, TEST_C3X )
37 QC_CLASS( and, sti, TEST_C3X )
38 AU_CLASS( andn, TEST_C3X )
39 T_CLASS( andn, TEST_C3X )
40 A_CLASS( ash, TEST_C3X )
41 T_CLASS( ash, TEST_C3X )
42 Q_CLASS( ash, sti, TEST_C3X )
43 J_CLASS( bC, b, TEST_C3X )
44 J_CLASS( bCd, bd, TEST_C3X )
52 B_CLASS( cmpf, TEST_C3X )
53 S2_CLASS( cmpf, TEST_C3X )
54 A_CLASS( cmpi, TEST_C3X )
55 T2_CLASS( cmpi, TEST_C3X )
56 D_CLASS( dbC, db, TEST_C3X )
57 D_CLASS( dbCd, dbd, TEST_C3X )
58 AF_CLASS( fix, TEST_C3X )
59 P_CLASS( fix, sti, TEST_C3X )
60 BI_CLASS( float, TEST_C3X )
61 P_CLASS( float, stf, TEST_C3X )
70 B_CLASS( lde, TEST_C3X )
71 B_CLASS( ldf, TEST_C3X )
72 LL_CLASS( ldf, TEST_C3X )
73 P_CLASS( ldf, stf, TEST_C3X )
74 BB_CLASS( ldfC, TEST_C3X )
75 B6_CLASS( ldfi, TEST_C3X )
76 A_CLASS( ldi, TEST_C3X )
77 LL_CLASS( ldi, TEST_C3X )
78 P_CLASS( ldi, sti, TEST_C3X )
79 AB_CLASS( ldiC, TEST_C3X )
80 A6_CLASS( ldii, TEST_C3X )
84 B_CLASS( ldm, TEST_C3X )
88 A_CLASS( lsh, TEST_C3X )
89 T_CLASS( lsh, TEST_C3X )
90 Q_CLASS( lsh, sti, TEST_C3X )
94 B_CLASS( mpyf, TEST_C3X )
95 SC_CLASS( mpyf, TEST_C3X )
96 M_CLASS( mpyf, addf, TEST_C3X )
97 QC_CLASS( mpyf, stf, TEST_C3X )
98 M_CLASS( mpyf, subf, TEST_C3X )
99 A_CLASS( mpyi, TEST_C3X )
100 TC_CLASS( mpyi, TEST_C3X )
101 M_CLASS( mpyi, addi, TEST_C3X )
102 QC_CLASS( mpyi, sti, TEST_C3X )
103 M_CLASS( mpyi, subi, TEST_C3X )
104 A_CLASS( negb, TEST_C3X )
105 B_CLASS( negf, TEST_C3X )
106 P_CLASS( negf, stf, TEST_C3X )
107 A_CLASS( negi, TEST_C3X )
108 P_CLASS( negi, sti, TEST_C3X )
109 A2_CLASS( nop, TEST_C3X )
110 B_CLASS( norm, TEST_C3X )
111 AU_CLASS( not, TEST_C3X )
112 P_CLASS( not, sti, TEST_C3X )
113 AU_CLASS( or, TEST_C3X )
114 TC_CLASS( or, TEST_C3X )
115 QC_CLASS( or, sti, TEST_C3X )
116 R_CLASS( pop, TEST_C3X )
117 RF_CLASS( popf, TEST_C3X )
118 R_CLASS( push, TEST_C3X )
119 RF_CLASS( pushf, TEST_C3X )
126 B_CLASS( rnd, TEST_C3X )
127 R_CLASS( rol, TEST_C3X )
128 R_CLASS( rolc, TEST_C3X )
129 R_CLASS( ror, TEST_C3X )
130 R_CLASS( rorc, TEST_C3X )
134 A3_CLASS( rpts, TEST_C3X )
138 B7_CLASS( stf, TEST_C3X )
139 LS_CLASS( stf, TEST_C3X )
140 B7_CLASS( stfi, TEST_C3X )
141 A7_CLASS( sti, TEST_C3X )
142 LS_CLASS( sti, TEST_C3X )
143 A7_CLASS( stii, TEST_C3X )
144 A_CLASS( subb, TEST_C3X )
145 T_CLASS( subb, TEST_C3X )
146 A_CLASS( subc, TEST_C3X )
147 B_CLASS( subf, TEST_C3X )
148 S_CLASS( subf, TEST_C3X )
149 Q_CLASS( subf, stf, TEST_C3X )
150 A_CLASS( subi, TEST_C3X )
151 T_CLASS( subi, TEST_C3X )
152 Q_CLASS( subi, sti, TEST_C3X )
153 A_CLASS( subrb, TEST_C3X )
154 B_CLASS( subrf, TEST_C3X )
155 A_CLASS( subri, TEST_C3X )
161 AU_CLASS( tstb, TEST_C3X )
162 T2C_CLASS( tstb, TEST_C3X )
163 AU_CLASS( xor, TEST_C3X )
164 TC_CLASS( xor, TEST_C3X )
165 QC_CLASS( xor, sti, TEST_C3X )
167 ;;------------------------------------
169 ;;------------------------------------
171 J_CLASS( bCaf, baf, TEST_C4X )
172 J_CLASS( bCat, bat, TEST_C4X )
173 B6_CLASS( frieee, TEST_C4X )
174 P_CLASS( frieee, stf, TEST_C4X )
181 A_CLASS( lb0, TEST_C4X )
182 A_CLASS( lb1, TEST_C4X )
183 A_CLASS( lb2, TEST_C4X )
184 A_CLASS( lb3, TEST_C4X )
185 AU_CLASS( lbu0, TEST_C4X )
186 AU_CLASS( lbu1, TEST_C4X )
187 AU_CLASS( lbu2, TEST_C4X )
188 AU_CLASS( lbu3, TEST_C4X )
189 AY_CLASS( lda, TEST_C4X )
191 ldep_Z: ldep IVTP, AR0
194 ldpe_Z: ldpe AR0, IVTP
197 A_CLASS( lh0, TEST_C4X )
198 A_CLASS( lh1, TEST_C4X )
199 AU_CLASS( lhu0, TEST_C4X )
200 AU_CLASS( lhu1, TEST_C4X )
201 A_CLASS( lwl0, TEST_C4X )
202 A_CLASS( lwl1, TEST_C4X )
203 A_CLASS( lwl2, TEST_C4X )
204 A_CLASS( lwl3, TEST_C4X )
205 A_CLASS( lwr0, TEST_C4X )
206 A_CLASS( lwr1, TEST_C4X )
207 A_CLASS( lwr2, TEST_C4X )
208 A_CLASS( lwr3, TEST_C4X )
209 A_CLASS( mb0, TEST_C4X )
210 A_CLASS( mb1, TEST_C4X )
211 A_CLASS( mb2, TEST_C4X )
212 A_CLASS( mb3, TEST_C4X )
213 A_CLASS( mh0, TEST_C4X )
214 A_CLASS( mh1, TEST_C4X )
215 A_CLASS( mh2, TEST_C4X )
216 A_CLASS( mh3, TEST_C4X )
217 A_CLASS( mpyshi, TEST_C4X )
218 TC_CLASS( mpyshi, TEST_C4X )
219 A_CLASS( mpyuhi, TEST_C4X )
220 TC_CLASS( mpyuhi, TEST_C4X )
221 BA_CLASS( rcpf, TEST_C4X )
226 rptbd_I2: rptbd start
229 B_CLASS( rsqrf, TEST_C4X )
230 A6_CLASS( sigi, TEST_C4X )
232 sti2_A7: sti -5, @start
234 stik_Z: stik -5, @start
237 B_CLASS( toieee, TEST_C4X )
238 P_CLASS( toieee, stf, TEST_C4X )