From: notaz Date: Wed, 1 Dec 2010 23:11:39 +0000 (+0200) Subject: drc: fix unsaved register X-Git-Tag: r1~60 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=666a299d761b91429d2952f55dac9270e0fb930e;p=pcsx_rearmed.git drc: fix unsaved register it caused invalidate_addr() sometimes to be called with bad address. --- diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c index 3249e574..95d433fb 100644 --- a/libpcsxcore/new_dynarec/new_dynarec.c +++ b/libpcsxcore/new_dynarec/new_dynarec.c @@ -2952,7 +2952,7 @@ void store_assemble(int i,struct regstat *i_regs) int addr,temp; int offset; int jaddr=0,jaddr2,type; - int memtarget,c=0; + int memtarget=0,c=0; int agr=AGEN1+(i&1); u_int hr,reglist=0; th=get_reg(i_regs->regmap,rs2[i]|64); @@ -3068,6 +3068,9 @@ void store_assemble(int i,struct regstat *i_regs) } type=STORED_STUB; } + if(!using_tlb&&(!c||memtarget)) + // addr could be a temp, make sure it survives STORE*_STUB + reglist|=1<