OSDN Git Service

6d675a1c35a5fda5105634e2dbb0c9ecf638ca70
[pf3gnuchains/pf3gnuchains3x.git] / sid / component / cgen-cpu / sh / sh4a-decode.h
1 /* Decode header for sh4a.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright (C) 2000-2009 Red Hat, Inc.
6
7 This file is part of the Red Hat simulators.
8
9
10 */
11
12 #ifndef SH4A_DECODE_H
13 #define SH4A_DECODE_H
14
15 namespace sh4a {
16 // forward declaration of struct in -defs.h
17 struct write_stacks;
18 }
19
20 namespace sh4a {
21
22 using namespace cgen;
23 using namespace sh;
24
25 typedef UINT sh4a_insn_word;
26
27 /* Enum declaration for instructions in cpu family sh4a.  */
28 typedef enum sh4a_insn_type {
29   SH4A_INSN_X_INVALID, SH4A_INSN_ADD_COMPACT, SH4A_INSN_ADDI_COMPACT, SH4A_INSN_ADDC_COMPACT
30  , SH4A_INSN_ADDV_COMPACT, SH4A_INSN_AND_COMPACT, SH4A_INSN_ANDI_COMPACT, SH4A_INSN_ANDB_COMPACT
31  , SH4A_INSN_BF_COMPACT, SH4A_INSN_BFS_COMPACT, SH4A_INSN_BRA_COMPACT, SH4A_INSN_BRAF_COMPACT
32  , SH4A_INSN_BSR_COMPACT, SH4A_INSN_BSRF_COMPACT, SH4A_INSN_BT_COMPACT, SH4A_INSN_BTS_COMPACT
33  , SH4A_INSN_CLRMAC_COMPACT, SH4A_INSN_CLRS_COMPACT, SH4A_INSN_CLRT_COMPACT, SH4A_INSN_CMPEQ_COMPACT
34  , SH4A_INSN_CMPEQI_COMPACT, SH4A_INSN_CMPGE_COMPACT, SH4A_INSN_CMPGT_COMPACT, SH4A_INSN_CMPHI_COMPACT
35  , SH4A_INSN_CMPHS_COMPACT, SH4A_INSN_CMPPL_COMPACT, SH4A_INSN_CMPPZ_COMPACT, SH4A_INSN_CMPSTR_COMPACT
36  , SH4A_INSN_DIV0S_COMPACT, SH4A_INSN_DIV0U_COMPACT, SH4A_INSN_DIV1_COMPACT, SH4A_INSN_DMULSL_COMPACT
37  , SH4A_INSN_DMULUL_COMPACT, SH4A_INSN_DT_COMPACT, SH4A_INSN_EXTSB_COMPACT, SH4A_INSN_EXTSW_COMPACT
38  , SH4A_INSN_EXTUB_COMPACT, SH4A_INSN_EXTUW_COMPACT, SH4A_INSN_FABS_COMPACT, SH4A_INSN_FADD_COMPACT
39  , SH4A_INSN_FCMPEQ_COMPACT, SH4A_INSN_FCMPGT_COMPACT, SH4A_INSN_FDIV_COMPACT, SH4A_INSN_FIPR_COMPACT
40  , SH4A_INSN_FLDS_COMPACT, SH4A_INSN_FLDI0_COMPACT, SH4A_INSN_FLDI1_COMPACT, SH4A_INSN_FLOAT_COMPACT
41  , SH4A_INSN_FMAC_COMPACT, SH4A_INSN_FMOV1_COMPACT, SH4A_INSN_FMOV2_COMPACT, SH4A_INSN_FMOV3_COMPACT
42  , SH4A_INSN_FMOV4_COMPACT, SH4A_INSN_FMOV5_COMPACT, SH4A_INSN_FMOV6_COMPACT, SH4A_INSN_FMOV7_COMPACT
43  , SH4A_INSN_FMUL_COMPACT, SH4A_INSN_FNEG_COMPACT, SH4A_INSN_FRCHG_COMPACT, SH4A_INSN_FSCHG_COMPACT
44  , SH4A_INSN_FSQRT_COMPACT, SH4A_INSN_FSTS_COMPACT, SH4A_INSN_FSUB_COMPACT, SH4A_INSN_FTRC_COMPACT
45  , SH4A_INSN_FTRV_COMPACT, SH4A_INSN_JMP_COMPACT, SH4A_INSN_JSR_COMPACT, SH4A_INSN_LDC_GBR_COMPACT
46  , SH4A_INSN_LDC_VBR_COMPACT, SH4A_INSN_LDC_SR_COMPACT, SH4A_INSN_LDCL_GBR_COMPACT, SH4A_INSN_LDCL_VBR_COMPACT
47  , SH4A_INSN_LDS_FPSCR_COMPACT, SH4A_INSN_LDSL_FPSCR_COMPACT, SH4A_INSN_LDS_FPUL_COMPACT, SH4A_INSN_LDSL_FPUL_COMPACT
48  , SH4A_INSN_LDS_MACH_COMPACT, SH4A_INSN_LDSL_MACH_COMPACT, SH4A_INSN_LDS_MACL_COMPACT, SH4A_INSN_LDSL_MACL_COMPACT
49  , SH4A_INSN_LDS_PR_COMPACT, SH4A_INSN_LDSL_PR_COMPACT, SH4A_INSN_MACL_COMPACT, SH4A_INSN_MACW_COMPACT
50  , SH4A_INSN_MOV_COMPACT, SH4A_INSN_MOVI_COMPACT, SH4A_INSN_MOVB1_COMPACT, SH4A_INSN_MOVB2_COMPACT
51  , SH4A_INSN_MOVB3_COMPACT, SH4A_INSN_MOVB4_COMPACT, SH4A_INSN_MOVB5_COMPACT, SH4A_INSN_MOVB6_COMPACT
52  , SH4A_INSN_MOVB7_COMPACT, SH4A_INSN_MOVB8_COMPACT, SH4A_INSN_MOVB9_COMPACT, SH4A_INSN_MOVB10_COMPACT
53  , SH4A_INSN_MOVL1_COMPACT, SH4A_INSN_MOVL2_COMPACT, SH4A_INSN_MOVL3_COMPACT, SH4A_INSN_MOVL4_COMPACT
54  , SH4A_INSN_MOVL5_COMPACT, SH4A_INSN_MOVL6_COMPACT, SH4A_INSN_MOVL7_COMPACT, SH4A_INSN_MOVL8_COMPACT
55  , SH4A_INSN_MOVL9_COMPACT, SH4A_INSN_MOVL10_COMPACT, SH4A_INSN_MOVL11_COMPACT, SH4A_INSN_MOVW1_COMPACT
56  , SH4A_INSN_MOVW2_COMPACT, SH4A_INSN_MOVW3_COMPACT, SH4A_INSN_MOVW4_COMPACT, SH4A_INSN_MOVW5_COMPACT
57  , SH4A_INSN_MOVW6_COMPACT, SH4A_INSN_MOVW7_COMPACT, SH4A_INSN_MOVW8_COMPACT, SH4A_INSN_MOVW9_COMPACT
58  , SH4A_INSN_MOVW10_COMPACT, SH4A_INSN_MOVW11_COMPACT, SH4A_INSN_MOVA_COMPACT, SH4A_INSN_MOVCAL_COMPACT
59  , SH4A_INSN_MOVCOL_COMPACT, SH4A_INSN_MOVT_COMPACT, SH4A_INSN_MOVUAL_COMPACT, SH4A_INSN_MOVUAL2_COMPACT
60  , SH4A_INSN_MULL_COMPACT, SH4A_INSN_MULSW_COMPACT, SH4A_INSN_MULUW_COMPACT, SH4A_INSN_NEG_COMPACT
61  , SH4A_INSN_NEGC_COMPACT, SH4A_INSN_NOP_COMPACT, SH4A_INSN_NOT_COMPACT, SH4A_INSN_OCBI_COMPACT
62  , SH4A_INSN_OCBP_COMPACT, SH4A_INSN_OCBWB_COMPACT, SH4A_INSN_OR_COMPACT, SH4A_INSN_ORI_COMPACT
63  , SH4A_INSN_ORB_COMPACT, SH4A_INSN_PREF_COMPACT, SH4A_INSN_ROTCL_COMPACT, SH4A_INSN_ROTCR_COMPACT
64  , SH4A_INSN_ROTL_COMPACT, SH4A_INSN_ROTR_COMPACT, SH4A_INSN_RTS_COMPACT, SH4A_INSN_SETS_COMPACT
65  , SH4A_INSN_SETT_COMPACT, SH4A_INSN_SHAD_COMPACT, SH4A_INSN_SHAL_COMPACT, SH4A_INSN_SHAR_COMPACT
66  , SH4A_INSN_SHLD_COMPACT, SH4A_INSN_SHLL_COMPACT, SH4A_INSN_SHLL2_COMPACT, SH4A_INSN_SHLL8_COMPACT
67  , SH4A_INSN_SHLL16_COMPACT, SH4A_INSN_SHLR_COMPACT, SH4A_INSN_SHLR2_COMPACT, SH4A_INSN_SHLR8_COMPACT
68  , SH4A_INSN_SHLR16_COMPACT, SH4A_INSN_STC_GBR_COMPACT, SH4A_INSN_STC_VBR_COMPACT, SH4A_INSN_STCL_GBR_COMPACT
69  , SH4A_INSN_STCL_VBR_COMPACT, SH4A_INSN_STS_FPSCR_COMPACT, SH4A_INSN_STSL_FPSCR_COMPACT, SH4A_INSN_STS_FPUL_COMPACT
70  , SH4A_INSN_STSL_FPUL_COMPACT, SH4A_INSN_STS_MACH_COMPACT, SH4A_INSN_STSL_MACH_COMPACT, SH4A_INSN_STS_MACL_COMPACT
71  , SH4A_INSN_STSL_MACL_COMPACT, SH4A_INSN_STS_PR_COMPACT, SH4A_INSN_STSL_PR_COMPACT, SH4A_INSN_SUB_COMPACT
72  , SH4A_INSN_SUBC_COMPACT, SH4A_INSN_SUBV_COMPACT, SH4A_INSN_SWAPB_COMPACT, SH4A_INSN_SWAPW_COMPACT
73  , SH4A_INSN_TASB_COMPACT, SH4A_INSN_TRAPA_COMPACT, SH4A_INSN_TST_COMPACT, SH4A_INSN_TSTI_COMPACT
74  , SH4A_INSN_TSTB_COMPACT, SH4A_INSN_XOR_COMPACT, SH4A_INSN_XORI_COMPACT, SH4A_INSN_XORB_COMPACT
75  , SH4A_INSN_XTRCT_COMPACT
76 } SH4A_INSN_TYPE;
77
78
79 // Forward decls.
80 struct sh4a_cpu;
81 struct sh4a_scache;
82 typedef void (sh4a_sem_fn) (sh4a_cpu* cpu, sh4a_scache* sem, int tick, sh4a::write_stacks &buf);
83
84
85 // Instruction descriptor.
86
87 struct sh4a_idesc {
88
89   // scache engine executor for this insn
90   sh4a_sem_fn* execute;
91
92   const char* insn_name;
93   enum sh4a_insn_type sem_index;
94   sh_insn_attr attrs;
95
96   // idesc table: indexed by sem_index
97   static sh4a_idesc idesc_table[];
98
99   static sh4a_insn_type lookup_virtual (virtual_insn_type vit);
100 };
101
102 // Instruction argument buffer.
103
104 union sh4a_sem_fields {
105   struct { /* no operands */
106     int empty;
107   } fmt_empty;
108   struct { /*  */
109     IADDR i_disp12;
110   } sfmt_bra_compact;
111   struct { /*  */
112     IADDR i_disp8;
113   } sfmt_bf_compact;
114   struct { /*  */
115     SI f_imm8x2;
116     unsigned char out_r0;
117   } sfmt_movw9_compact;
118   struct { /*  */
119     SI f_imm8x2;
120     unsigned char in_r0;
121   } sfmt_movw4_compact;
122   struct { /*  */
123     SI f_imm8x4;
124     unsigned char out_r0;
125   } sfmt_movl9_compact;
126   struct { /*  */
127     SI f_imm8x4;
128     unsigned char in_r0;
129   } sfmt_movl4_compact;
130   struct { /*  */
131     SI f_vm;
132     SI f_vn;
133   } sfmt_fipr_compact;
134   struct { /*  */
135     SI f_imm8x2;
136     UINT f_rn;
137     unsigned char out_rn;
138   } sfmt_movw10_compact;
139   struct { /*  */
140     SI f_imm8x4;
141     UINT f_rn;
142     unsigned char out_rn;
143   } sfmt_movl10_compact;
144   struct { /*  */
145     UINT f_rn;
146     unsigned char in_fsdn;
147     unsigned char out_fpul;
148   } sfmt_ftrc_compact;
149   struct { /*  */
150     UINT f_rn;
151     unsigned char in_fpul;
152     unsigned char out_frn;
153   } sfmt_fsts_compact;
154   struct { /*  */
155     UINT f_rn;
156     unsigned char in_fpul;
157     unsigned char out_fsdn;
158   } sfmt_float_compact;
159   struct { /*  */
160     UINT f_rn;
161     unsigned char in_frn;
162     unsigned char out_fpul;
163   } sfmt_flds_compact;
164   struct { /*  */
165     UINT f_imm8;
166     unsigned char in_r0;
167     unsigned char out_r0;
168   } sfmt_andi_compact;
169   struct { /*  */
170     UINT f_rn;
171     unsigned char in_fpul;
172     unsigned char in_rn;
173     unsigned char out_rn;
174   } sfmt_stsl_fpul_compact;
175   struct { /*  */
176     UINT f_rn;
177     unsigned char in_rn;
178     unsigned char out_r0;
179     unsigned char out_rn;
180   } sfmt_movual2_compact;
181   struct { /*  */
182     SI f_imm4x2;
183     UINT f_rm;
184     unsigned char in_rm;
185     unsigned char out_r0;
186   } sfmt_movw11_compact;
187   struct { /*  */
188     SI f_imm4x2;
189     UINT f_rm;
190     unsigned char in_r0;
191     unsigned char in_rm;
192   } sfmt_movw5_compact;
193   struct { /*  */
194     UINT f_imm4;
195     UINT f_rm;
196     unsigned char in_rm;
197     unsigned char out_r0;
198   } sfmt_movb10_compact;
199   struct { /*  */
200     UINT f_imm4;
201     UINT f_rm;
202     unsigned char in_r0;
203     unsigned char in_rm;
204   } sfmt_movb5_compact;
205   struct { /*  */
206     UINT f_rn;
207     unsigned char in_rn;
208     unsigned char out_fpul;
209     unsigned char out_rn;
210   } sfmt_ldsl_fpul_compact;
211   struct { /*  */
212     UINT f_rm;
213     UINT f_rn;
214     unsigned char in_fmovm;
215     unsigned char out_fmovn;
216   } sfmt_fmov1_compact;
217   struct { /*  */
218     UINT f_imm8;
219     UINT f_rn;
220     unsigned char in_rn;
221     unsigned char out_rn;
222   } sfmt_addi_compact;
223   struct { /*  */
224     SI f_imm4x4;
225     UINT f_rm;
226     UINT f_rn;
227     unsigned char in_rm;
228     unsigned char out_rn;
229   } sfmt_movl11_compact;
230   struct { /*  */
231     SI f_imm4x4;
232     UINT f_rm;
233     UINT f_rn;
234     unsigned char in_rm;
235     unsigned char in_rn;
236   } sfmt_movl5_compact;
237   struct { /*  */
238     UINT f_rm;
239     UINT f_rn;
240     unsigned char in_r0;
241     unsigned char in_rm;
242     unsigned char out_rn;
243   } sfmt_movb8_compact;
244   struct { /*  */
245     UINT f_rm;
246     UINT f_rn;
247     unsigned char in_r0;
248     unsigned char in_rm;
249     unsigned char in_rn;
250   } sfmt_movb3_compact;
251   struct { /*  */
252     UINT f_rm;
253     UINT f_rn;
254     unsigned char in_fmovm;
255     unsigned char in_r0;
256     unsigned char in_rn;
257   } sfmt_fmov7_compact;
258   struct { /*  */
259     UINT f_rm;
260     UINT f_rn;
261     unsigned char in_fmovm;
262     unsigned char in_rn;
263     unsigned char out_rn;
264   } sfmt_fmov6_compact;
265   struct { /*  */
266     UINT f_rm;
267     UINT f_rn;
268     unsigned char in_r0;
269     unsigned char in_rm;
270     unsigned char out_fmovn;
271   } sfmt_fmov4_compact;
272   struct { /*  */
273     UINT f_rm;
274     UINT f_rn;
275     unsigned char in_rm;
276     unsigned char out_fmovn;
277     unsigned char out_rm;
278   } sfmt_fmov3_compact;
279   struct { /*  */
280     UINT f_rm;
281     UINT f_rn;
282     unsigned char in_fsdm;
283     unsigned char in_fsdn;
284     unsigned char out_fsdn;
285   } sfmt_fadd_compact;
286   struct { /*  */
287     UINT f_rm;
288     UINT f_rn;
289     unsigned char in_rm64;
290     unsigned char in_rn64;
291     unsigned char out_rn64;
292   } sfmt_and_compact;
293   struct { /*  */
294     UINT f_rm;
295     UINT f_rn;
296     unsigned char in_rm;
297     unsigned char in_rn;
298     unsigned char out_rm;
299     unsigned char out_rn;
300   } sfmt_macl_compact;
301   struct { /*  */
302     UINT f_rm;
303     UINT f_rn;
304     unsigned char in_fr0;
305     unsigned char in_frm;
306     unsigned char in_frn;
307     unsigned char out_frn;
308   } sfmt_fmac_compact;
309   // This one is for chain/cti-chain virtual insns.
310   struct {
311     // Number of insns in pbb.
312     unsigned insn_count;
313     // This is used by chain insns and by untaken conditional branches.
314     sh4a_scache* next;
315     sh4a_scache* branch_target;
316   } chain;
317   // This one is for `before' virtual insns.
318   struct {
319     // The cache entry of the real insn.
320     sh4a_scache* insn;
321   } before;
322 };
323
324 // Simulator instruction cache.
325
326 struct sh4a_scache {
327   // executor
328   union {
329     cgoto_label cgoto;
330     sh4a_sem_fn* fn;
331   } execute;
332
333   // PC of this instruction.
334   PCADDR addr;
335
336   // instruction class
337   sh4a_idesc* idesc;
338
339   // argument buffer
340   sh4a_sem_fields fields;
341
342
343   // writeback flags
344   // Only used if profiling or parallel execution support enabled during
345   // file generation.
346   unsigned long long written;
347
348
349   // decode given instruction
350   void decode (sh4a_cpu* current_cpu, PCADDR pc, sh4a_insn_word base_insn, sh4a_insn_word entire_insn);
351 };
352
353 } // end sh4a namespace
354
355 // Decls of each semantic fn.
356
357 using sh4a::sh4a_sem_fn;
358 extern sh4a_sem_fn sh4a_sem_x_invalid;
359 extern sh4a_sem_fn sh4a_sem_add_compact;
360 extern sh4a_sem_fn sh4a_sem_addi_compact;
361 extern sh4a_sem_fn sh4a_sem_addc_compact;
362 extern sh4a_sem_fn sh4a_sem_addv_compact;
363 extern sh4a_sem_fn sh4a_sem_and_compact;
364 extern sh4a_sem_fn sh4a_sem_andi_compact;
365 extern sh4a_sem_fn sh4a_sem_andb_compact;
366 extern sh4a_sem_fn sh4a_sem_bf_compact;
367 extern sh4a_sem_fn sh4a_sem_bfs_compact;
368 extern sh4a_sem_fn sh4a_sem_bra_compact;
369 extern sh4a_sem_fn sh4a_sem_braf_compact;
370 extern sh4a_sem_fn sh4a_sem_bsr_compact;
371 extern sh4a_sem_fn sh4a_sem_bsrf_compact;
372 extern sh4a_sem_fn sh4a_sem_bt_compact;
373 extern sh4a_sem_fn sh4a_sem_bts_compact;
374 extern sh4a_sem_fn sh4a_sem_clrmac_compact;
375 extern sh4a_sem_fn sh4a_sem_clrs_compact;
376 extern sh4a_sem_fn sh4a_sem_clrt_compact;
377 extern sh4a_sem_fn sh4a_sem_cmpeq_compact;
378 extern sh4a_sem_fn sh4a_sem_cmpeqi_compact;
379 extern sh4a_sem_fn sh4a_sem_cmpge_compact;
380 extern sh4a_sem_fn sh4a_sem_cmpgt_compact;
381 extern sh4a_sem_fn sh4a_sem_cmphi_compact;
382 extern sh4a_sem_fn sh4a_sem_cmphs_compact;
383 extern sh4a_sem_fn sh4a_sem_cmppl_compact;
384 extern sh4a_sem_fn sh4a_sem_cmppz_compact;
385 extern sh4a_sem_fn sh4a_sem_cmpstr_compact;
386 extern sh4a_sem_fn sh4a_sem_div0s_compact;
387 extern sh4a_sem_fn sh4a_sem_div0u_compact;
388 extern sh4a_sem_fn sh4a_sem_div1_compact;
389 extern sh4a_sem_fn sh4a_sem_dmulsl_compact;
390 extern sh4a_sem_fn sh4a_sem_dmulul_compact;
391 extern sh4a_sem_fn sh4a_sem_dt_compact;
392 extern sh4a_sem_fn sh4a_sem_extsb_compact;
393 extern sh4a_sem_fn sh4a_sem_extsw_compact;
394 extern sh4a_sem_fn sh4a_sem_extub_compact;
395 extern sh4a_sem_fn sh4a_sem_extuw_compact;
396 extern sh4a_sem_fn sh4a_sem_fabs_compact;
397 extern sh4a_sem_fn sh4a_sem_fadd_compact;
398 extern sh4a_sem_fn sh4a_sem_fcmpeq_compact;
399 extern sh4a_sem_fn sh4a_sem_fcmpgt_compact;
400 extern sh4a_sem_fn sh4a_sem_fdiv_compact;
401 extern sh4a_sem_fn sh4a_sem_fipr_compact;
402 extern sh4a_sem_fn sh4a_sem_flds_compact;
403 extern sh4a_sem_fn sh4a_sem_fldi0_compact;
404 extern sh4a_sem_fn sh4a_sem_fldi1_compact;
405 extern sh4a_sem_fn sh4a_sem_float_compact;
406 extern sh4a_sem_fn sh4a_sem_fmac_compact;
407 extern sh4a_sem_fn sh4a_sem_fmov1_compact;
408 extern sh4a_sem_fn sh4a_sem_fmov2_compact;
409 extern sh4a_sem_fn sh4a_sem_fmov3_compact;
410 extern sh4a_sem_fn sh4a_sem_fmov4_compact;
411 extern sh4a_sem_fn sh4a_sem_fmov5_compact;
412 extern sh4a_sem_fn sh4a_sem_fmov6_compact;
413 extern sh4a_sem_fn sh4a_sem_fmov7_compact;
414 extern sh4a_sem_fn sh4a_sem_fmul_compact;
415 extern sh4a_sem_fn sh4a_sem_fneg_compact;
416 extern sh4a_sem_fn sh4a_sem_frchg_compact;
417 extern sh4a_sem_fn sh4a_sem_fschg_compact;
418 extern sh4a_sem_fn sh4a_sem_fsqrt_compact;
419 extern sh4a_sem_fn sh4a_sem_fsts_compact;
420 extern sh4a_sem_fn sh4a_sem_fsub_compact;
421 extern sh4a_sem_fn sh4a_sem_ftrc_compact;
422 extern sh4a_sem_fn sh4a_sem_ftrv_compact;
423 extern sh4a_sem_fn sh4a_sem_jmp_compact;
424 extern sh4a_sem_fn sh4a_sem_jsr_compact;
425 extern sh4a_sem_fn sh4a_sem_ldc_gbr_compact;
426 extern sh4a_sem_fn sh4a_sem_ldc_vbr_compact;
427 extern sh4a_sem_fn sh4a_sem_ldc_sr_compact;
428 extern sh4a_sem_fn sh4a_sem_ldcl_gbr_compact;
429 extern sh4a_sem_fn sh4a_sem_ldcl_vbr_compact;
430 extern sh4a_sem_fn sh4a_sem_lds_fpscr_compact;
431 extern sh4a_sem_fn sh4a_sem_ldsl_fpscr_compact;
432 extern sh4a_sem_fn sh4a_sem_lds_fpul_compact;
433 extern sh4a_sem_fn sh4a_sem_ldsl_fpul_compact;
434 extern sh4a_sem_fn sh4a_sem_lds_mach_compact;
435 extern sh4a_sem_fn sh4a_sem_ldsl_mach_compact;
436 extern sh4a_sem_fn sh4a_sem_lds_macl_compact;
437 extern sh4a_sem_fn sh4a_sem_ldsl_macl_compact;
438 extern sh4a_sem_fn sh4a_sem_lds_pr_compact;
439 extern sh4a_sem_fn sh4a_sem_ldsl_pr_compact;
440 extern sh4a_sem_fn sh4a_sem_macl_compact;
441 extern sh4a_sem_fn sh4a_sem_macw_compact;
442 extern sh4a_sem_fn sh4a_sem_mov_compact;
443 extern sh4a_sem_fn sh4a_sem_movi_compact;
444 extern sh4a_sem_fn sh4a_sem_movb1_compact;
445 extern sh4a_sem_fn sh4a_sem_movb2_compact;
446 extern sh4a_sem_fn sh4a_sem_movb3_compact;
447 extern sh4a_sem_fn sh4a_sem_movb4_compact;
448 extern sh4a_sem_fn sh4a_sem_movb5_compact;
449 extern sh4a_sem_fn sh4a_sem_movb6_compact;
450 extern sh4a_sem_fn sh4a_sem_movb7_compact;
451 extern sh4a_sem_fn sh4a_sem_movb8_compact;
452 extern sh4a_sem_fn sh4a_sem_movb9_compact;
453 extern sh4a_sem_fn sh4a_sem_movb10_compact;
454 extern sh4a_sem_fn sh4a_sem_movl1_compact;
455 extern sh4a_sem_fn sh4a_sem_movl2_compact;
456 extern sh4a_sem_fn sh4a_sem_movl3_compact;
457 extern sh4a_sem_fn sh4a_sem_movl4_compact;
458 extern sh4a_sem_fn sh4a_sem_movl5_compact;
459 extern sh4a_sem_fn sh4a_sem_movl6_compact;
460 extern sh4a_sem_fn sh4a_sem_movl7_compact;
461 extern sh4a_sem_fn sh4a_sem_movl8_compact;
462 extern sh4a_sem_fn sh4a_sem_movl9_compact;
463 extern sh4a_sem_fn sh4a_sem_movl10_compact;
464 extern sh4a_sem_fn sh4a_sem_movl11_compact;
465 extern sh4a_sem_fn sh4a_sem_movw1_compact;
466 extern sh4a_sem_fn sh4a_sem_movw2_compact;
467 extern sh4a_sem_fn sh4a_sem_movw3_compact;
468 extern sh4a_sem_fn sh4a_sem_movw4_compact;
469 extern sh4a_sem_fn sh4a_sem_movw5_compact;
470 extern sh4a_sem_fn sh4a_sem_movw6_compact;
471 extern sh4a_sem_fn sh4a_sem_movw7_compact;
472 extern sh4a_sem_fn sh4a_sem_movw8_compact;
473 extern sh4a_sem_fn sh4a_sem_movw9_compact;
474 extern sh4a_sem_fn sh4a_sem_movw10_compact;
475 extern sh4a_sem_fn sh4a_sem_movw11_compact;
476 extern sh4a_sem_fn sh4a_sem_mova_compact;
477 extern sh4a_sem_fn sh4a_sem_movcal_compact;
478 extern sh4a_sem_fn sh4a_sem_movcol_compact;
479 extern sh4a_sem_fn sh4a_sem_movt_compact;
480 extern sh4a_sem_fn sh4a_sem_movual_compact;
481 extern sh4a_sem_fn sh4a_sem_movual2_compact;
482 extern sh4a_sem_fn sh4a_sem_mull_compact;
483 extern sh4a_sem_fn sh4a_sem_mulsw_compact;
484 extern sh4a_sem_fn sh4a_sem_muluw_compact;
485 extern sh4a_sem_fn sh4a_sem_neg_compact;
486 extern sh4a_sem_fn sh4a_sem_negc_compact;
487 extern sh4a_sem_fn sh4a_sem_nop_compact;
488 extern sh4a_sem_fn sh4a_sem_not_compact;
489 extern sh4a_sem_fn sh4a_sem_ocbi_compact;
490 extern sh4a_sem_fn sh4a_sem_ocbp_compact;
491 extern sh4a_sem_fn sh4a_sem_ocbwb_compact;
492 extern sh4a_sem_fn sh4a_sem_or_compact;
493 extern sh4a_sem_fn sh4a_sem_ori_compact;
494 extern sh4a_sem_fn sh4a_sem_orb_compact;
495 extern sh4a_sem_fn sh4a_sem_pref_compact;
496 extern sh4a_sem_fn sh4a_sem_rotcl_compact;
497 extern sh4a_sem_fn sh4a_sem_rotcr_compact;
498 extern sh4a_sem_fn sh4a_sem_rotl_compact;
499 extern sh4a_sem_fn sh4a_sem_rotr_compact;
500 extern sh4a_sem_fn sh4a_sem_rts_compact;
501 extern sh4a_sem_fn sh4a_sem_sets_compact;
502 extern sh4a_sem_fn sh4a_sem_sett_compact;
503 extern sh4a_sem_fn sh4a_sem_shad_compact;
504 extern sh4a_sem_fn sh4a_sem_shal_compact;
505 extern sh4a_sem_fn sh4a_sem_shar_compact;
506 extern sh4a_sem_fn sh4a_sem_shld_compact;
507 extern sh4a_sem_fn sh4a_sem_shll_compact;
508 extern sh4a_sem_fn sh4a_sem_shll2_compact;
509 extern sh4a_sem_fn sh4a_sem_shll8_compact;
510 extern sh4a_sem_fn sh4a_sem_shll16_compact;
511 extern sh4a_sem_fn sh4a_sem_shlr_compact;
512 extern sh4a_sem_fn sh4a_sem_shlr2_compact;
513 extern sh4a_sem_fn sh4a_sem_shlr8_compact;
514 extern sh4a_sem_fn sh4a_sem_shlr16_compact;
515 extern sh4a_sem_fn sh4a_sem_stc_gbr_compact;
516 extern sh4a_sem_fn sh4a_sem_stc_vbr_compact;
517 extern sh4a_sem_fn sh4a_sem_stcl_gbr_compact;
518 extern sh4a_sem_fn sh4a_sem_stcl_vbr_compact;
519 extern sh4a_sem_fn sh4a_sem_sts_fpscr_compact;
520 extern sh4a_sem_fn sh4a_sem_stsl_fpscr_compact;
521 extern sh4a_sem_fn sh4a_sem_sts_fpul_compact;
522 extern sh4a_sem_fn sh4a_sem_stsl_fpul_compact;
523 extern sh4a_sem_fn sh4a_sem_sts_mach_compact;
524 extern sh4a_sem_fn sh4a_sem_stsl_mach_compact;
525 extern sh4a_sem_fn sh4a_sem_sts_macl_compact;
526 extern sh4a_sem_fn sh4a_sem_stsl_macl_compact;
527 extern sh4a_sem_fn sh4a_sem_sts_pr_compact;
528 extern sh4a_sem_fn sh4a_sem_stsl_pr_compact;
529 extern sh4a_sem_fn sh4a_sem_sub_compact;
530 extern sh4a_sem_fn sh4a_sem_subc_compact;
531 extern sh4a_sem_fn sh4a_sem_subv_compact;
532 extern sh4a_sem_fn sh4a_sem_swapb_compact;
533 extern sh4a_sem_fn sh4a_sem_swapw_compact;
534 extern sh4a_sem_fn sh4a_sem_tasb_compact;
535 extern sh4a_sem_fn sh4a_sem_trapa_compact;
536 extern sh4a_sem_fn sh4a_sem_tst_compact;
537 extern sh4a_sem_fn sh4a_sem_tsti_compact;
538 extern sh4a_sem_fn sh4a_sem_tstb_compact;
539 extern sh4a_sem_fn sh4a_sem_xor_compact;
540 extern sh4a_sem_fn sh4a_sem_xori_compact;
541 extern sh4a_sem_fn sh4a_sem_xorb_compact;
542 extern sh4a_sem_fn sh4a_sem_xtrct_compact;
543
544 #endif /* SH4A_DECODE_H */