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