aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornotaz2010-12-07 18:23:43 +0200
committernotaz2010-12-14 15:25:04 +0200
commit252c20fc731d772878a62473c09f1688b3cac3dc (patch)
tree51ccbacd05c082c1ac512839d2f0065e4a12f781
parent654e8cfb205bebc40b26761a900db354b4920931 (diff)
downloadpcsx_rearmed-252c20fc731d772878a62473c09f1688b3cac3dc.tar.gz
pcsx_rearmed-252c20fc731d772878a62473c09f1688b3cac3dc.tar.bz2
pcsx_rearmed-252c20fc731d772878a62473c09f1688b3cac3dc.zip
drc: try harder to mark upper regs as unneeded
-rw-r--r--libpcsxcore/new_dynarec/new_dynarec.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c
index 7495875..013af9b 100644
--- a/libpcsxcore/new_dynarec/new_dynarec.c
+++ b/libpcsxcore/new_dynarec/new_dynarec.c
@@ -6697,9 +6697,6 @@ void unneeded_registers(int istart,int iend,int r)
// Save it
unneeded_reg[i]=u;
unneeded_reg_upper[i]=uu;
-#ifdef FORCE32
- unneeded_reg_upper[i]=-1LL;
-#endif
/*
printf("ur (%d,%d) %x: ",istart,iend,start+i*4);
printf("U:");
@@ -6721,6 +6718,12 @@ void unneeded_registers(int istart,int iend,int r)
}
printf("\n");*/
}
+#ifdef FORCE32
+ for (i=iend;i>=istart;i--)
+ {
+ unneeded_reg_upper[i]=branch_unneeded_reg_upper[i]=-1LL;
+ }
+#endif
}
// Identify registers which are likely to contain 32-bit values