aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/psxinterpreter.c
diff options
context:
space:
mode:
authornotaz2011-10-21 02:18:46 +0300
committernotaz2011-10-30 23:48:08 +0200
commitf74fb7275e1d6a8e8eb5ce8e3f8a690d5d688f1c (patch)
treed50176125beb479e476121a0ef8fa3a6496aa9fc /libpcsxcore/psxinterpreter.c
parent8575a877a535931198a3d0105cf0e6675a9d0c17 (diff)
downloadpcsx_rearmed-f74fb7275e1d6a8e8eb5ce8e3f8a690d5d688f1c.tar.gz
pcsx_rearmed-f74fb7275e1d6a8e8eb5ce8e3f8a690d5d688f1c.tar.bz2
pcsx_rearmed-f74fb7275e1d6a8e8eb5ce8e3f8a690d5d688f1c.zip
gte: pass a pointer to registers as argument
no more need to load psxRegs in each function and all registers are reachable by ldrh/strh.
Diffstat (limited to 'libpcsxcore/psxinterpreter.c')
-rw-r--r--libpcsxcore/psxinterpreter.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libpcsxcore/psxinterpreter.c b/libpcsxcore/psxinterpreter.c
index 84e1da5..f9833a4 100644
--- a/libpcsxcore/psxinterpreter.c
+++ b/libpcsxcore/psxinterpreter.c
@@ -46,7 +46,7 @@ void (*psxBSC[64])();
void (*psxSPC[64])();
void (*psxREG[32])();
void (*psxCP0[32])();
-void (*psxCP2[64])();
+void (*psxCP2[64])(psxCP2Regs *regs);
void (*psxCP2BSC[32])();
static void delayRead(int reg, u32 bpc) {
@@ -833,10 +833,10 @@ void psxCOP0() {
}
void psxCOP2() {
- psxCP2[_Funct_]();
+ psxCP2[_Funct_]((psxCP2Regs *)&psxRegs.CP2D);
}
-void psxBASIC() {
+void psxBASIC(psxCP2Regs *regs) {
psxCP2BSC[_Rs_]();
}
@@ -882,7 +882,7 @@ void (*psxCP0[32])() = {
psxNULL, psxNULL, psxNULL, psxNULL, psxNULL, psxNULL, psxNULL, psxNULL
};
-void (*psxCP2[64])() = {
+void (*psxCP2[64])(psxCP2Regs *regs) = {
psxBASIC, gteRTPS , psxNULL , psxNULL, psxNULL, psxNULL , gteNCLIP, psxNULL, // 00
psxNULL , psxNULL , psxNULL , psxNULL, gteOP , psxNULL , psxNULL , psxNULL, // 08
gteDPCS , gteINTPL, gteMVMVA, gteNCDS, gteCDP , psxNULL , gteNCDT , psxNULL, // 10