Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/libmupen64plus/mupen64plus-core/src/r4300/x86/regcache.h
2 views
1
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2
* Mupen64plus - regcache.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 REGCACHE_H
23
#define REGCACHE_H
24
25
#include "r4300/recomp.h"
26
27
void init_cache(precomp_instr* start);
28
void free_all_registers(void);
29
void free_register(int reg);
30
int allocate_register(unsigned int *addr);
31
int allocate_64_register1(unsigned int *addr);
32
int allocate_64_register2(unsigned int *addr);
33
int is64(unsigned int *addr);
34
void build_wrappers(precomp_instr*, int, int, precomp_block*);
35
int lru_register(void);
36
int allocate_register_w(unsigned int *addr);
37
int allocate_64_register1_w(unsigned int *addr);
38
int allocate_64_register2_w(unsigned int *addr);
39
void set_register_state(int reg, unsigned int *addr, int dirty);
40
void set_64_register_state(int reg1, int reg2, unsigned int *addr, int dirty);
41
void allocate_register_manually(int reg, unsigned int *addr);
42
void allocate_register_manually_w(int reg, unsigned int *addr, int load);
43
void force_32(int reg);
44
int lru_register_exc1(int exc1);
45
void simplify_access(void);
46
47
#endif // REGCACHE_H
48
49
50