Core commit. Compile and run on the OpenPandora
[mupen64plus-pandora.git] / source / mupen64plus-core / src / r4300 / recomph.h
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2  *   Mupen64plus - recomph.h                                               *
3  *   Mupen64Plus homepage: http://code.google.com/p/mupen64plus/           *
4  *   Copyright (C) 2002 Hacktarux                                          *
5  *                                                                         *
6  *   This program is free software; you can redistribute it and/or modify  *
7  *   it under the terms of the GNU General Public License as published by  *
8  *   the Free Software Foundation; either version 2 of the License, or     *
9  *   (at your option) any later version.                                   *
10  *                                                                         *
11  *   This program is distributed in the hope that it will be useful,       *
12  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
13  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
14  *   GNU General Public License for more details.                          *
15  *                                                                         *
16  *   You should have received a copy of the GNU General Public License     *
17  *   along with this program; if not, write to the                         *
18  *   Free Software Foundation, Inc.,                                       *
19  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.          *
20  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
21
22 #ifndef RECOMPH_H
23 #define RECOMPH_H
24
25 #include "recomp.h"
26
27 #if defined(COUNT_INSTR)
28 extern unsigned int instr_count[132];
29 extern unsigned int instr_type[131];
30 extern char instr_name[][10];
31 extern char instr_typename[][20];
32 #endif
33
34 extern int code_length;
35 extern int max_code_length;
36 extern unsigned char **inst_pointer;
37 extern precomp_block* dst_block;
38 extern int fast_memory;
39 extern int src;   /* opcode of r4300 instruction being recompiled */
40
41 #if defined(PROFILE_R4300)
42   #include <stdio.h>
43   extern FILE *pfProfile;
44 #endif
45
46 void passe2(precomp_instr *dest, int start, int end, precomp_block* block);
47 void init_assembler(void *block_jumps_table, int block_jumps_number, void *block_riprel_table, int block_riprel_number);
48 void free_assembler(void **block_jumps_table, int *block_jumps_number, void **block_riprel_table, int *block_riprel_number);
49
50 void gencallinterp(unsigned long addr, int jump);
51
52 void genupdate_system(int type);
53 void genbnel(void);
54 void genblezl(void);
55 void genlw(void);
56 void genlbu(void);
57 void genlhu(void);
58 void gensb(void);
59 void gensh(void);
60 void gensw(void);
61 void gencache(void);
62 void genlwc1(void);
63 void genld(void);
64 void gensd(void);
65 void genbeq(void);
66 void genbne(void);
67 void genblez(void);
68 void genaddi(void);
69 void genaddiu(void);
70 void genslti(void);
71 void gensltiu(void);
72 void genandi(void);
73 void genori(void);
74 void genxori(void);
75 void genlui(void);
76 void genbeql(void);
77 void genmul_s(void);
78 void gendiv_s(void);
79 void gencvt_d_s(void);
80 void genadd_d(void);
81 void gentrunc_w_d(void);
82 void gencvt_s_w(void);
83 void genmfc1(void);
84 void gencfc1(void);
85 void genmtc1(void);
86 void genctc1(void);
87 void genj(void);
88 void genjal(void);
89 void genslt(void);
90 void gensltu(void);
91 void gendsll32(void);
92 void gendsra32(void);
93 void genbgez(void);
94 void genbgezl(void);
95 void genbgezal(void);
96 void gentlbwi(void);
97 void generet(void);
98 void genmfc0(void);
99 void genadd_s(void);
100 void genmult(void);
101 void genmultu(void);
102 void genmflo(void);
103 void genmtlo(void);
104 void gendiv(void);
105 void gendmultu(void);
106 void genddivu(void);
107 void genadd(void);
108 void genaddu(void);
109 void gensubu(void);
110 void genand(void);
111 void genor(void);
112 void genxor(void);
113 void genreserved(void);
114 void gennop(void);
115 void gensll(void);
116 void gensrl(void);
117 void gensra(void);
118 void gensllv(void);
119 void gensrlv(void);
120 void genjr(void);
121 void genni(void);
122 void genmfhi(void);
123 void genmthi(void);
124 void genmtc0(void);
125 void genbltz(void);
126 void genlwl(void);
127 void genswl(void);
128 void gentlbp(void);
129 void gentlbr(void);
130 void genswr(void);
131 void genlwr(void);
132 void gensrav(void);
133 void genbgtz(void);
134 void genlb(void);
135 void genswc1(void);
136 void genldc1(void);
137 void gencvt_d_w(void);
138 void genmul_d(void);
139 void gensub_d(void);
140 void gendiv_d(void);
141 void gencvt_s_d(void);
142 void genmov_s(void);
143 void genc_le_s(void);
144 void genbc1t(void);
145 void gentrunc_w_s(void);
146 void genbc1tl(void);
147 void genc_lt_s(void);
148 void genbc1fl(void);
149 void genneg_s(void);
150 void genc_le_d(void);
151 void genbgezal_idle(void);
152 void genj_idle(void);
153 void genbeq_idle(void);
154 void genlh(void);
155 void genmov_d(void);
156 void genc_lt_d(void);
157 void genbc1f(void);
158 void gennor(void);
159 void genneg_d(void);
160 void gensub(void);
161 void genblez_idle(void);
162 void gendivu(void);
163 void gencvt_w_s(void);
164 void genbltzl(void);
165 void gensdc1(void);
166 void genc_eq_s(void);
167 void genjalr(void);
168 void gensub_s(void);
169 void gensqrt_s(void);
170 void genc_eq_d(void);
171 void gencvt_w_d(void);
172 void genfin_block(void);
173 void genddiv(void);
174 void gendaddiu(void);
175 void genbgtzl(void);
176 void gendsrav(void);
177 void gendsllv(void);
178 void gencvt_s_l(void);
179 void gendmtc1(void);
180 void gendsrlv(void);
181 void gendsra(void);
182 void gendmult(void);
183 void gendsll(void);
184 void genabs_s(void);
185 void gensc(void);
186 void gennotcompiled(void);
187 void genjal_idle(void);
188 void genjal_out(void);
189 void genbeq_out(void);
190 void gensyscall(void);
191 void gensync(void);
192 void gendadd(void);
193 void gendaddu(void);
194 void gendsub(void);
195 void gendsubu(void);
196 void genteq(void);
197 void gendsrl(void);
198 void gendsrl32(void);
199 void genbltz_idle(void);
200 void genbltz_out(void);
201 void genbgez_idle(void);
202 void genbgez_out(void);
203 void genbltzl_idle(void);
204 void genbltzl_out(void);
205 void genbgezl_idle(void);
206 void genbgezl_out(void);
207 void genbltzal_idle(void);
208 void genbltzal_out(void);
209 void genbltzal(void);
210 void genbgezal_out(void);
211 void genbltzall_idle(void);
212 void genbltzall_out(void);
213 void genbltzall(void);
214 void genbgezall_idle(void);
215 void genbgezall_out(void);
216 void genbgezall(void);
217 void gentlbwr(void);
218 void genbc1f_idle(void);
219 void genbc1f_out(void);
220 void genbc1t_idle(void);
221 void genbc1t_out(void);
222 void genbc1fl_idle(void);
223 void genbc1fl_out(void);
224 void genbc1tl_idle(void);
225 void genbc1tl_out(void);
226 void genround_l_s(void);
227 void gentrunc_l_s(void);
228 void genceil_l_s(void);
229 void genfloor_l_s(void);
230 void genround_w_s(void);
231 void genceil_w_s(void);
232 void genfloor_w_s(void);
233 void gencvt_l_s(void);
234 void genc_f_s(void);
235 void genc_un_s(void);
236 void genc_ueq_s(void);
237 void genc_olt_s(void);
238 void genc_ult_s(void);
239 void genc_ole_s(void);
240 void genc_ule_s(void);
241 void genc_sf_s(void);
242 void genc_ngle_s(void);
243 void genc_seq_s(void);
244 void genc_ngl_s(void);
245 void genc_nge_s(void);
246 void genc_ngt_s(void);
247 void gensqrt_d(void);
248 void genabs_d(void);
249 void genround_l_d(void);
250 void gentrunc_l_d(void);
251 void genceil_l_d(void);
252 void genfloor_l_d(void);
253 void genround_w_d(void);
254 void genceil_w_d(void);
255 void genfloor_w_d(void);
256 void gencvt_l_d(void);
257 void genc_f_d(void);
258 void genc_un_d(void);
259 void genc_ueq_d(void);
260 void genc_olt_d(void);
261 void genc_ult_d(void);
262 void genc_ole_d(void);
263 void genc_ule_d(void);
264 void genc_sf_d(void);
265 void genc_ngle_d(void);
266 void genc_seq_d(void);
267 void genc_ngl_d(void);
268 void genc_nge_d(void);
269 void genc_ngt_d(void);
270 void gencvt_d_l(void);
271 void gendmfc1(void);
272 void genj_out(void);
273 void genbne_idle(void);
274 void genbne_out(void);
275 void genblez_out(void);
276 void genbgtz_idle(void);
277 void genbgtz_out(void);
278 void genbeql_idle(void);
279 void genbeql_out(void);
280 void genbnel_idle(void);
281 void genbnel_out(void);
282 void genblezl_idle(void);
283 void genblezl_out(void);
284 void genbgtzl_idle(void);
285 void genbgtzl_out(void);
286 void gendaddi(void);
287 void genldl(void);
288 void genldr(void);
289 void genlwu(void);
290 void gensdl(void);
291 void gensdr(void);
292 void genlink_subblock(void);
293 void gendelayslot(void);
294 void gencheck_interupt_reg(void);
295 void gentest(void);
296 void gentest_out(void);
297 void gentest_idle(void);
298 void gentestl(void);
299 void gentestl_out(void);
300 void gencheck_cop1_unusable(void);
301 void genll(void);
302
303 #ifdef COMPARE_CORE
304 void gendebug(void);
305 #endif
306
307 #endif
308