Fix tests to avoid cldemote encoding.
[binutils-gdb.git] / gas / testsuite / gas / tic4x / allopcodes.S
1 ;;;
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
5 ;;; test output.
6 ;;;
7 ;;; To rebuild this file you must use
8 ;;; ./rebuild.sh
9 ;;;
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
16 ;;;
17 #include "opclasses.h"
18
19 .text
20 ;;------------------------------------
21 ;; C3X INSNS
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 )
45 .ifdef TEST_C3X
46 br_I: br start
47 brd_I: brd start
48 call_I: call start
49 call_JS: callc R0
50 callc start
51 .endif
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 )
62 .ifdef TEST_C3X
63 iack_Z: iack @start
64 iack *+AR0(1)
65 idle_Z: idle
66 .endif
67 .ifdef TEST_IDLE2
68 idle2_Z: idle2
69 .endif
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 )
81 .ifdef TEST_C3X
82 ldp_Z: ldp start
83 .endif
84 B_CLASS( ldm, TEST_C3X )
85 .ifdef TEST_LPWR
86 lopower_Z: lopower
87 .endif
88 A_CLASS( lsh, TEST_C3X )
89 T_CLASS( lsh, TEST_C3X )
90 Q_CLASS( lsh, sti, TEST_C3X )
91 .ifdef TEST_LPWR
92 maxspeed_Z: maxspeed
93 .endif
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 )
120 .ifdef TEST_C3X
121 reti_Z: retiC
122 reti
123 rets_Z: retsC
124 rets
125 .endif
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 )
131 .ifdef TEST_C3X
132 rptb_I2: rptb start
133 .endif
134 A3_CLASS( rpts, TEST_C3X )
135 .ifdef TEST_C3X
136 sigi_Z: sigi
137 .endif
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 )
156 .ifdef TEST_C3X
157 swi_Z: swi
158 trap_Z: trapC 10
159 trap 10
160 .endif
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 )
166
167 ;;------------------------------------
168 ;; C4X INSNS
169 ;;------------------------------------
170 .ifdef TEST_C4X
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 )
175 .ifdef TEST_C4X
176 laj_I: laj start
177 laj_JS: lajc R0
178 lajc start
179 lat_Z: latC 10
180 .endif
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 )
190 .ifdef TEST_C4X
191 ldep_Z: ldep IVTP, AR0
192 ldhi_Z: ldhi 35, R0
193 ldhi start, R0
194 ldpe_Z: ldpe AR0, IVTP
195 ldpk_Z: ldpk start
196 .endif
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 )
222 .ifdef TEST_C4X
223 retid_Z: retiCd
224 retid
225 rptb2_I2: rptb AR0
226 rptbd_I2: rptbd start
227 rptbd AR0
228 .endif
229 B_CLASS( rsqrf, TEST_C4X )
230 A6_CLASS( sigi, TEST_C4X )
231 .ifdef TEST_C4X
232 sti2_A7: sti -5, @start
233 sti -5, *+AR0(5)
234 stik_Z: stik -5, @start
235 stik -5, *+AR0(5)
236 .endif
237 B_CLASS( toieee, TEST_C4X )
238 P_CLASS( toieee, stf, TEST_C4X )
239 .endif
240 .end
241