1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2 * Mupen64plus - recomph.h *
3 * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
4 * Copyright (C) 2002 Hacktarux *
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. *
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. *
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 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
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];
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 */
41 #if defined(PROFILE_R4300)
43 extern FILE *pfProfile;
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);
50 void gencallinterp(unsigned long addr, int jump);
52 void genupdate_system(int type);
79 void gencvt_d_s(void);
81 void gentrunc_w_d(void);
82 void gencvt_s_w(void);
105 void gendmultu(void);
113 void genreserved(void);
137 void gencvt_d_w(void);
141 void gencvt_s_d(void);
143 void genc_le_s(void);
145 void gentrunc_w_s(void);
147 void genc_lt_s(void);
150 void genc_le_d(void);
151 void genbgezal_idle(void);
152 void genj_idle(void);
153 void genbeq_idle(void);
156 void genc_lt_d(void);
161 void genblez_idle(void);
163 void gencvt_w_s(void);
166 void genc_eq_s(void);
169 void gensqrt_s(void);
170 void genc_eq_d(void);
171 void gencvt_w_d(void);
172 void genfin_block(void);
174 void gendaddiu(void);
178 void gencvt_s_l(void);
186 void gennotcompiled(void);
187 void genjal_idle(void);
188 void genjal_out(void);
189 void genbeq_out(void);
190 void gensyscall(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);
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);
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);
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);
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);
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);
292 void genlink_subblock(void);
293 void gendelayslot(void);
294 void gencheck_interupt_reg(void);
296 void gentest_out(void);
297 void gentest_idle(void);
299 void gentestl_out(void);
300 void gencheck_cop1_unusable(void);