Upload Tizen:Base source
[external/binutils.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