OSDN Git Service

Regenerate cgen files, update copyright year.
[pf3gnuchains/pf3gnuchains3x.git] / sid / component / cgen-cpu / sh / sh5-compact-decode.h
1 /* Decode header for sh5_compact.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright (C) 2000-2010 Red Hat, Inc.
6
7 This file is part of the Red Hat simulators.
8
9
10 */
11
12 #ifndef SH5_COMPACT_DECODE_H
13 #define SH5_COMPACT_DECODE_H
14
15 namespace sh5_compact {
16 // forward declaration of struct in -defs.h
17 struct write_stacks;
18 }
19
20 namespace sh5 {
21
22 using namespace cgen;
23 using namespace sh;
24
25 typedef UINT sh5_compact_insn_word;
26
27 /* Enum declaration for instructions in cpu family sh5_compact.  */
28 typedef enum sh5_compact_insn_type {
29   SH5_COMPACT_INSN_X_INVALID, SH5_COMPACT_INSN_ADD_COMPACT, SH5_COMPACT_INSN_ADDI_COMPACT, SH5_COMPACT_INSN_ADDC_COMPACT
30  , SH5_COMPACT_INSN_ADDV_COMPACT, SH5_COMPACT_INSN_AND_COMPACT, SH5_COMPACT_INSN_ANDI_COMPACT, SH5_COMPACT_INSN_ANDB_COMPACT
31  , SH5_COMPACT_INSN_BF_COMPACT, SH5_COMPACT_INSN_BFS_COMPACT, SH5_COMPACT_INSN_BRA_COMPACT, SH5_COMPACT_INSN_BRAF_COMPACT
32  , SH5_COMPACT_INSN_BRK_COMPACT, SH5_COMPACT_INSN_BSR_COMPACT, SH5_COMPACT_INSN_BSRF_COMPACT, SH5_COMPACT_INSN_BT_COMPACT
33  , SH5_COMPACT_INSN_BTS_COMPACT, SH5_COMPACT_INSN_CLRMAC_COMPACT, SH5_COMPACT_INSN_CLRS_COMPACT, SH5_COMPACT_INSN_CLRT_COMPACT
34  , SH5_COMPACT_INSN_CMPEQ_COMPACT, SH5_COMPACT_INSN_CMPEQI_COMPACT, SH5_COMPACT_INSN_CMPGE_COMPACT, SH5_COMPACT_INSN_CMPGT_COMPACT
35  , SH5_COMPACT_INSN_CMPHI_COMPACT, SH5_COMPACT_INSN_CMPHS_COMPACT, SH5_COMPACT_INSN_CMPPL_COMPACT, SH5_COMPACT_INSN_CMPPZ_COMPACT
36  , SH5_COMPACT_INSN_CMPSTR_COMPACT, SH5_COMPACT_INSN_DIV0S_COMPACT, SH5_COMPACT_INSN_DIV0U_COMPACT, SH5_COMPACT_INSN_DIV1_COMPACT
37  , SH5_COMPACT_INSN_DIVU_COMPACT, SH5_COMPACT_INSN_MULR_COMPACT, SH5_COMPACT_INSN_DMULSL_COMPACT, SH5_COMPACT_INSN_DMULUL_COMPACT
38  , SH5_COMPACT_INSN_DT_COMPACT, SH5_COMPACT_INSN_EXTSB_COMPACT, SH5_COMPACT_INSN_EXTSW_COMPACT, SH5_COMPACT_INSN_EXTUB_COMPACT
39  , SH5_COMPACT_INSN_EXTUW_COMPACT, SH5_COMPACT_INSN_FABS_COMPACT, SH5_COMPACT_INSN_FADD_COMPACT, SH5_COMPACT_INSN_FCMPEQ_COMPACT
40  , SH5_COMPACT_INSN_FCMPGT_COMPACT, SH5_COMPACT_INSN_FCNVDS_COMPACT, SH5_COMPACT_INSN_FCNVSD_COMPACT, SH5_COMPACT_INSN_FDIV_COMPACT
41  , SH5_COMPACT_INSN_FIPR_COMPACT, SH5_COMPACT_INSN_FLDS_COMPACT, SH5_COMPACT_INSN_FLDI0_COMPACT, SH5_COMPACT_INSN_FLDI1_COMPACT
42  , SH5_COMPACT_INSN_FLOAT_COMPACT, SH5_COMPACT_INSN_FMAC_COMPACT, SH5_COMPACT_INSN_FMOV1_COMPACT, SH5_COMPACT_INSN_FMOV2_COMPACT
43  , SH5_COMPACT_INSN_FMOV3_COMPACT, SH5_COMPACT_INSN_FMOV4_COMPACT, SH5_COMPACT_INSN_FMOV5_COMPACT, SH5_COMPACT_INSN_FMOV6_COMPACT
44  , SH5_COMPACT_INSN_FMOV7_COMPACT, SH5_COMPACT_INSN_FMOV8_COMPACT, SH5_COMPACT_INSN_FMOV9_COMPACT, SH5_COMPACT_INSN_FMUL_COMPACT
45  , SH5_COMPACT_INSN_FNEG_COMPACT, SH5_COMPACT_INSN_FRCHG_COMPACT, SH5_COMPACT_INSN_FSCHG_COMPACT, SH5_COMPACT_INSN_FSQRT_COMPACT
46  , SH5_COMPACT_INSN_FSTS_COMPACT, SH5_COMPACT_INSN_FSUB_COMPACT, SH5_COMPACT_INSN_FTRC_COMPACT, SH5_COMPACT_INSN_FTRV_COMPACT
47  , SH5_COMPACT_INSN_JMP_COMPACT, SH5_COMPACT_INSN_JSR_COMPACT, SH5_COMPACT_INSN_LDC_GBR_COMPACT, SH5_COMPACT_INSN_LDC_VBR_COMPACT
48  , SH5_COMPACT_INSN_LDC_SR_COMPACT, SH5_COMPACT_INSN_LDCL_GBR_COMPACT, SH5_COMPACT_INSN_LDCL_VBR_COMPACT, SH5_COMPACT_INSN_LDS_FPSCR_COMPACT
49  , SH5_COMPACT_INSN_LDSL_FPSCR_COMPACT, SH5_COMPACT_INSN_LDS_FPUL_COMPACT, SH5_COMPACT_INSN_LDSL_FPUL_COMPACT, SH5_COMPACT_INSN_LDS_MACH_COMPACT
50  , SH5_COMPACT_INSN_LDSL_MACH_COMPACT, SH5_COMPACT_INSN_LDS_MACL_COMPACT, SH5_COMPACT_INSN_LDSL_MACL_COMPACT, SH5_COMPACT_INSN_LDS_PR_COMPACT
51  , SH5_COMPACT_INSN_LDSL_PR_COMPACT, SH5_COMPACT_INSN_MACL_COMPACT, SH5_COMPACT_INSN_MACW_COMPACT, SH5_COMPACT_INSN_MOV_COMPACT
52  , SH5_COMPACT_INSN_MOVI_COMPACT, SH5_COMPACT_INSN_MOVI20_COMPACT, SH5_COMPACT_INSN_MOVB1_COMPACT, SH5_COMPACT_INSN_MOVB2_COMPACT
53  , SH5_COMPACT_INSN_MOVB3_COMPACT, SH5_COMPACT_INSN_MOVB4_COMPACT, SH5_COMPACT_INSN_MOVB5_COMPACT, SH5_COMPACT_INSN_MOVB6_COMPACT
54  , SH5_COMPACT_INSN_MOVB7_COMPACT, SH5_COMPACT_INSN_MOVB8_COMPACT, SH5_COMPACT_INSN_MOVB9_COMPACT, SH5_COMPACT_INSN_MOVB10_COMPACT
55  , SH5_COMPACT_INSN_MOVL1_COMPACT, SH5_COMPACT_INSN_MOVL2_COMPACT, SH5_COMPACT_INSN_MOVL3_COMPACT, SH5_COMPACT_INSN_MOVL4_COMPACT
56  , SH5_COMPACT_INSN_MOVL5_COMPACT, SH5_COMPACT_INSN_MOVL6_COMPACT, SH5_COMPACT_INSN_MOVL7_COMPACT, SH5_COMPACT_INSN_MOVL8_COMPACT
57  , SH5_COMPACT_INSN_MOVL9_COMPACT, SH5_COMPACT_INSN_MOVL10_COMPACT, SH5_COMPACT_INSN_MOVL11_COMPACT, SH5_COMPACT_INSN_MOVL12_COMPACT
58  , SH5_COMPACT_INSN_MOVL13_COMPACT, SH5_COMPACT_INSN_MOVW1_COMPACT, SH5_COMPACT_INSN_MOVW2_COMPACT, SH5_COMPACT_INSN_MOVW3_COMPACT
59  , SH5_COMPACT_INSN_MOVW4_COMPACT, SH5_COMPACT_INSN_MOVW5_COMPACT, SH5_COMPACT_INSN_MOVW6_COMPACT, SH5_COMPACT_INSN_MOVW7_COMPACT
60  , SH5_COMPACT_INSN_MOVW8_COMPACT, SH5_COMPACT_INSN_MOVW9_COMPACT, SH5_COMPACT_INSN_MOVW10_COMPACT, SH5_COMPACT_INSN_MOVW11_COMPACT
61  , SH5_COMPACT_INSN_MOVA_COMPACT, SH5_COMPACT_INSN_MOVCAL_COMPACT, SH5_COMPACT_INSN_MOVCOL_COMPACT, SH5_COMPACT_INSN_MOVT_COMPACT
62  , SH5_COMPACT_INSN_MOVUAL_COMPACT, SH5_COMPACT_INSN_MOVUAL2_COMPACT, SH5_COMPACT_INSN_MULL_COMPACT, SH5_COMPACT_INSN_MULSW_COMPACT
63  , SH5_COMPACT_INSN_MULUW_COMPACT, SH5_COMPACT_INSN_NEG_COMPACT, SH5_COMPACT_INSN_NEGC_COMPACT, SH5_COMPACT_INSN_NOP_COMPACT
64  , SH5_COMPACT_INSN_NOT_COMPACT, SH5_COMPACT_INSN_OCBI_COMPACT, SH5_COMPACT_INSN_OCBP_COMPACT, SH5_COMPACT_INSN_OCBWB_COMPACT
65  , SH5_COMPACT_INSN_OR_COMPACT, SH5_COMPACT_INSN_ORI_COMPACT, SH5_COMPACT_INSN_ORB_COMPACT, SH5_COMPACT_INSN_PREF_COMPACT
66  , SH5_COMPACT_INSN_ROTCL_COMPACT, SH5_COMPACT_INSN_ROTCR_COMPACT, SH5_COMPACT_INSN_ROTL_COMPACT, SH5_COMPACT_INSN_ROTR_COMPACT
67  , SH5_COMPACT_INSN_RTS_COMPACT, SH5_COMPACT_INSN_SETS_COMPACT, SH5_COMPACT_INSN_SETT_COMPACT, SH5_COMPACT_INSN_SHAD_COMPACT
68  , SH5_COMPACT_INSN_SHAL_COMPACT, SH5_COMPACT_INSN_SHAR_COMPACT, SH5_COMPACT_INSN_SHLD_COMPACT, SH5_COMPACT_INSN_SHLL_COMPACT
69  , SH5_COMPACT_INSN_SHLL2_COMPACT, SH5_COMPACT_INSN_SHLL8_COMPACT, SH5_COMPACT_INSN_SHLL16_COMPACT, SH5_COMPACT_INSN_SHLR_COMPACT
70  , SH5_COMPACT_INSN_SHLR2_COMPACT, SH5_COMPACT_INSN_SHLR8_COMPACT, SH5_COMPACT_INSN_SHLR16_COMPACT, SH5_COMPACT_INSN_STC_GBR_COMPACT
71  , SH5_COMPACT_INSN_STC_VBR_COMPACT, SH5_COMPACT_INSN_STCL_GBR_COMPACT, SH5_COMPACT_INSN_STCL_VBR_COMPACT, SH5_COMPACT_INSN_STS_FPSCR_COMPACT
72  , SH5_COMPACT_INSN_STSL_FPSCR_COMPACT, SH5_COMPACT_INSN_STS_FPUL_COMPACT, SH5_COMPACT_INSN_STSL_FPUL_COMPACT, SH5_COMPACT_INSN_STS_MACH_COMPACT
73  , SH5_COMPACT_INSN_STSL_MACH_COMPACT, SH5_COMPACT_INSN_STS_MACL_COMPACT, SH5_COMPACT_INSN_STSL_MACL_COMPACT, SH5_COMPACT_INSN_STS_PR_COMPACT
74  , SH5_COMPACT_INSN_STSL_PR_COMPACT, SH5_COMPACT_INSN_SUB_COMPACT, SH5_COMPACT_INSN_SUBC_COMPACT, SH5_COMPACT_INSN_SUBV_COMPACT
75  , SH5_COMPACT_INSN_SWAPB_COMPACT, SH5_COMPACT_INSN_SWAPW_COMPACT, SH5_COMPACT_INSN_TASB_COMPACT, SH5_COMPACT_INSN_TRAPA_COMPACT
76  , SH5_COMPACT_INSN_TST_COMPACT, SH5_COMPACT_INSN_TSTI_COMPACT, SH5_COMPACT_INSN_TSTB_COMPACT, SH5_COMPACT_INSN_XOR_COMPACT
77  , SH5_COMPACT_INSN_XORI_COMPACT, SH5_COMPACT_INSN_XORB_COMPACT, SH5_COMPACT_INSN_XTRCT_COMPACT
78 } SH5_COMPACT_INSN_TYPE;
79
80
81 // Forward decls.
82 struct sh5_cpu;
83 struct sh5_compact_scache;
84 typedef void (sh5_compact_sem_fn) (sh5_cpu* cpu, sh5_compact_scache* sem, int tick, sh5_compact::write_stacks &buf);
85
86
87 // Instruction descriptor.
88
89 struct sh5_compact_idesc {
90
91   // scache engine executor for this insn
92   sh5_compact_sem_fn* execute;
93
94   const char* insn_name;
95   enum sh5_compact_insn_type sem_index;
96   sh_insn_attr attrs;
97
98   // idesc table: indexed by sem_index
99   static sh5_compact_idesc idesc_table[];
100
101   static sh5_compact_insn_type lookup_virtual (virtual_insn_type vit);
102 };
103
104 // Instruction argument buffer.
105
106 union sh5_compact_sem_fields {
107   struct { /* no operands */
108     int empty;
109   } fmt_empty;
110   struct { /*  */
111     IADDR i_disp12;
112   } sfmt_bra_compact;
113   struct { /*  */
114     IADDR i_disp8;
115   } sfmt_bf_compact;
116   struct { /*  */
117     SI f_imm8x2;
118     unsigned char out_r0;
119   } sfmt_movw9_compact;
120   struct { /*  */
121     SI f_imm8x2;
122     unsigned char in_r0;
123   } sfmt_movw4_compact;
124   struct { /*  */
125     SI f_imm8x4;
126     unsigned char out_r0;
127   } sfmt_movl9_compact;
128   struct { /*  */
129     SI f_imm8x4;
130     unsigned char in_r0;
131   } sfmt_movl4_compact;
132   struct { /*  */
133     SI f_vm;
134     SI f_vn;
135   } sfmt_fipr_compact;
136   struct { /*  */
137     SI f_imm8x2;
138     UINT f_rn;
139     unsigned char out_rn;
140   } sfmt_movw10_compact;
141   struct { /*  */
142     SI f_imm8x4;
143     UINT f_rn;
144     unsigned char out_rn;
145   } sfmt_movl10_compact;
146   struct { /*  */
147     INT f_imm20;
148     UINT f_rn;
149     unsigned char out_rn;
150   } sfmt_movi20_compact;
151   struct { /*  */
152     UINT f_rn;
153     unsigned char in_fsdn;
154     unsigned char out_fpul;
155   } sfmt_ftrc_compact;
156   struct { /*  */
157     UINT f_rn;
158     unsigned char in_fpul;
159     unsigned char out_frn;
160   } sfmt_fsts_compact;
161   struct { /*  */
162     UINT f_rn;
163     unsigned char in_fpul;
164     unsigned char out_fsdn;
165   } sfmt_float_compact;
166   struct { /*  */
167     UINT f_rn;
168     unsigned char in_frn;
169     unsigned char out_fpul;
170   } sfmt_flds_compact;
171   struct { /*  */
172     SI f_dn;
173     unsigned char in_fpul;
174     unsigned char out_drn;
175   } sfmt_fcnvsd_compact;
176   struct { /*  */
177     SI f_dn;
178     unsigned char in_drn;
179     unsigned char out_fpul;
180   } sfmt_fcnvds_compact;
181   struct { /*  */
182     UINT f_imm8;
183     unsigned char in_r0;
184     unsigned char out_r0;
185   } sfmt_andi_compact;
186   struct { /*  */
187     UINT f_rn;
188     unsigned char in_fpul;
189     unsigned char in_rn;
190     unsigned char out_rn;
191   } sfmt_stsl_fpul_compact;
192   struct { /*  */
193     UINT f_rn;
194     unsigned char in_rn;
195     unsigned char out_r0;
196     unsigned char out_rn;
197   } sfmt_movual2_compact;
198   struct { /*  */
199     SI f_imm4x2;
200     UINT f_rm;
201     unsigned char in_rm;
202     unsigned char out_r0;
203   } sfmt_movw11_compact;
204   struct { /*  */
205     SI f_imm4x2;
206     UINT f_rm;
207     unsigned char in_r0;
208     unsigned char in_rm;
209   } sfmt_movw5_compact;
210   struct { /*  */
211     UINT f_imm4;
212     UINT f_rm;
213     unsigned char in_rm;
214     unsigned char out_r0;
215   } sfmt_movb10_compact;
216   struct { /*  */
217     UINT f_imm4;
218     UINT f_rm;
219     unsigned char in_r0;
220     unsigned char in_rm;
221   } sfmt_movb5_compact;
222   struct { /*  */
223     UINT f_rn;
224     unsigned char in_rn;
225     unsigned char out_fpul;
226     unsigned char out_rn;
227   } sfmt_ldsl_fpul_compact;
228   struct { /*  */
229     UINT f_rm;
230     UINT f_rn;
231     unsigned char in_fmovm;
232     unsigned char out_fmovn;
233   } sfmt_fmov1_compact;
234   struct { /*  */
235     UINT f_rn;
236     unsigned char in_r0;
237     unsigned char in_rn;
238     unsigned char out_rn;
239   } sfmt_divu_compact;
240   struct { /*  */
241     UINT f_imm8;
242     UINT f_rn;
243     unsigned char in_rn;
244     unsigned char out_rn;
245   } sfmt_addi_compact;
246   struct { /*  */
247     SI f_imm12x4;
248     UINT f_rm;
249     UINT f_rn;
250     unsigned char in_rm;
251     unsigned char in_rn;
252   } sfmt_movl13_compact;
253   struct { /*  */
254     SI f_imm12x4;
255     UINT f_rm;
256     UINT f_rn;
257     unsigned char in_rm;
258     unsigned char out_rn;
259   } sfmt_movl12_compact;
260   struct { /*  */
261     SI f_imm4x4;
262     UINT f_rm;
263     UINT f_rn;
264     unsigned char in_rm;
265     unsigned char out_rn;
266   } sfmt_movl11_compact;
267   struct { /*  */
268     SI f_imm4x4;
269     UINT f_rm;
270     UINT f_rn;
271     unsigned char in_rm;
272     unsigned char in_rn;
273   } sfmt_movl5_compact;
274   struct { /*  */
275     UINT f_rm;
276     UINT f_rn;
277     unsigned char in_r0;
278     unsigned char in_rm;
279     unsigned char out_rn;
280   } sfmt_movb8_compact;
281   struct { /*  */
282     UINT f_rm;
283     UINT f_rn;
284     unsigned char in_r0;
285     unsigned char in_rm;
286     unsigned char in_rn;
287   } sfmt_movb3_compact;
288   struct { /*  */
289     SI f_dm;
290     SI f_imm12x8;
291     UINT f_rn;
292     unsigned char in_drm;
293     unsigned char in_rn;
294   } sfmt_fmov9_compact;
295   struct { /*  */
296     SI f_dn;
297     SI f_imm12x8;
298     UINT f_rm;
299     unsigned char in_rm;
300     unsigned char out_drn;
301   } sfmt_fmov8_compact;
302   struct { /*  */
303     UINT f_rm;
304     UINT f_rn;
305     unsigned char in_fmovm;
306     unsigned char in_r0;
307     unsigned char in_rn;
308   } sfmt_fmov7_compact;
309   struct { /*  */
310     UINT f_rm;
311     UINT f_rn;
312     unsigned char in_fmovm;
313     unsigned char in_rn;
314     unsigned char out_rn;
315   } sfmt_fmov6_compact;
316   struct { /*  */
317     UINT f_rm;
318     UINT f_rn;
319     unsigned char in_r0;
320     unsigned char in_rm;
321     unsigned char out_fmovn;
322   } sfmt_fmov4_compact;
323   struct { /*  */
324     UINT f_rm;
325     UINT f_rn;
326     unsigned char in_rm;
327     unsigned char out_fmovn;
328     unsigned char out_rm;
329   } sfmt_fmov3_compact;
330   struct { /*  */
331     UINT f_rm;
332     UINT f_rn;
333     unsigned char in_fsdm;
334     unsigned char in_fsdn;
335     unsigned char out_fsdn;
336   } sfmt_fadd_compact;
337   struct { /*  */
338     UINT f_rm;
339     UINT f_rn;
340     unsigned char in_rm64;
341     unsigned char in_rn64;
342     unsigned char out_rn64;
343   } sfmt_and_compact;
344   struct { /*  */
345     UINT f_rm;
346     UINT f_rn;
347     unsigned char in_rm;
348     unsigned char in_rn;
349     unsigned char out_rm;
350     unsigned char out_rn;
351   } sfmt_macl_compact;
352   struct { /*  */
353     UINT f_rm;
354     UINT f_rn;
355     unsigned char in_fr0;
356     unsigned char in_frm;
357     unsigned char in_frn;
358     unsigned char out_frn;
359   } sfmt_fmac_compact;
360   // This one is for chain/cti-chain virtual insns.
361   struct {
362     // Number of insns in pbb.
363     unsigned insn_count;
364     // This is used by chain insns and by untaken conditional branches.
365     sh5_compact_scache* next;
366     sh5_compact_scache* branch_target;
367   } chain;
368   // This one is for `before' virtual insns.
369   struct {
370     // The cache entry of the real insn.
371     sh5_compact_scache* insn;
372   } before;
373 };
374
375 // Simulator instruction cache.
376
377 struct sh5_compact_scache {
378   // executor
379   union {
380     cgoto_label cgoto;
381     sh5_compact_sem_fn* fn;
382   } execute;
383
384   // PC of this instruction.
385   PCADDR addr;
386
387   // instruction class
388   sh5_compact_idesc* idesc;
389
390   // argument buffer
391   sh5_compact_sem_fields fields;
392
393
394   // writeback flags
395   // Only used if profiling or parallel execution support enabled during
396   // file generation.
397   unsigned long long written;
398
399
400   // decode given instruction
401   void decode (sh5_cpu* current_cpu, PCADDR pc, sh5_compact_insn_word base_insn, sh5_compact_insn_word entire_insn);
402 };
403
404 } // end sh5 namespace
405
406 // Decls of each semantic fn.
407
408 using sh5::sh5_compact_sem_fn;
409 extern sh5_compact_sem_fn sh5_compact_sem_x_invalid;
410 extern sh5_compact_sem_fn sh5_compact_sem_add_compact;
411 extern sh5_compact_sem_fn sh5_compact_sem_addi_compact;
412 extern sh5_compact_sem_fn sh5_compact_sem_addc_compact;
413 extern sh5_compact_sem_fn sh5_compact_sem_addv_compact;
414 extern sh5_compact_sem_fn sh5_compact_sem_and_compact;
415 extern sh5_compact_sem_fn sh5_compact_sem_andi_compact;
416 extern sh5_compact_sem_fn sh5_compact_sem_andb_compact;
417 extern sh5_compact_sem_fn sh5_compact_sem_bf_compact;
418 extern sh5_compact_sem_fn sh5_compact_sem_bfs_compact;
419 extern sh5_compact_sem_fn sh5_compact_sem_bra_compact;
420 extern sh5_compact_sem_fn sh5_compact_sem_braf_compact;
421 extern sh5_compact_sem_fn sh5_compact_sem_brk_compact;
422 extern sh5_compact_sem_fn sh5_compact_sem_bsr_compact;
423 extern sh5_compact_sem_fn sh5_compact_sem_bsrf_compact;
424 extern sh5_compact_sem_fn sh5_compact_sem_bt_compact;
425 extern sh5_compact_sem_fn sh5_compact_sem_bts_compact;
426 extern sh5_compact_sem_fn sh5_compact_sem_clrmac_compact;
427 extern sh5_compact_sem_fn sh5_compact_sem_clrs_compact;
428 extern sh5_compact_sem_fn sh5_compact_sem_clrt_compact;
429 extern sh5_compact_sem_fn sh5_compact_sem_cmpeq_compact;
430 extern sh5_compact_sem_fn sh5_compact_sem_cmpeqi_compact;
431 extern sh5_compact_sem_fn sh5_compact_sem_cmpge_compact;
432 extern sh5_compact_sem_fn sh5_compact_sem_cmpgt_compact;
433 extern sh5_compact_sem_fn sh5_compact_sem_cmphi_compact;
434 extern sh5_compact_sem_fn sh5_compact_sem_cmphs_compact;
435 extern sh5_compact_sem_fn sh5_compact_sem_cmppl_compact;
436 extern sh5_compact_sem_fn sh5_compact_sem_cmppz_compact;
437 extern sh5_compact_sem_fn sh5_compact_sem_cmpstr_compact;
438 extern sh5_compact_sem_fn sh5_compact_sem_div0s_compact;
439 extern sh5_compact_sem_fn sh5_compact_sem_div0u_compact;
440 extern sh5_compact_sem_fn sh5_compact_sem_div1_compact;
441 extern sh5_compact_sem_fn sh5_compact_sem_divu_compact;
442 extern sh5_compact_sem_fn sh5_compact_sem_mulr_compact;
443 extern sh5_compact_sem_fn sh5_compact_sem_dmulsl_compact;
444 extern sh5_compact_sem_fn sh5_compact_sem_dmulul_compact;
445 extern sh5_compact_sem_fn sh5_compact_sem_dt_compact;
446 extern sh5_compact_sem_fn sh5_compact_sem_extsb_compact;
447 extern sh5_compact_sem_fn sh5_compact_sem_extsw_compact;
448 extern sh5_compact_sem_fn sh5_compact_sem_extub_compact;
449 extern sh5_compact_sem_fn sh5_compact_sem_extuw_compact;
450 extern sh5_compact_sem_fn sh5_compact_sem_fabs_compact;
451 extern sh5_compact_sem_fn sh5_compact_sem_fadd_compact;
452 extern sh5_compact_sem_fn sh5_compact_sem_fcmpeq_compact;
453 extern sh5_compact_sem_fn sh5_compact_sem_fcmpgt_compact;
454 extern sh5_compact_sem_fn sh5_compact_sem_fcnvds_compact;
455 extern sh5_compact_sem_fn sh5_compact_sem_fcnvsd_compact;
456 extern sh5_compact_sem_fn sh5_compact_sem_fdiv_compact;
457 extern sh5_compact_sem_fn sh5_compact_sem_fipr_compact;
458 extern sh5_compact_sem_fn sh5_compact_sem_flds_compact;
459 extern sh5_compact_sem_fn sh5_compact_sem_fldi0_compact;
460 extern sh5_compact_sem_fn sh5_compact_sem_fldi1_compact;
461 extern sh5_compact_sem_fn sh5_compact_sem_float_compact;
462 extern sh5_compact_sem_fn sh5_compact_sem_fmac_compact;
463 extern sh5_compact_sem_fn sh5_compact_sem_fmov1_compact;
464 extern sh5_compact_sem_fn sh5_compact_sem_fmov2_compact;
465 extern sh5_compact_sem_fn sh5_compact_sem_fmov3_compact;
466 extern sh5_compact_sem_fn sh5_compact_sem_fmov4_compact;
467 extern sh5_compact_sem_fn sh5_compact_sem_fmov5_compact;
468 extern sh5_compact_sem_fn sh5_compact_sem_fmov6_compact;
469 extern sh5_compact_sem_fn sh5_compact_sem_fmov7_compact;
470 extern sh5_compact_sem_fn sh5_compact_sem_fmov8_compact;
471 extern sh5_compact_sem_fn sh5_compact_sem_fmov9_compact;
472 extern sh5_compact_sem_fn sh5_compact_sem_fmul_compact;
473 extern sh5_compact_sem_fn sh5_compact_sem_fneg_compact;
474 extern sh5_compact_sem_fn sh5_compact_sem_frchg_compact;
475 extern sh5_compact_sem_fn sh5_compact_sem_fschg_compact;
476 extern sh5_compact_sem_fn sh5_compact_sem_fsqrt_compact;
477 extern sh5_compact_sem_fn sh5_compact_sem_fsts_compact;
478 extern sh5_compact_sem_fn sh5_compact_sem_fsub_compact;
479 extern sh5_compact_sem_fn sh5_compact_sem_ftrc_compact;
480 extern sh5_compact_sem_fn sh5_compact_sem_ftrv_compact;
481 extern sh5_compact_sem_fn sh5_compact_sem_jmp_compact;
482 extern sh5_compact_sem_fn sh5_compact_sem_jsr_compact;
483 extern sh5_compact_sem_fn sh5_compact_sem_ldc_gbr_compact;
484 extern sh5_compact_sem_fn sh5_compact_sem_ldc_vbr_compact;
485 extern sh5_compact_sem_fn sh5_compact_sem_ldc_sr_compact;
486 extern sh5_compact_sem_fn sh5_compact_sem_ldcl_gbr_compact;
487 extern sh5_compact_sem_fn sh5_compact_sem_ldcl_vbr_compact;
488 extern sh5_compact_sem_fn sh5_compact_sem_lds_fpscr_compact;
489 extern sh5_compact_sem_fn sh5_compact_sem_ldsl_fpscr_compact;
490 extern sh5_compact_sem_fn sh5_compact_sem_lds_fpul_compact;
491 extern sh5_compact_sem_fn sh5_compact_sem_ldsl_fpul_compact;
492 extern sh5_compact_sem_fn sh5_compact_sem_lds_mach_compact;
493 extern sh5_compact_sem_fn sh5_compact_sem_ldsl_mach_compact;
494 extern sh5_compact_sem_fn sh5_compact_sem_lds_macl_compact;
495 extern sh5_compact_sem_fn sh5_compact_sem_ldsl_macl_compact;
496 extern sh5_compact_sem_fn sh5_compact_sem_lds_pr_compact;
497 extern sh5_compact_sem_fn sh5_compact_sem_ldsl_pr_compact;
498 extern sh5_compact_sem_fn sh5_compact_sem_macl_compact;
499 extern sh5_compact_sem_fn sh5_compact_sem_macw_compact;
500 extern sh5_compact_sem_fn sh5_compact_sem_mov_compact;
501 extern sh5_compact_sem_fn sh5_compact_sem_movi_compact;
502 extern sh5_compact_sem_fn sh5_compact_sem_movi20_compact;
503 extern sh5_compact_sem_fn sh5_compact_sem_movb1_compact;
504 extern sh5_compact_sem_fn sh5_compact_sem_movb2_compact;
505 extern sh5_compact_sem_fn sh5_compact_sem_movb3_compact;
506 extern sh5_compact_sem_fn sh5_compact_sem_movb4_compact;
507 extern sh5_compact_sem_fn sh5_compact_sem_movb5_compact;
508 extern sh5_compact_sem_fn sh5_compact_sem_movb6_compact;
509 extern sh5_compact_sem_fn sh5_compact_sem_movb7_compact;
510 extern sh5_compact_sem_fn sh5_compact_sem_movb8_compact;
511 extern sh5_compact_sem_fn sh5_compact_sem_movb9_compact;
512 extern sh5_compact_sem_fn sh5_compact_sem_movb10_compact;
513 extern sh5_compact_sem_fn sh5_compact_sem_movl1_compact;
514 extern sh5_compact_sem_fn sh5_compact_sem_movl2_compact;
515 extern sh5_compact_sem_fn sh5_compact_sem_movl3_compact;
516 extern sh5_compact_sem_fn sh5_compact_sem_movl4_compact;
517 extern sh5_compact_sem_fn sh5_compact_sem_movl5_compact;
518 extern sh5_compact_sem_fn sh5_compact_sem_movl6_compact;
519 extern sh5_compact_sem_fn sh5_compact_sem_movl7_compact;
520 extern sh5_compact_sem_fn sh5_compact_sem_movl8_compact;
521 extern sh5_compact_sem_fn sh5_compact_sem_movl9_compact;
522 extern sh5_compact_sem_fn sh5_compact_sem_movl10_compact;
523 extern sh5_compact_sem_fn sh5_compact_sem_movl11_compact;
524 extern sh5_compact_sem_fn sh5_compact_sem_movl12_compact;
525 extern sh5_compact_sem_fn sh5_compact_sem_movl13_compact;
526 extern sh5_compact_sem_fn sh5_compact_sem_movw1_compact;
527 extern sh5_compact_sem_fn sh5_compact_sem_movw2_compact;
528 extern sh5_compact_sem_fn sh5_compact_sem_movw3_compact;
529 extern sh5_compact_sem_fn sh5_compact_sem_movw4_compact;
530 extern sh5_compact_sem_fn sh5_compact_sem_movw5_compact;
531 extern sh5_compact_sem_fn sh5_compact_sem_movw6_compact;
532 extern sh5_compact_sem_fn sh5_compact_sem_movw7_compact;
533 extern sh5_compact_sem_fn sh5_compact_sem_movw8_compact;
534 extern sh5_compact_sem_fn sh5_compact_sem_movw9_compact;
535 extern sh5_compact_sem_fn sh5_compact_sem_movw10_compact;
536 extern sh5_compact_sem_fn sh5_compact_sem_movw11_compact;
537 extern sh5_compact_sem_fn sh5_compact_sem_mova_compact;
538 extern sh5_compact_sem_fn sh5_compact_sem_movcal_compact;
539 extern sh5_compact_sem_fn sh5_compact_sem_movcol_compact;
540 extern sh5_compact_sem_fn sh5_compact_sem_movt_compact;
541 extern sh5_compact_sem_fn sh5_compact_sem_movual_compact;
542 extern sh5_compact_sem_fn sh5_compact_sem_movual2_compact;
543 extern sh5_compact_sem_fn sh5_compact_sem_mull_compact;
544 extern sh5_compact_sem_fn sh5_compact_sem_mulsw_compact;
545 extern sh5_compact_sem_fn sh5_compact_sem_muluw_compact;
546 extern sh5_compact_sem_fn sh5_compact_sem_neg_compact;
547 extern sh5_compact_sem_fn sh5_compact_sem_negc_compact;
548 extern sh5_compact_sem_fn sh5_compact_sem_nop_compact;
549 extern sh5_compact_sem_fn sh5_compact_sem_not_compact;
550 extern sh5_compact_sem_fn sh5_compact_sem_ocbi_compact;
551 extern sh5_compact_sem_fn sh5_compact_sem_ocbp_compact;
552 extern sh5_compact_sem_fn sh5_compact_sem_ocbwb_compact;
553 extern sh5_compact_sem_fn sh5_compact_sem_or_compact;
554 extern sh5_compact_sem_fn sh5_compact_sem_ori_compact;
555 extern sh5_compact_sem_fn sh5_compact_sem_orb_compact;
556 extern sh5_compact_sem_fn sh5_compact_sem_pref_compact;
557 extern sh5_compact_sem_fn sh5_compact_sem_rotcl_compact;
558 extern sh5_compact_sem_fn sh5_compact_sem_rotcr_compact;
559 extern sh5_compact_sem_fn sh5_compact_sem_rotl_compact;
560 extern sh5_compact_sem_fn sh5_compact_sem_rotr_compact;
561 extern sh5_compact_sem_fn sh5_compact_sem_rts_compact;
562 extern sh5_compact_sem_fn sh5_compact_sem_sets_compact;
563 extern sh5_compact_sem_fn sh5_compact_sem_sett_compact;
564 extern sh5_compact_sem_fn sh5_compact_sem_shad_compact;
565 extern sh5_compact_sem_fn sh5_compact_sem_shal_compact;
566 extern sh5_compact_sem_fn sh5_compact_sem_shar_compact;
567 extern sh5_compact_sem_fn sh5_compact_sem_shld_compact;
568 extern sh5_compact_sem_fn sh5_compact_sem_shll_compact;
569 extern sh5_compact_sem_fn sh5_compact_sem_shll2_compact;
570 extern sh5_compact_sem_fn sh5_compact_sem_shll8_compact;
571 extern sh5_compact_sem_fn sh5_compact_sem_shll16_compact;
572 extern sh5_compact_sem_fn sh5_compact_sem_shlr_compact;
573 extern sh5_compact_sem_fn sh5_compact_sem_shlr2_compact;
574 extern sh5_compact_sem_fn sh5_compact_sem_shlr8_compact;
575 extern sh5_compact_sem_fn sh5_compact_sem_shlr16_compact;
576 extern sh5_compact_sem_fn sh5_compact_sem_stc_gbr_compact;
577 extern sh5_compact_sem_fn sh5_compact_sem_stc_vbr_compact;
578 extern sh5_compact_sem_fn sh5_compact_sem_stcl_gbr_compact;
579 extern sh5_compact_sem_fn sh5_compact_sem_stcl_vbr_compact;
580 extern sh5_compact_sem_fn sh5_compact_sem_sts_fpscr_compact;
581 extern sh5_compact_sem_fn sh5_compact_sem_stsl_fpscr_compact;
582 extern sh5_compact_sem_fn sh5_compact_sem_sts_fpul_compact;
583 extern sh5_compact_sem_fn sh5_compact_sem_stsl_fpul_compact;
584 extern sh5_compact_sem_fn sh5_compact_sem_sts_mach_compact;
585 extern sh5_compact_sem_fn sh5_compact_sem_stsl_mach_compact;
586 extern sh5_compact_sem_fn sh5_compact_sem_sts_macl_compact;
587 extern sh5_compact_sem_fn sh5_compact_sem_stsl_macl_compact;
588 extern sh5_compact_sem_fn sh5_compact_sem_sts_pr_compact;
589 extern sh5_compact_sem_fn sh5_compact_sem_stsl_pr_compact;
590 extern sh5_compact_sem_fn sh5_compact_sem_sub_compact;
591 extern sh5_compact_sem_fn sh5_compact_sem_subc_compact;
592 extern sh5_compact_sem_fn sh5_compact_sem_subv_compact;
593 extern sh5_compact_sem_fn sh5_compact_sem_swapb_compact;
594 extern sh5_compact_sem_fn sh5_compact_sem_swapw_compact;
595 extern sh5_compact_sem_fn sh5_compact_sem_tasb_compact;
596 extern sh5_compact_sem_fn sh5_compact_sem_trapa_compact;
597 extern sh5_compact_sem_fn sh5_compact_sem_tst_compact;
598 extern sh5_compact_sem_fn sh5_compact_sem_tsti_compact;
599 extern sh5_compact_sem_fn sh5_compact_sem_tstb_compact;
600 extern sh5_compact_sem_fn sh5_compact_sem_xor_compact;
601 extern sh5_compact_sem_fn sh5_compact_sem_xori_compact;
602 extern sh5_compact_sem_fn sh5_compact_sem_xorb_compact;
603 extern sh5_compact_sem_fn sh5_compact_sem_xtrct_compact;
604
605 #endif /* SH5_COMPACT_DECODE_H */