diff options
author | notaz | 2011-10-25 00:01:44 +0300 |
---|---|---|
committer | notaz | 2011-10-30 23:48:08 +0200 |
commit | caeefe315aeb0c86e7c9135fac7d79d8e4e4ebd4 (patch) | |
tree | f12b24be17995d8123b3a9ae72b240eb9fa242fe | |
parent | 19776aef6da17a49e95e1bc924b26bcf49713c75 (diff) | |
download | pcsx_rearmed-caeefe315aeb0c86e7c9135fac7d79d8e4e4ebd4.tar.gz pcsx_rearmed-caeefe315aeb0c86e7c9135fac7d79d8e4e4ebd4.tar.bz2 pcsx_rearmed-caeefe315aeb0c86e7c9135fac7d79d8e4e4ebd4.zip |
drc: fix mtc0 argument
HOST_CCREG is not always cc..
-rw-r--r-- | libpcsxcore/new_dynarec/assem_arm.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libpcsxcore/new_dynarec/assem_arm.c b/libpcsxcore/new_dynarec/assem_arm.c index 3a86dba..dda2a27 100644 --- a/libpcsxcore/new_dynarec/assem_arm.c +++ b/libpcsxcore/new_dynarec/assem_arm.c @@ -4215,8 +4215,7 @@ void cop0_assemble(int i,struct regstat *i_regs) emit_writeword(HOST_CCREG,(int)&last_count); emit_movimm(0,HOST_CCREG); emit_storereg(CCREG,HOST_CCREG); - if(s!=1) - emit_mov(s,1); + emit_loadreg(rs1[i],1); emit_movimm(copr,0); emit_call((int)pcsx_mtc0_ds); return; @@ -4230,7 +4229,9 @@ void cop0_assemble(int i,struct regstat *i_regs) //else if(copr==12&&is_delayslot) emit_call((int)MTC0_R12); //else #ifdef PCSX - if(s!=1) + if(s==HOST_CCREG) + emit_loadreg(rs1[i],1); + else if(s!=1) emit_mov(s,1); emit_movimm(copr,0); emit_call((int)pcsx_mtc0); |