aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/new_dynarec/new_dynarec.c
diff options
context:
space:
mode:
authornotaz2011-10-23 17:47:38 +0300
committernotaz2011-10-30 23:48:08 +0200
commiteaa11918b84c8486618b597489537043eeaccbe0 (patch)
treecf17898b4ee6811631d048ce8051030767d85aab /libpcsxcore/new_dynarec/new_dynarec.c
parent0ff8c62ced8c9a920ac208c6d965b138c5c124dd (diff)
downloadpcsx_rearmed-eaa11918b84c8486618b597489537043eeaccbe0.tar.gz
pcsx_rearmed-eaa11918b84c8486618b597489537043eeaccbe0.tar.bz2
pcsx_rearmed-eaa11918b84c8486618b597489537043eeaccbe0.zip
drc: detect dead gte reads too
Diffstat (limited to 'libpcsxcore/new_dynarec/new_dynarec.c')
-rw-r--r--libpcsxcore/new_dynarec/new_dynarec.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c
index b2eb21b..4b70f33 100644
--- a/libpcsxcore/new_dynarec/new_dynarec.c
+++ b/libpcsxcore/new_dynarec/new_dynarec.c
@@ -7015,6 +7015,8 @@ void unneeded_registers(int istart,int iend,int r)
uu&=~(1LL<<us1[i]);
uu&=~(1LL<<us2[i]);
gte_u&=~gte_rs[i];
+ if(gte_rs[i]&&rt1[i]&&(unneeded_reg[i+1]&(1ll<<rt1[i])))
+ gte_u|=gte_rs[i]; // MFC2/CFC2 to dead register, unneeded
// Source-target dependencies
uu&=~(tdep<<dep1[i]);
uu&=~(tdep<<dep2[i]);