From: notaz Date: Sat, 29 Jan 2022 23:39:40 +0000 (+0200) Subject: drc: add apparently missing ROREG loading X-Git-Tag: r23~30 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=commitdiff_plain;h=5a18ce2e9a7dac901f6cfb5d0b42c58f23c53b29 drc: add apparently missing ROREG loading sjump_assemble had different loading for taken/not taken cases for whatever reason, and I added ROREG loading according to INVCP, which was (maybe?) erroneously missing for 'not taken' case. Fixes CTR crash shortly after starting driving. --- diff --git a/libpcsxcore/new_dynarec/new_dynarec.c b/libpcsxcore/new_dynarec/new_dynarec.c index 432f9da0..f9046bda 100644 --- a/libpcsxcore/new_dynarec/new_dynarec.c +++ b/libpcsxcore/new_dynarec/new_dynarec.c @@ -5855,7 +5855,9 @@ static void sjump_assemble(int i, const struct regstat *i_regs) wb_invalidate(regs[i].regmap,branch_regs[i].regmap,regs[i].dirty,ds_unneeded); load_regs(regs[i].regmap,branch_regs[i].regmap,dops[i+1].rs1,dops[i+1].rs2); address_generation(i+1,&branch_regs[i],0); - load_regs(regs[i].regmap,branch_regs[i].regmap,CCREG,CCREG); + if (ram_offset) + load_regs(regs[i].regmap,branch_regs[i].regmap,ROREG,ROREG); + load_regs(regs[i].regmap,branch_regs[i].regmap,CCREG,INVCP); ds_assemble(i+1,&branch_regs[i]); cc=get_reg(branch_regs[i].regmap,CCREG); if (cc == -1) {