Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libmupen64plus/mupen64plus-core/src/r4300/recomph.h
2 views
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
309
310