rebuild with patched automake
[deliverable/binutils-gdb.git] / sim / m32r / decode.h
CommitLineData
c906108c
SS
1/* Decode header for m32rbf.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
6
7This file is part of the GNU Simulators.
8
9This program is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 2, or (at your option)
12any later version.
13
14This program is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License along
20with this program; if not, write to the Free Software Foundation, Inc.,
2159 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23*/
24
25#ifndef M32RBF_DECODE_H
26#define M32RBF_DECODE_H
27
28extern const IDESC *m32rbf_decode (SIM_CPU *, IADDR,
29 CGEN_INSN_INT, CGEN_INSN_INT,
30 ARGBUF *);
31extern void m32rbf_init_idesc_table (SIM_CPU *);
32
33/* Enum declaration for instructions in cpu family m32rbf. */
34typedef enum m32rbf_insn_type {
35 M32RBF_INSN_X_INVALID, M32RBF_INSN_X_AFTER, M32RBF_INSN_X_BEFORE, M32RBF_INSN_X_CTI_CHAIN
36 , M32RBF_INSN_X_CHAIN, M32RBF_INSN_X_BEGIN, M32RBF_INSN_ADD, M32RBF_INSN_ADD3
37 , M32RBF_INSN_AND, M32RBF_INSN_AND3, M32RBF_INSN_OR, M32RBF_INSN_OR3
38 , M32RBF_INSN_XOR, M32RBF_INSN_XOR3, M32RBF_INSN_ADDI, M32RBF_INSN_ADDV
39 , M32RBF_INSN_ADDV3, M32RBF_INSN_ADDX, M32RBF_INSN_BC8, M32RBF_INSN_BC24
40 , M32RBF_INSN_BEQ, M32RBF_INSN_BEQZ, M32RBF_INSN_BGEZ, M32RBF_INSN_BGTZ
41 , M32RBF_INSN_BLEZ, M32RBF_INSN_BLTZ, M32RBF_INSN_BNEZ, M32RBF_INSN_BL8
42 , M32RBF_INSN_BL24, M32RBF_INSN_BNC8, M32RBF_INSN_BNC24, M32RBF_INSN_BNE
43 , M32RBF_INSN_BRA8, M32RBF_INSN_BRA24, M32RBF_INSN_CMP, M32RBF_INSN_CMPI
44 , M32RBF_INSN_CMPU, M32RBF_INSN_CMPUI, M32RBF_INSN_DIV, M32RBF_INSN_DIVU
45 , M32RBF_INSN_REM, M32RBF_INSN_REMU, M32RBF_INSN_JL, M32RBF_INSN_JMP
46 , M32RBF_INSN_LD, M32RBF_INSN_LD_D, M32RBF_INSN_LDB, M32RBF_INSN_LDB_D
47 , M32RBF_INSN_LDH, M32RBF_INSN_LDH_D, M32RBF_INSN_LDUB, M32RBF_INSN_LDUB_D
48 , M32RBF_INSN_LDUH, M32RBF_INSN_LDUH_D, M32RBF_INSN_LD_PLUS, M32RBF_INSN_LD24
49 , M32RBF_INSN_LDI8, M32RBF_INSN_LDI16, M32RBF_INSN_LOCK, M32RBF_INSN_MACHI
50 , M32RBF_INSN_MACLO, M32RBF_INSN_MACWHI, M32RBF_INSN_MACWLO, M32RBF_INSN_MUL
51 , M32RBF_INSN_MULHI, M32RBF_INSN_MULLO, M32RBF_INSN_MULWHI, M32RBF_INSN_MULWLO
52 , M32RBF_INSN_MV, M32RBF_INSN_MVFACHI, M32RBF_INSN_MVFACLO, M32RBF_INSN_MVFACMI
53 , M32RBF_INSN_MVFC, M32RBF_INSN_MVTACHI, M32RBF_INSN_MVTACLO, M32RBF_INSN_MVTC
54 , M32RBF_INSN_NEG, M32RBF_INSN_NOP, M32RBF_INSN_NOT, M32RBF_INSN_RAC
55 , M32RBF_INSN_RACH, M32RBF_INSN_RTE, M32RBF_INSN_SETH, M32RBF_INSN_SLL
56 , M32RBF_INSN_SLL3, M32RBF_INSN_SLLI, M32RBF_INSN_SRA, M32RBF_INSN_SRA3
57 , M32RBF_INSN_SRAI, M32RBF_INSN_SRL, M32RBF_INSN_SRL3, M32RBF_INSN_SRLI
58 , M32RBF_INSN_ST, M32RBF_INSN_ST_D, M32RBF_INSN_STB, M32RBF_INSN_STB_D
59 , M32RBF_INSN_STH, M32RBF_INSN_STH_D, M32RBF_INSN_ST_PLUS, M32RBF_INSN_ST_MINUS
60 , M32RBF_INSN_SUB, M32RBF_INSN_SUBV, M32RBF_INSN_SUBX, M32RBF_INSN_TRAP
61 , M32RBF_INSN_UNLOCK, M32RBF_INSN_MAX
62} M32RBF_INSN_TYPE;
63
64#if ! WITH_SEM_SWITCH_FULL
65#define SEMFULL(fn) extern SEMANTIC_FN CONCAT3 (m32rbf,_sem_,fn);
66#else
67#define SEMFULL(fn)
68#endif
69
70#if ! WITH_SEM_SWITCH_FAST
71#define SEMFAST(fn) extern SEMANTIC_FN CONCAT3 (m32rbf,_semf_,fn);
72#else
73#define SEMFAST(fn)
74#endif
75
76#define SEM(fn) SEMFULL (fn) SEMFAST (fn)
77
78/* The function version of the before/after handlers is always needed,
79 so we always want the SEMFULL declaration of them. */
80extern SEMANTIC_FN CONCAT3 (m32rbf,_sem_,x_before);
81extern SEMANTIC_FN CONCAT3 (m32rbf,_sem_,x_after);
82
83SEM (x_invalid)
84SEM (x_after)
85SEM (x_before)
86SEM (x_cti_chain)
87SEM (x_chain)
88SEM (x_begin)
89SEM (add)
90SEM (add3)
91SEM (and)
92SEM (and3)
93SEM (or)
94SEM (or3)
95SEM (xor)
96SEM (xor3)
97SEM (addi)
98SEM (addv)
99SEM (addv3)
100SEM (addx)
101SEM (bc8)
102SEM (bc24)
103SEM (beq)
104SEM (beqz)
105SEM (bgez)
106SEM (bgtz)
107SEM (blez)
108SEM (bltz)
109SEM (bnez)
110SEM (bl8)
111SEM (bl24)
112SEM (bnc8)
113SEM (bnc24)
114SEM (bne)
115SEM (bra8)
116SEM (bra24)
117SEM (cmp)
118SEM (cmpi)
119SEM (cmpu)
120SEM (cmpui)
121SEM (div)
122SEM (divu)
123SEM (rem)
124SEM (remu)
125SEM (jl)
126SEM (jmp)
127SEM (ld)
128SEM (ld_d)
129SEM (ldb)
130SEM (ldb_d)
131SEM (ldh)
132SEM (ldh_d)
133SEM (ldub)
134SEM (ldub_d)
135SEM (lduh)
136SEM (lduh_d)
137SEM (ld_plus)
138SEM (ld24)
139SEM (ldi8)
140SEM (ldi16)
141SEM (lock)
142SEM (machi)
143SEM (maclo)
144SEM (macwhi)
145SEM (macwlo)
146SEM (mul)
147SEM (mulhi)
148SEM (mullo)
149SEM (mulwhi)
150SEM (mulwlo)
151SEM (mv)
152SEM (mvfachi)
153SEM (mvfaclo)
154SEM (mvfacmi)
155SEM (mvfc)
156SEM (mvtachi)
157SEM (mvtaclo)
158SEM (mvtc)
159SEM (neg)
160SEM (nop)
161SEM (not)
162SEM (rac)
163SEM (rach)
164SEM (rte)
165SEM (seth)
166SEM (sll)
167SEM (sll3)
168SEM (slli)
169SEM (sra)
170SEM (sra3)
171SEM (srai)
172SEM (srl)
173SEM (srl3)
174SEM (srli)
175SEM (st)
176SEM (st_d)
177SEM (stb)
178SEM (stb_d)
179SEM (sth)
180SEM (sth_d)
181SEM (st_plus)
182SEM (st_minus)
183SEM (sub)
184SEM (subv)
185SEM (subx)
186SEM (trap)
187SEM (unlock)
188
189#undef SEMFULL
190#undef SEMFAST
191#undef SEM
192
193/* Function unit handlers (user written). */
194
195extern int m32rbf_model_m32r_d_u_store (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/);
196extern int m32rbf_model_m32r_d_u_load (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/, INT /*dr*/);
197extern int m32rbf_model_m32r_d_u_cti (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/);
198extern int m32rbf_model_m32r_d_u_mac (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/);
199extern int m32rbf_model_m32r_d_u_cmp (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*src1*/, INT /*src2*/);
200extern int m32rbf_model_m32r_d_u_exec (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/, INT /*sr*/, INT /*dr*/, INT /*dr*/);
201extern int m32rbf_model_test_u_exec (SIM_CPU *, const IDESC *, int /*unit_num*/, int /*referenced*/);
202
203/* Profiling before/after handlers (user written) */
204
205extern void m32rbf_model_insn_before (SIM_CPU *, int /*first_p*/);
206extern void m32rbf_model_insn_after (SIM_CPU *, int /*last_p*/, int /*cycles*/);
207
208#endif /* M32RBF_DECODE_H */
This page took 0.043304 seconds and 4 git commands to generate.