OSDN Git Service

Regenerate cgen files, update copyright year.
[pf3gnuchains/pf3gnuchains3x.git] / sid / component / cgen-cpu / sh / sh5-media-decode.h
1 /* Decode header for sh5_media.
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_MEDIA_DECODE_H
13 #define SH5_MEDIA_DECODE_H
14
15 namespace sh5_media {
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_media_insn_word;
26
27 /* Enum declaration for instructions in cpu family sh5_media.  */
28 typedef enum sh5_media_insn_type {
29   SH5_MEDIA_INSN_X_INVALID, SH5_MEDIA_INSN_ADD, SH5_MEDIA_INSN_ADDL, SH5_MEDIA_INSN_ADDI
30  , SH5_MEDIA_INSN_ADDIL, SH5_MEDIA_INSN_ADDZL, SH5_MEDIA_INSN_ALLOCO, SH5_MEDIA_INSN_AND
31  , SH5_MEDIA_INSN_ANDC, SH5_MEDIA_INSN_ANDI, SH5_MEDIA_INSN_BEQ, SH5_MEDIA_INSN_BEQI
32  , SH5_MEDIA_INSN_BGE, SH5_MEDIA_INSN_BGEU, SH5_MEDIA_INSN_BGT, SH5_MEDIA_INSN_BGTU
33  , SH5_MEDIA_INSN_BLINK, SH5_MEDIA_INSN_BNE, SH5_MEDIA_INSN_BNEI, SH5_MEDIA_INSN_BRK
34  , SH5_MEDIA_INSN_BYTEREV, SH5_MEDIA_INSN_CMPEQ, SH5_MEDIA_INSN_CMPGT, SH5_MEDIA_INSN_CMPGTU
35  , SH5_MEDIA_INSN_CMVEQ, SH5_MEDIA_INSN_CMVNE, SH5_MEDIA_INSN_FABSD, SH5_MEDIA_INSN_FABSS
36  , SH5_MEDIA_INSN_FADDD, SH5_MEDIA_INSN_FADDS, SH5_MEDIA_INSN_FCMPEQD, SH5_MEDIA_INSN_FCMPEQS
37  , SH5_MEDIA_INSN_FCMPGED, SH5_MEDIA_INSN_FCMPGES, SH5_MEDIA_INSN_FCMPGTD, SH5_MEDIA_INSN_FCMPGTS
38  , SH5_MEDIA_INSN_FCMPUND, SH5_MEDIA_INSN_FCMPUNS, SH5_MEDIA_INSN_FCNVDS, SH5_MEDIA_INSN_FCNVSD
39  , SH5_MEDIA_INSN_FDIVD, SH5_MEDIA_INSN_FDIVS, SH5_MEDIA_INSN_FGETSCR, SH5_MEDIA_INSN_FIPRS
40  , SH5_MEDIA_INSN_FLDD, SH5_MEDIA_INSN_FLDP, SH5_MEDIA_INSN_FLDS, SH5_MEDIA_INSN_FLDXD
41  , SH5_MEDIA_INSN_FLDXP, SH5_MEDIA_INSN_FLDXS, SH5_MEDIA_INSN_FLOATLD, SH5_MEDIA_INSN_FLOATLS
42  , SH5_MEDIA_INSN_FLOATQD, SH5_MEDIA_INSN_FLOATQS, SH5_MEDIA_INSN_FMACS, SH5_MEDIA_INSN_FMOVD
43  , SH5_MEDIA_INSN_FMOVDQ, SH5_MEDIA_INSN_FMOVLS, SH5_MEDIA_INSN_FMOVQD, SH5_MEDIA_INSN_FMOVS
44  , SH5_MEDIA_INSN_FMOVSL, SH5_MEDIA_INSN_FMULD, SH5_MEDIA_INSN_FMULS, SH5_MEDIA_INSN_FNEGD
45  , SH5_MEDIA_INSN_FNEGS, SH5_MEDIA_INSN_FPUTSCR, SH5_MEDIA_INSN_FSQRTD, SH5_MEDIA_INSN_FSQRTS
46  , SH5_MEDIA_INSN_FSTD, SH5_MEDIA_INSN_FSTP, SH5_MEDIA_INSN_FSTS, SH5_MEDIA_INSN_FSTXD
47  , SH5_MEDIA_INSN_FSTXP, SH5_MEDIA_INSN_FSTXS, SH5_MEDIA_INSN_FSUBD, SH5_MEDIA_INSN_FSUBS
48  , SH5_MEDIA_INSN_FTRCDL, SH5_MEDIA_INSN_FTRCSL, SH5_MEDIA_INSN_FTRCDQ, SH5_MEDIA_INSN_FTRCSQ
49  , SH5_MEDIA_INSN_FTRVS, SH5_MEDIA_INSN_GETCFG, SH5_MEDIA_INSN_GETCON, SH5_MEDIA_INSN_GETTR
50  , SH5_MEDIA_INSN_ICBI, SH5_MEDIA_INSN_LDB, SH5_MEDIA_INSN_LDL, SH5_MEDIA_INSN_LDQ
51  , SH5_MEDIA_INSN_LDUB, SH5_MEDIA_INSN_LDUW, SH5_MEDIA_INSN_LDW, SH5_MEDIA_INSN_LDHIL
52  , SH5_MEDIA_INSN_LDHIQ, SH5_MEDIA_INSN_LDLOL, SH5_MEDIA_INSN_LDLOQ, SH5_MEDIA_INSN_LDXB
53  , SH5_MEDIA_INSN_LDXL, SH5_MEDIA_INSN_LDXQ, SH5_MEDIA_INSN_LDXUB, SH5_MEDIA_INSN_LDXUW
54  , SH5_MEDIA_INSN_LDXW, SH5_MEDIA_INSN_MABSL, SH5_MEDIA_INSN_MABSW, SH5_MEDIA_INSN_MADDL
55  , SH5_MEDIA_INSN_MADDW, SH5_MEDIA_INSN_MADDSL, SH5_MEDIA_INSN_MADDSUB, SH5_MEDIA_INSN_MADDSW
56  , SH5_MEDIA_INSN_MCMPEQB, SH5_MEDIA_INSN_MCMPEQL, SH5_MEDIA_INSN_MCMPEQW, SH5_MEDIA_INSN_MCMPGTL
57  , SH5_MEDIA_INSN_MCMPGTUB, SH5_MEDIA_INSN_MCMPGTW, SH5_MEDIA_INSN_MCMV, SH5_MEDIA_INSN_MCNVSLW
58  , SH5_MEDIA_INSN_MCNVSWB, SH5_MEDIA_INSN_MCNVSWUB, SH5_MEDIA_INSN_MEXTR1, SH5_MEDIA_INSN_MEXTR2
59  , SH5_MEDIA_INSN_MEXTR3, SH5_MEDIA_INSN_MEXTR4, SH5_MEDIA_INSN_MEXTR5, SH5_MEDIA_INSN_MEXTR6
60  , SH5_MEDIA_INSN_MEXTR7, SH5_MEDIA_INSN_MMACFXWL, SH5_MEDIA_INSN_MMACNFX_WL, SH5_MEDIA_INSN_MMULL
61  , SH5_MEDIA_INSN_MMULW, SH5_MEDIA_INSN_MMULFXL, SH5_MEDIA_INSN_MMULFXW, SH5_MEDIA_INSN_MMULFXRPW
62  , SH5_MEDIA_INSN_MMULHIWL, SH5_MEDIA_INSN_MMULLOWL, SH5_MEDIA_INSN_MMULSUMWQ, SH5_MEDIA_INSN_MOVI
63  , SH5_MEDIA_INSN_MPERMW, SH5_MEDIA_INSN_MSADUBQ, SH5_MEDIA_INSN_MSHALDSL, SH5_MEDIA_INSN_MSHALDSW
64  , SH5_MEDIA_INSN_MSHARDL, SH5_MEDIA_INSN_MSHARDW, SH5_MEDIA_INSN_MSHARDSQ, SH5_MEDIA_INSN_MSHFHIB
65  , SH5_MEDIA_INSN_MSHFHIL, SH5_MEDIA_INSN_MSHFHIW, SH5_MEDIA_INSN_MSHFLOB, SH5_MEDIA_INSN_MSHFLOL
66  , SH5_MEDIA_INSN_MSHFLOW, SH5_MEDIA_INSN_MSHLLDL, SH5_MEDIA_INSN_MSHLLDW, SH5_MEDIA_INSN_MSHLRDL
67  , SH5_MEDIA_INSN_MSHLRDW, SH5_MEDIA_INSN_MSUBL, SH5_MEDIA_INSN_MSUBW, SH5_MEDIA_INSN_MSUBSL
68  , SH5_MEDIA_INSN_MSUBSUB, SH5_MEDIA_INSN_MSUBSW, SH5_MEDIA_INSN_MULSL, SH5_MEDIA_INSN_MULUL
69  , SH5_MEDIA_INSN_NOP, SH5_MEDIA_INSN_NSB, SH5_MEDIA_INSN_OCBI, SH5_MEDIA_INSN_OCBP
70  , SH5_MEDIA_INSN_OCBWB, SH5_MEDIA_INSN_OR, SH5_MEDIA_INSN_ORI, SH5_MEDIA_INSN_PREFI
71  , SH5_MEDIA_INSN_PTA, SH5_MEDIA_INSN_PTABS, SH5_MEDIA_INSN_PTB, SH5_MEDIA_INSN_PTREL
72  , SH5_MEDIA_INSN_PUTCFG, SH5_MEDIA_INSN_PUTCON, SH5_MEDIA_INSN_RTE, SH5_MEDIA_INSN_SHARD
73  , SH5_MEDIA_INSN_SHARDL, SH5_MEDIA_INSN_SHARI, SH5_MEDIA_INSN_SHARIL, SH5_MEDIA_INSN_SHLLD
74  , SH5_MEDIA_INSN_SHLLDL, SH5_MEDIA_INSN_SHLLI, SH5_MEDIA_INSN_SHLLIL, SH5_MEDIA_INSN_SHLRD
75  , SH5_MEDIA_INSN_SHLRDL, SH5_MEDIA_INSN_SHLRI, SH5_MEDIA_INSN_SHLRIL, SH5_MEDIA_INSN_SHORI
76  , SH5_MEDIA_INSN_SLEEP, SH5_MEDIA_INSN_STB, SH5_MEDIA_INSN_STL, SH5_MEDIA_INSN_STQ
77  , SH5_MEDIA_INSN_STW, SH5_MEDIA_INSN_STHIL, SH5_MEDIA_INSN_STHIQ, SH5_MEDIA_INSN_STLOL
78  , SH5_MEDIA_INSN_STLOQ, SH5_MEDIA_INSN_STXB, SH5_MEDIA_INSN_STXL, SH5_MEDIA_INSN_STXQ
79  , SH5_MEDIA_INSN_STXW, SH5_MEDIA_INSN_SUB, SH5_MEDIA_INSN_SUBL, SH5_MEDIA_INSN_SWAPQ
80  , SH5_MEDIA_INSN_SYNCI, SH5_MEDIA_INSN_SYNCO, SH5_MEDIA_INSN_TRAPA, SH5_MEDIA_INSN_XOR
81  , SH5_MEDIA_INSN_XORI
82 } SH5_MEDIA_INSN_TYPE;
83
84
85 // Forward decls.
86 struct sh5_cpu;
87 struct sh5_media_scache;
88 typedef void (sh5_media_sem_fn) (sh5_cpu* cpu, sh5_media_scache* sem, int tick, sh5_media::write_stacks &buf);
89
90
91 // Instruction descriptor.
92
93 struct sh5_media_idesc {
94
95   // scache engine executor for this insn
96   sh5_media_sem_fn* execute;
97
98   const char* insn_name;
99   enum sh5_media_insn_type sem_index;
100   sh_insn_attr attrs;
101
102   // idesc table: indexed by sem_index
103   static sh5_media_idesc idesc_table[];
104
105   static sh5_media_insn_type lookup_virtual (virtual_insn_type vit);
106 };
107
108 // Instruction argument buffer.
109
110 union sh5_media_sem_fields {
111   struct { /* no operands */
112     int empty;
113   } fmt_empty;
114   struct { /*  */
115     INT f_imm16;
116     UINT f_dest;
117     unsigned char out_rd;
118   } sfmt_movi;
119   struct { /*  */
120     UINT f_left;
121     unsigned char in_rm;
122     unsigned char out_rm;
123   } sfmt_alloco;
124   struct { /*  */
125     UINT f_dest;
126     UINT f_uimm16;
127     unsigned char in_rd;
128     unsigned char out_rd;
129   } sfmt_shori;
130   struct { /*  */
131     DI f_disp16;
132     UINT f_likely;
133     UINT f_tra;
134     unsigned char out_tra;
135   } sfmt_pta;
136   struct { /*  */
137     UINT f_dest;
138     UINT f_left_right;
139     unsigned char in_frgh;
140     unsigned char out_rd;
141   } sfmt_fmovsl;
142   struct { /*  */
143     UINT f_dest;
144     UINT f_left_right;
145     unsigned char in_drgh;
146     unsigned char out_rd;
147   } sfmt_fmovdq;
148   struct { /*  */
149     UINT f_dest;
150     UINT f_left_right;
151     unsigned char in_frgh;
152     unsigned char out_drf;
153   } sfmt_fcnvsd;
154   struct { /*  */
155     UINT f_dest;
156     UINT f_left_right;
157     unsigned char in_drgh;
158     unsigned char out_frf;
159   } sfmt_fcnvds;
160   struct { /*  */
161     UINT f_dest;
162     UINT f_left_right;
163     unsigned char in_frgh;
164     unsigned char out_frf;
165   } sfmt_fabss;
166   struct { /*  */
167     UINT f_dest;
168     UINT f_left_right;
169     unsigned char in_drgh;
170     unsigned char out_drf;
171   } sfmt_fabsd;
172   struct { /*  */
173     UINT f_dest;
174     UINT f_trb;
175     unsigned char in_trb;
176     unsigned char out_rd;
177   } sfmt_blink;
178   struct { /*  */
179     INT f_imm6;
180     UINT f_dest;
181     UINT f_left;
182     unsigned char in_rm;
183     unsigned char out_rd;
184   } sfmt_xori;
185   struct { /*  */
186     SI f_disp10x2;
187     UINT f_dest;
188     UINT f_left;
189     unsigned char in_rd;
190     unsigned char in_rm;
191   } sfmt_stw;
192   struct { /*  */
193     SI f_disp10x8;
194     UINT f_dest;
195     UINT f_left;
196     unsigned char in_rd;
197     unsigned char in_rm;
198   } sfmt_stq;
199   struct { /*  */
200     SI f_disp10x4;
201     UINT f_dest;
202     UINT f_left;
203     unsigned char in_rd;
204     unsigned char in_rm;
205   } sfmt_stl;
206   struct { /*  */
207     INT f_disp10;
208     UINT f_dest;
209     UINT f_left;
210     unsigned char in_rd;
211     unsigned char in_rm;
212   } sfmt_stb;
213   struct { /*  */
214     UINT f_dest;
215     UINT f_left;
216     UINT f_uimm6;
217     unsigned char in_rm;
218     unsigned char out_rd;
219   } sfmt_shari;
220   struct { /*  */
221     INT f_disp6;
222     UINT f_dest;
223     UINT f_left;
224     unsigned char in_rd;
225     unsigned char in_rm;
226   } sfmt_putcfg;
227   struct { /*  */
228     UINT f_likely;
229     UINT f_right;
230     UINT f_tra;
231     unsigned char in_rn;
232     unsigned char out_tra;
233   } sfmt_ptabs;
234   struct { /*  */
235     INT f_imm10;
236     UINT f_dest;
237     UINT f_left;
238     unsigned char in_rm;
239     unsigned char out_rd;
240   } sfmt_ori;
241   struct { /*  */
242     SI f_disp10x2;
243     UINT f_dest;
244     UINT f_left;
245     unsigned char in_rm;
246     unsigned char out_rd;
247   } sfmt_lduw;
248   struct { /*  */
249     SI f_disp10x8;
250     UINT f_dest;
251     UINT f_left;
252     unsigned char in_rm;
253     unsigned char out_rd;
254   } sfmt_ldq;
255   struct { /*  */
256     SI f_disp10x4;
257     UINT f_dest;
258     UINT f_left;
259     unsigned char in_rm;
260     unsigned char out_rd;
261   } sfmt_ldl;
262   struct { /*  */
263     INT f_disp6;
264     UINT f_dest;
265     UINT f_left;
266     unsigned char in_rm;
267     unsigned char out_rd;
268   } sfmt_getcfg;
269   struct { /*  */
270     SI f_disp10x4;
271     UINT f_dest;
272     UINT f_left;
273     unsigned char in_frf;
274     unsigned char in_rm;
275   } sfmt_fsts;
276   struct { /*  */
277     SI f_disp10x8;
278     UINT f_dest;
279     UINT f_left;
280     unsigned char in_drf;
281     unsigned char in_rm;
282   } sfmt_fstd;
283   struct { /*  */
284     SI f_disp10x4;
285     UINT f_dest;
286     UINT f_left;
287     unsigned char in_rm;
288     unsigned char out_frf;
289   } sfmt_flds;
290   struct { /*  */
291     SI f_disp10x8;
292     UINT f_dest;
293     UINT f_left;
294     unsigned char in_rm;
295     unsigned char out_drf;
296   } sfmt_fldd;
297   struct { /*  */
298     INT f_disp10;
299     UINT f_dest;
300     UINT f_left;
301     unsigned char in_rm;
302     unsigned char out_rd;
303   } sfmt_addi;
304   struct { /*  */
305     UINT f_dest;
306     UINT f_left;
307     UINT f_right;
308     unsigned char in_frf;
309     unsigned char in_rm;
310     unsigned char in_rn;
311   } sfmt_fstxs;
312   struct { /*  */
313     UINT f_dest;
314     UINT f_left;
315     UINT f_right;
316     unsigned char in_drf;
317     unsigned char in_rm;
318     unsigned char in_rn;
319   } sfmt_fstxd;
320   struct { /*  */
321     UINT f_dest;
322     UINT f_left;
323     UINT f_right;
324     unsigned char in_rm;
325     unsigned char in_rn;
326     unsigned char out_frf;
327   } sfmt_fldxs;
328   struct { /*  */
329     UINT f_dest;
330     UINT f_left;
331     UINT f_right;
332     unsigned char in_rm;
333     unsigned char in_rn;
334     unsigned char out_drf;
335   } sfmt_fldxd;
336   struct { /*  */
337     SI f_disp10x8;
338     UINT f_dest;
339     UINT f_left;
340     unsigned char in_fpf;
341     unsigned char in_rm;
342     unsigned char out_fpf;
343   } sfmt_fldp;
344   struct { /*  */
345     UINT f_dest;
346     UINT f_left;
347     UINT f_right;
348     unsigned char in_frg;
349     unsigned char in_frh;
350     unsigned char out_rd;
351   } sfmt_fcmpeqs;
352   struct { /*  */
353     UINT f_dest;
354     UINT f_left;
355     UINT f_right;
356     unsigned char in_drg;
357     unsigned char in_drh;
358     unsigned char out_rd;
359   } sfmt_fcmpeqd;
360   struct { /*  */
361     UINT f_dest;
362     UINT f_left;
363     UINT f_right;
364     unsigned char in_drg;
365     unsigned char in_drh;
366     unsigned char out_drf;
367   } sfmt_faddd;
368   struct { /*  */
369     INT f_imm6;
370     UINT f_left;
371     UINT f_likely;
372     UINT f_tra;
373     unsigned char in_rm;
374     unsigned char in_tra;
375   } sfmt_beqi;
376   struct { /*  */
377     UINT f_dest;
378     UINT f_left;
379     UINT f_right;
380     unsigned char in_rd;
381     unsigned char in_rm;
382     unsigned char in_rn;
383     unsigned char out_rd;
384   } sfmt_mcmv;
385   struct { /*  */
386     UINT f_dest;
387     UINT f_left;
388     UINT f_right;
389     unsigned char in_frf;
390     unsigned char in_frg;
391     unsigned char in_frh;
392     unsigned char out_frf;
393   } sfmt_fmacs;
394   struct { /*  */
395     UINT f_dest;
396     UINT f_left;
397     UINT f_right;
398     unsigned char in_fpf;
399     unsigned char in_rm;
400     unsigned char in_rn;
401     unsigned char out_fpf;
402   } sfmt_fldxp;
403   struct { /*  */
404     UINT f_left;
405     UINT f_likely;
406     UINT f_right;
407     UINT f_tra;
408     unsigned char in_rm;
409     unsigned char in_rn;
410     unsigned char in_tra;
411   } sfmt_beq;
412   struct { /*  */
413     UINT f_dest;
414     UINT f_left;
415     UINT f_right;
416     unsigned char in_fvg;
417     unsigned char in_fvh;
418     unsigned char out_frf;
419     unsigned char out_fvg;
420     unsigned char out_fvh;
421   } sfmt_fiprs;
422   struct { /*  */
423     UINT f_dest;
424     UINT f_left;
425     UINT f_right;
426     unsigned char in_fvf;
427     unsigned char in_fvh;
428     unsigned char in_mtrxg;
429     unsigned char out_fvf;
430     unsigned char out_fvh;
431     unsigned char out_mtrxg;
432   } sfmt_ftrvs;
433   // This one is for chain/cti-chain virtual insns.
434   struct {
435     // Number of insns in pbb.
436     unsigned insn_count;
437     // This is used by chain insns and by untaken conditional branches.
438     sh5_media_scache* next;
439     sh5_media_scache* branch_target;
440   } chain;
441   // This one is for `before' virtual insns.
442   struct {
443     // The cache entry of the real insn.
444     sh5_media_scache* insn;
445   } before;
446 };
447
448 // Simulator instruction cache.
449
450 struct sh5_media_scache {
451   // executor
452   union {
453     cgoto_label cgoto;
454     sh5_media_sem_fn* fn;
455   } execute;
456
457   // PC of this instruction.
458   PCADDR addr;
459
460   // instruction class
461   sh5_media_idesc* idesc;
462
463   // argument buffer
464   sh5_media_sem_fields fields;
465
466
467   // writeback flags
468   // Only used if profiling or parallel execution support enabled during
469   // file generation.
470   unsigned long long written;
471
472
473   // decode given instruction
474   void decode (sh5_cpu* current_cpu, PCADDR pc, sh5_media_insn_word base_insn, sh5_media_insn_word entire_insn);
475 };
476
477 } // end sh5 namespace
478
479 // Decls of each semantic fn.
480
481 using sh5::sh5_media_sem_fn;
482 extern sh5_media_sem_fn sh5_media_sem_x_invalid;
483 extern sh5_media_sem_fn sh5_media_sem_add;
484 extern sh5_media_sem_fn sh5_media_sem_addl;
485 extern sh5_media_sem_fn sh5_media_sem_addi;
486 extern sh5_media_sem_fn sh5_media_sem_addil;
487 extern sh5_media_sem_fn sh5_media_sem_addzl;
488 extern sh5_media_sem_fn sh5_media_sem_alloco;
489 extern sh5_media_sem_fn sh5_media_sem_and;
490 extern sh5_media_sem_fn sh5_media_sem_andc;
491 extern sh5_media_sem_fn sh5_media_sem_andi;
492 extern sh5_media_sem_fn sh5_media_sem_beq;
493 extern sh5_media_sem_fn sh5_media_sem_beqi;
494 extern sh5_media_sem_fn sh5_media_sem_bge;
495 extern sh5_media_sem_fn sh5_media_sem_bgeu;
496 extern sh5_media_sem_fn sh5_media_sem_bgt;
497 extern sh5_media_sem_fn sh5_media_sem_bgtu;
498 extern sh5_media_sem_fn sh5_media_sem_blink;
499 extern sh5_media_sem_fn sh5_media_sem_bne;
500 extern sh5_media_sem_fn sh5_media_sem_bnei;
501 extern sh5_media_sem_fn sh5_media_sem_brk;
502 extern sh5_media_sem_fn sh5_media_sem_byterev;
503 extern sh5_media_sem_fn sh5_media_sem_cmpeq;
504 extern sh5_media_sem_fn sh5_media_sem_cmpgt;
505 extern sh5_media_sem_fn sh5_media_sem_cmpgtu;
506 extern sh5_media_sem_fn sh5_media_sem_cmveq;
507 extern sh5_media_sem_fn sh5_media_sem_cmvne;
508 extern sh5_media_sem_fn sh5_media_sem_fabsd;
509 extern sh5_media_sem_fn sh5_media_sem_fabss;
510 extern sh5_media_sem_fn sh5_media_sem_faddd;
511 extern sh5_media_sem_fn sh5_media_sem_fadds;
512 extern sh5_media_sem_fn sh5_media_sem_fcmpeqd;
513 extern sh5_media_sem_fn sh5_media_sem_fcmpeqs;
514 extern sh5_media_sem_fn sh5_media_sem_fcmpged;
515 extern sh5_media_sem_fn sh5_media_sem_fcmpges;
516 extern sh5_media_sem_fn sh5_media_sem_fcmpgtd;
517 extern sh5_media_sem_fn sh5_media_sem_fcmpgts;
518 extern sh5_media_sem_fn sh5_media_sem_fcmpund;
519 extern sh5_media_sem_fn sh5_media_sem_fcmpuns;
520 extern sh5_media_sem_fn sh5_media_sem_fcnvds;
521 extern sh5_media_sem_fn sh5_media_sem_fcnvsd;
522 extern sh5_media_sem_fn sh5_media_sem_fdivd;
523 extern sh5_media_sem_fn sh5_media_sem_fdivs;
524 extern sh5_media_sem_fn sh5_media_sem_fgetscr;
525 extern sh5_media_sem_fn sh5_media_sem_fiprs;
526 extern sh5_media_sem_fn sh5_media_sem_fldd;
527 extern sh5_media_sem_fn sh5_media_sem_fldp;
528 extern sh5_media_sem_fn sh5_media_sem_flds;
529 extern sh5_media_sem_fn sh5_media_sem_fldxd;
530 extern sh5_media_sem_fn sh5_media_sem_fldxp;
531 extern sh5_media_sem_fn sh5_media_sem_fldxs;
532 extern sh5_media_sem_fn sh5_media_sem_floatld;
533 extern sh5_media_sem_fn sh5_media_sem_floatls;
534 extern sh5_media_sem_fn sh5_media_sem_floatqd;
535 extern sh5_media_sem_fn sh5_media_sem_floatqs;
536 extern sh5_media_sem_fn sh5_media_sem_fmacs;
537 extern sh5_media_sem_fn sh5_media_sem_fmovd;
538 extern sh5_media_sem_fn sh5_media_sem_fmovdq;
539 extern sh5_media_sem_fn sh5_media_sem_fmovls;
540 extern sh5_media_sem_fn sh5_media_sem_fmovqd;
541 extern sh5_media_sem_fn sh5_media_sem_fmovs;
542 extern sh5_media_sem_fn sh5_media_sem_fmovsl;
543 extern sh5_media_sem_fn sh5_media_sem_fmuld;
544 extern sh5_media_sem_fn sh5_media_sem_fmuls;
545 extern sh5_media_sem_fn sh5_media_sem_fnegd;
546 extern sh5_media_sem_fn sh5_media_sem_fnegs;
547 extern sh5_media_sem_fn sh5_media_sem_fputscr;
548 extern sh5_media_sem_fn sh5_media_sem_fsqrtd;
549 extern sh5_media_sem_fn sh5_media_sem_fsqrts;
550 extern sh5_media_sem_fn sh5_media_sem_fstd;
551 extern sh5_media_sem_fn sh5_media_sem_fstp;
552 extern sh5_media_sem_fn sh5_media_sem_fsts;
553 extern sh5_media_sem_fn sh5_media_sem_fstxd;
554 extern sh5_media_sem_fn sh5_media_sem_fstxp;
555 extern sh5_media_sem_fn sh5_media_sem_fstxs;
556 extern sh5_media_sem_fn sh5_media_sem_fsubd;
557 extern sh5_media_sem_fn sh5_media_sem_fsubs;
558 extern sh5_media_sem_fn sh5_media_sem_ftrcdl;
559 extern sh5_media_sem_fn sh5_media_sem_ftrcsl;
560 extern sh5_media_sem_fn sh5_media_sem_ftrcdq;
561 extern sh5_media_sem_fn sh5_media_sem_ftrcsq;
562 extern sh5_media_sem_fn sh5_media_sem_ftrvs;
563 extern sh5_media_sem_fn sh5_media_sem_getcfg;
564 extern sh5_media_sem_fn sh5_media_sem_getcon;
565 extern sh5_media_sem_fn sh5_media_sem_gettr;
566 extern sh5_media_sem_fn sh5_media_sem_icbi;
567 extern sh5_media_sem_fn sh5_media_sem_ldb;
568 extern sh5_media_sem_fn sh5_media_sem_ldl;
569 extern sh5_media_sem_fn sh5_media_sem_ldq;
570 extern sh5_media_sem_fn sh5_media_sem_ldub;
571 extern sh5_media_sem_fn sh5_media_sem_lduw;
572 extern sh5_media_sem_fn sh5_media_sem_ldw;
573 extern sh5_media_sem_fn sh5_media_sem_ldhil;
574 extern sh5_media_sem_fn sh5_media_sem_ldhiq;
575 extern sh5_media_sem_fn sh5_media_sem_ldlol;
576 extern sh5_media_sem_fn sh5_media_sem_ldloq;
577 extern sh5_media_sem_fn sh5_media_sem_ldxb;
578 extern sh5_media_sem_fn sh5_media_sem_ldxl;
579 extern sh5_media_sem_fn sh5_media_sem_ldxq;
580 extern sh5_media_sem_fn sh5_media_sem_ldxub;
581 extern sh5_media_sem_fn sh5_media_sem_ldxuw;
582 extern sh5_media_sem_fn sh5_media_sem_ldxw;
583 extern sh5_media_sem_fn sh5_media_sem_mabsl;
584 extern sh5_media_sem_fn sh5_media_sem_mabsw;
585 extern sh5_media_sem_fn sh5_media_sem_maddl;
586 extern sh5_media_sem_fn sh5_media_sem_maddw;
587 extern sh5_media_sem_fn sh5_media_sem_maddsl;
588 extern sh5_media_sem_fn sh5_media_sem_maddsub;
589 extern sh5_media_sem_fn sh5_media_sem_maddsw;
590 extern sh5_media_sem_fn sh5_media_sem_mcmpeqb;
591 extern sh5_media_sem_fn sh5_media_sem_mcmpeql;
592 extern sh5_media_sem_fn sh5_media_sem_mcmpeqw;
593 extern sh5_media_sem_fn sh5_media_sem_mcmpgtl;
594 extern sh5_media_sem_fn sh5_media_sem_mcmpgtub;
595 extern sh5_media_sem_fn sh5_media_sem_mcmpgtw;
596 extern sh5_media_sem_fn sh5_media_sem_mcmv;
597 extern sh5_media_sem_fn sh5_media_sem_mcnvslw;
598 extern sh5_media_sem_fn sh5_media_sem_mcnvswb;
599 extern sh5_media_sem_fn sh5_media_sem_mcnvswub;
600 extern sh5_media_sem_fn sh5_media_sem_mextr1;
601 extern sh5_media_sem_fn sh5_media_sem_mextr2;
602 extern sh5_media_sem_fn sh5_media_sem_mextr3;
603 extern sh5_media_sem_fn sh5_media_sem_mextr4;
604 extern sh5_media_sem_fn sh5_media_sem_mextr5;
605 extern sh5_media_sem_fn sh5_media_sem_mextr6;
606 extern sh5_media_sem_fn sh5_media_sem_mextr7;
607 extern sh5_media_sem_fn sh5_media_sem_mmacfxwl;
608 extern sh5_media_sem_fn sh5_media_sem_mmacnfx_wl;
609 extern sh5_media_sem_fn sh5_media_sem_mmull;
610 extern sh5_media_sem_fn sh5_media_sem_mmulw;
611 extern sh5_media_sem_fn sh5_media_sem_mmulfxl;
612 extern sh5_media_sem_fn sh5_media_sem_mmulfxw;
613 extern sh5_media_sem_fn sh5_media_sem_mmulfxrpw;
614 extern sh5_media_sem_fn sh5_media_sem_mmulhiwl;
615 extern sh5_media_sem_fn sh5_media_sem_mmullowl;
616 extern sh5_media_sem_fn sh5_media_sem_mmulsumwq;
617 extern sh5_media_sem_fn sh5_media_sem_movi;
618 extern sh5_media_sem_fn sh5_media_sem_mpermw;
619 extern sh5_media_sem_fn sh5_media_sem_msadubq;
620 extern sh5_media_sem_fn sh5_media_sem_mshaldsl;
621 extern sh5_media_sem_fn sh5_media_sem_mshaldsw;
622 extern sh5_media_sem_fn sh5_media_sem_mshardl;
623 extern sh5_media_sem_fn sh5_media_sem_mshardw;
624 extern sh5_media_sem_fn sh5_media_sem_mshardsq;
625 extern sh5_media_sem_fn sh5_media_sem_mshfhib;
626 extern sh5_media_sem_fn sh5_media_sem_mshfhil;
627 extern sh5_media_sem_fn sh5_media_sem_mshfhiw;
628 extern sh5_media_sem_fn sh5_media_sem_mshflob;
629 extern sh5_media_sem_fn sh5_media_sem_mshflol;
630 extern sh5_media_sem_fn sh5_media_sem_mshflow;
631 extern sh5_media_sem_fn sh5_media_sem_mshlldl;
632 extern sh5_media_sem_fn sh5_media_sem_mshlldw;
633 extern sh5_media_sem_fn sh5_media_sem_mshlrdl;
634 extern sh5_media_sem_fn sh5_media_sem_mshlrdw;
635 extern sh5_media_sem_fn sh5_media_sem_msubl;
636 extern sh5_media_sem_fn sh5_media_sem_msubw;
637 extern sh5_media_sem_fn sh5_media_sem_msubsl;
638 extern sh5_media_sem_fn sh5_media_sem_msubsub;
639 extern sh5_media_sem_fn sh5_media_sem_msubsw;
640 extern sh5_media_sem_fn sh5_media_sem_mulsl;
641 extern sh5_media_sem_fn sh5_media_sem_mulul;
642 extern sh5_media_sem_fn sh5_media_sem_nop;
643 extern sh5_media_sem_fn sh5_media_sem_nsb;
644 extern sh5_media_sem_fn sh5_media_sem_ocbi;
645 extern sh5_media_sem_fn sh5_media_sem_ocbp;
646 extern sh5_media_sem_fn sh5_media_sem_ocbwb;
647 extern sh5_media_sem_fn sh5_media_sem_or;
648 extern sh5_media_sem_fn sh5_media_sem_ori;
649 extern sh5_media_sem_fn sh5_media_sem_prefi;
650 extern sh5_media_sem_fn sh5_media_sem_pta;
651 extern sh5_media_sem_fn sh5_media_sem_ptabs;
652 extern sh5_media_sem_fn sh5_media_sem_ptb;
653 extern sh5_media_sem_fn sh5_media_sem_ptrel;
654 extern sh5_media_sem_fn sh5_media_sem_putcfg;
655 extern sh5_media_sem_fn sh5_media_sem_putcon;
656 extern sh5_media_sem_fn sh5_media_sem_rte;
657 extern sh5_media_sem_fn sh5_media_sem_shard;
658 extern sh5_media_sem_fn sh5_media_sem_shardl;
659 extern sh5_media_sem_fn sh5_media_sem_shari;
660 extern sh5_media_sem_fn sh5_media_sem_sharil;
661 extern sh5_media_sem_fn sh5_media_sem_shlld;
662 extern sh5_media_sem_fn sh5_media_sem_shlldl;
663 extern sh5_media_sem_fn sh5_media_sem_shlli;
664 extern sh5_media_sem_fn sh5_media_sem_shllil;
665 extern sh5_media_sem_fn sh5_media_sem_shlrd;
666 extern sh5_media_sem_fn sh5_media_sem_shlrdl;
667 extern sh5_media_sem_fn sh5_media_sem_shlri;
668 extern sh5_media_sem_fn sh5_media_sem_shlril;
669 extern sh5_media_sem_fn sh5_media_sem_shori;
670 extern sh5_media_sem_fn sh5_media_sem_sleep;
671 extern sh5_media_sem_fn sh5_media_sem_stb;
672 extern sh5_media_sem_fn sh5_media_sem_stl;
673 extern sh5_media_sem_fn sh5_media_sem_stq;
674 extern sh5_media_sem_fn sh5_media_sem_stw;
675 extern sh5_media_sem_fn sh5_media_sem_sthil;
676 extern sh5_media_sem_fn sh5_media_sem_sthiq;
677 extern sh5_media_sem_fn sh5_media_sem_stlol;
678 extern sh5_media_sem_fn sh5_media_sem_stloq;
679 extern sh5_media_sem_fn sh5_media_sem_stxb;
680 extern sh5_media_sem_fn sh5_media_sem_stxl;
681 extern sh5_media_sem_fn sh5_media_sem_stxq;
682 extern sh5_media_sem_fn sh5_media_sem_stxw;
683 extern sh5_media_sem_fn sh5_media_sem_sub;
684 extern sh5_media_sem_fn sh5_media_sem_subl;
685 extern sh5_media_sem_fn sh5_media_sem_swapq;
686 extern sh5_media_sem_fn sh5_media_sem_synci;
687 extern sh5_media_sem_fn sh5_media_sem_synco;
688 extern sh5_media_sem_fn sh5_media_sem_trapa;
689 extern sh5_media_sem_fn sh5_media_sem_xor;
690 extern sh5_media_sem_fn sh5_media_sem_xori;
691
692 #endif /* SH5_MEDIA_DECODE_H */