overwrite dynarec related code with upstream version
[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
630b122b 70extern const unsigned char gte_cycletab[64];
71
72int gteCheckStallRaw(u32 op_cycles, psxRegisters *regs);
73void gteCheckStall(u32 op);
74
75// for lightrec
6f1edc3c
PC
76u32 MFC2(int reg);
77void MTC2(u32 value, int reg);
78void CTC2(u32 value, int reg);
79
ef79bbde
P
80void gteMFC2();
81void gteCFC2();
82void gteMTC2();
83void gteCTC2();
84void gteLWC2();
85void gteSWC2();
630b122b 86void gteLWC2_stall();
87void gteSWC2_stall();
ef79bbde 88
6c0eefaf 89void gteRTPS(struct psxCP2Regs *regs);
90void gteOP(struct psxCP2Regs *regs);
91void gteNCLIP(struct psxCP2Regs *regs);
92void gteDPCS(struct psxCP2Regs *regs);
93void gteINTPL(struct psxCP2Regs *regs);
94void gteMVMVA(struct psxCP2Regs *regs);
95void gteNCDS(struct psxCP2Regs *regs);
96void gteNCDT(struct psxCP2Regs *regs);
97void gteCDP(struct psxCP2Regs *regs);
98void gteNCCS(struct psxCP2Regs *regs);
99void gteCC(struct psxCP2Regs *regs);
100void gteNCS(struct psxCP2Regs *regs);
101void gteNCT(struct psxCP2Regs *regs);
102void gteSQR(struct psxCP2Regs *regs);
103void gteDCPL(struct psxCP2Regs *regs);
104void gteDPCT(struct psxCP2Regs *regs);
105void gteAVSZ3(struct psxCP2Regs *regs);
106void gteAVSZ4(struct psxCP2Regs *regs);
107void gteRTPT(struct psxCP2Regs *regs);
108void gteGPF(struct psxCP2Regs *regs);
109void gteGPL(struct psxCP2Regs *regs);
110void gteNCCT(struct psxCP2Regs *regs);
111
112void gteSQR_part_noshift(struct psxCP2Regs *regs);
113void gteSQR_part_shift(struct psxCP2Regs *regs);
114void gteOP_part_noshift(struct psxCP2Regs *regs);
115void gteOP_part_shift(struct psxCP2Regs *regs);
116void gteDCPL_part(struct psxCP2Regs *regs);
117void gteGPF_part_noshift(struct psxCP2Regs *regs);
118void gteGPF_part_shift(struct psxCP2Regs *regs);
119
120void gteGPL_part_noshift(struct psxCP2Regs *regs);
121void gteGPL_part_shift(struct psxCP2Regs *regs);
122void gteDPCS_part_noshift(struct psxCP2Regs *regs);
123void gteDPCS_part_shift(struct psxCP2Regs *regs);
124void gteINTPL_part_noshift(struct psxCP2Regs *regs);
125void gteINTPL_part_shift(struct psxCP2Regs *regs);
126void gteMACtoRGB(struct psxCP2Regs *regs);
ef79bbde
P
127
128#ifdef __cplusplus
129}
130#endif
131#endif