aboutsummaryrefslogtreecommitdiff
path: root/libpcsxcore/new_dynarec
diff options
context:
space:
mode:
authornotaz2011-09-18 19:45:38 +0300
committernotaz2011-09-19 19:01:47 +0300
commit748406cf9b74d0cd0537768d68cbae926394ea5b (patch)
tree1aa6bc7730e2906c49ef83bff4129ead75e52270 /libpcsxcore/new_dynarec
parent269bb29a66d856f02f00898a6f0ce961842ca248 (diff)
downloadpcsx_rearmed-748406cf9b74d0cd0537768d68cbae926394ea5b.tar.gz
pcsx_rearmed-748406cf9b74d0cd0537768d68cbae926394ea5b.tar.bz2
pcsx_rearmed-748406cf9b74d0cd0537768d68cbae926394ea5b.zip
drc: fix $ra evicting on JAL
hopefully for good this time
Diffstat (limited to 'libpcsxcore/new_dynarec')
-rw-r--r--libpcsxcore/new_dynarec/new_dynarec.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c
index 05c54ee..573d0cd 100644
--- a/libpcsxcore/new_dynarec/new_dynarec.c
+++ b/libpcsxcore/new_dynarec/new_dynarec.c
@@ -690,6 +690,10 @@ void lsn(u_char hsn[], int i, int *preferred_reg)
hsn[RHASH]=1;
hsn[RHTBL]=1;
}
+ // due to the way JAL is currently done we need DS not to evict $ra
+ if(i>0&&itype[i-1]==UJUMP&&rt1[i-1]==31) {
+ hsn[31]=0;
+ }
// Coprocessor load/store needs FTEMP, even if not declared
if(itype[i]==C1LS||itype[i]==C2LS) {
hsn[FTEMP]=0;