From: notaz <notasas@gmail.com> Date: Sat, 15 Jan 2011 21:01:50 +0000 (+0200) Subject: drc: fix a bug with loop reg allocation X-Git-Tag: r4~3 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca7c944853bbb689040c530655e2da231c40db5b;p=pcsx_rearmed.git drc: fix a bug with loop reg allocation --- diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c index f1a0def6..680617a1 100644 --- a/libpcsxcore/new_dynarec/new_dynarec.c +++ b/libpcsxcore/new_dynarec/new_dynarec.c @@ -9693,6 +9693,13 @@ int new_recompile_block(int addr) else f_regmap[hr]=-1; } else if(branch_regs[i].regmap[hr]>=0) f_regmap[hr]=branch_regs[i].regmap[hr]; + // make sure mapping hasn't changed + int hr2; + for(hr2=0;hr2<HOST_REGS;hr2++) + if(hr2!=hr&&f_regmap[hr]==branch_regs[i].regmap[hr2]) { + f_regmap[hr]=-1; + break; + } if(itype[i+1]==STORE||itype[i+1]==STORELR||itype[i+1]==C1LS ||itype[i+1]==SHIFT||itype[i+1]==COP1||itype[i+1]==FLOAT ||itype[i+1]==FCOMP||itype[i+1]==FCONV