aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/new_dynarec/new_dynarec.c
diff options
context:
space:
mode:
authornotaz2011-10-19 01:54:19 +0300
committernotaz2011-10-30 23:48:07 +0200
commit054175e91a93116649ea1802790cb842516a85dc (patch)
tree8d2d300c99d53b2cda81556c91d641ee46559380 /libpcsxcore/new_dynarec/new_dynarec.c
parent2167bef61daaeb12ceb59c3c577fc636e9011d6d (diff)
downloadpcsx_rearmed-054175e91a93116649ea1802790cb842516a85dc.tar.gz
pcsx_rearmed-054175e91a93116649ea1802790cb842516a85dc.tar.bz2
pcsx_rearmed-054175e91a93116649ea1802790cb842516a85dc.zip
drc: do MVMVA decoding; parametrize handlers
Diffstat (limited to 'libpcsxcore/new_dynarec/new_dynarec.c')
-rw-r--r--libpcsxcore/new_dynarec/new_dynarec.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c
index ce77e00..e2c63ed 100644
--- a/libpcsxcore/new_dynarec/new_dynarec.c
+++ b/libpcsxcore/new_dynarec/new_dynarec.c
@@ -9736,6 +9736,11 @@ int new_recompile_block(int addr)
cc=0;
}
#ifdef PCSX
+ else if(itype[i]==C2OP&&gte_cycletab[source[i]&0x3f]>2)
+ {
+ // GTE runs in parallel until accessed, divide by 2 for a rough guess
+ cc+=gte_cycletab[source[i]&0x3f]/2;
+ }
else if(/*itype[i]==LOAD||*/itype[i]==STORE||itype[i]==C1LS) // load causes weird timing issues
{
cc+=2; // 2 cycle penalty (after CLOCK_DIVIDER)