drc: prefer callee-saved regs on alloc
[pcsx_rearmed.git] / libpcsxcore / gte.h
CommitLineData
ef79bbde
P
1/***************************************************************************
2 * PCSX-Revolution - PlayStation Emulator for Nintendo Wii *
3 * Copyright (C) 2009-2010 PCSX-Revolution Dev Team *
4 * <http://code.google.com/p/pcsx-revolution/> *
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 02111-1307 USA. *
20 ***************************************************************************/
21
59774ed0 22#ifdef FLAGLESS
23
24#define gteRTPS gteRTPS_nf
25#define gteOP gteOP_nf
26#define gteNCLIP gteNCLIP_nf
27#define gteDPCS gteDPCS_nf
28#define gteINTPL gteINTPL_nf
29#define gteMVMVA gteMVMVA_nf
30#define gteNCDS gteNCDS_nf
31#define gteNCDT gteNCDT_nf
32#define gteCDP gteCDP_nf
33#define gteNCCS gteNCCS_nf
34#define gteCC gteCC_nf
35#define gteNCS gteNCS_nf
36#define gteNCT gteNCT_nf
37#define gteSQR gteSQR_nf
38#define gteDCPL gteDCPL_nf
39#define gteDPCT gteDPCT_nf
40#define gteAVSZ3 gteAVSZ3_nf
41#define gteAVSZ4 gteAVSZ4_nf
42#define gteRTPT gteRTPT_nf
43#define gteGPF gteGPF_nf
44#define gteGPL gteGPL_nf
45#define gteNCCT gteNCCT_nf
46
6c0eefaf 47#define gteGPL_part_noshift gteGPL_part_noshift_nf
48#define gteGPL_part_shift gteGPL_part_shift_nf
49#define gteDPCS_part_noshift gteDPCS_part_noshift_nf
50#define gteDPCS_part_shift gteDPCS_part_shift_nf
51#define gteINTPL_part_noshift gteINTPL_part_noshift_nf
52#define gteINTPL_part_shift gteINTPL_part_shift_nf
53#define gteMACtoRGB gteMACtoRGB_nf
54
55#undef __GTE_H__
59774ed0 56#endif
57
ef79bbde
P
58#ifndef __GTE_H__
59#define __GTE_H__
60
61#ifdef __cplusplus
62extern "C" {
63#endif
64
65#include "psxcommon.h"
66#include "r3000a.h"
67
6c0eefaf 68struct psxCP2Regs;
f74fb727 69
32631e6a 70extern const unsigned char gte_cycletab[64];
81dbbf4c 71
72int gteCheckStallRaw(u32 op_cycles, psxRegisters *regs);
73void gteCheckStall(u32 op);
74
ef79bbde
P
75void gteMFC2();
76void gteCFC2();
77void gteMTC2();
78void gteCTC2();
79void gteLWC2();
80void gteSWC2();
32631e6a 81void gteLWC2_stall();
82void gteSWC2_stall();
ef79bbde 83
6c0eefaf 84void gteRTPS(struct psxCP2Regs *regs);
85void gteOP(struct psxCP2Regs *regs);
86void gteNCLIP(struct psxCP2Regs *regs);
87void gteDPCS(struct psxCP2Regs *regs);
88void gteINTPL(struct psxCP2Regs *regs);
89void gteMVMVA(struct psxCP2Regs *regs);
90void gteNCDS(struct psxCP2Regs *regs);
91void gteNCDT(struct psxCP2Regs *regs);
92void gteCDP(struct psxCP2Regs *regs);
93void gteNCCS(struct psxCP2Regs *regs);
94void gteCC(struct psxCP2Regs *regs);
95void gteNCS(struct psxCP2Regs *regs);
96void gteNCT(struct psxCP2Regs *regs);
97void gteSQR(struct psxCP2Regs *regs);
98void gteDCPL(struct psxCP2Regs *regs);
99void gteDPCT(struct psxCP2Regs *regs);
100void gteAVSZ3(struct psxCP2Regs *regs);
101void gteAVSZ4(struct psxCP2Regs *regs);
102void gteRTPT(struct psxCP2Regs *regs);
103void gteGPF(struct psxCP2Regs *regs);
104void gteGPL(struct psxCP2Regs *regs);
105void gteNCCT(struct psxCP2Regs *regs);
106
107void gteSQR_part_noshift(struct psxCP2Regs *regs);
108void gteSQR_part_shift(struct psxCP2Regs *regs);
109void gteOP_part_noshift(struct psxCP2Regs *regs);
110void gteOP_part_shift(struct psxCP2Regs *regs);
111void gteDCPL_part(struct psxCP2Regs *regs);
112void gteGPF_part_noshift(struct psxCP2Regs *regs);
113void gteGPF_part_shift(struct psxCP2Regs *regs);
114
115void gteGPL_part_noshift(struct psxCP2Regs *regs);
116void gteGPL_part_shift(struct psxCP2Regs *regs);
117void gteDPCS_part_noshift(struct psxCP2Regs *regs);
118void gteDPCS_part_shift(struct psxCP2Regs *regs);
119void gteINTPL_part_noshift(struct psxCP2Regs *regs);
120void gteINTPL_part_shift(struct psxCP2Regs *regs);
121void gteMACtoRGB(struct psxCP2Regs *regs);
ef79bbde
P
122
123#ifdef __cplusplus
124}
125#endif
126#endif