aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authornotaz2011-11-01 22:02:08 +0200
committernotaz2011-11-01 22:02:31 +0200
commit587a5b1caa1ceb8ea085d4dec0d2b4fbf69226c1 (patch)
treef5964e36d6f2aadfe2520c8697fb7d45aff6ea93 /libpcsxcore
parentdb481db412d4dd180c49507dff5b054852c9acbf (diff)
downloadpcsx_rearmed-587a5b1caa1ceb8ea085d4dec0d2b4fbf69226c1.tar.gz
pcsx_rearmed-587a5b1caa1ceb8ea085d4dec0d2b4fbf69226c1.tar.bz2
pcsx_rearmed-587a5b1caa1ceb8ea085d4dec0d2b4fbf69226c1.zip
drc/gte: decode MVMVA data deps
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/new_dynarec/new_dynarec.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c
index fb39cf0..533ec79 100644
--- a/libpcsxcore/new_dynarec/new_dynarec.c
+++ b/libpcsxcore/new_dynarec/new_dynarec.c
@@ -8699,6 +8699,12 @@ int new_recompile_block(int addr)
gte_rs[i]=gte_reg_reads[source[i]&0x3f];
gte_rt[i]=gte_reg_writes[source[i]&0x3f];
gte_rt[i]|=1ll<<63; // every op changes flags
+ if((source[i]&0x3f)==GTE_MVMVA) {
+ int v = (source[i] >> 15) & 3;
+ gte_rs[i]&=~0xe3fll;
+ if(v==3) gte_rs[i]|=0xe00ll;
+ else gte_rs[i]|=3ll<<(v*2);
+ }
break;
case FLOAT:
case FCONV: