X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fnew_dynarec%2Flinkage_arm.S;h=7a6d2edd827c2dfd04c2bbaae5497124cdfdc9ea;hb=9165d434d935746da54484381ebbee754e899680;hp=513911cabaf0a48024a8f2ec4591da0e957fd855;hpb=104df9d3b15f92d5c73d2d6beb6f01f0cc158e03;p=pcsx_rearmed.git diff --git a/libpcsxcore/new_dynarec/linkage_arm.S b/libpcsxcore/new_dynarec/linkage_arm.S index 513911ca..7a6d2edd 100644 --- a/libpcsxcore/new_dynarec/linkage_arm.S +++ b/libpcsxcore/new_dynarec/linkage_arm.S @@ -30,7 +30,7 @@ #define ndrc_try_restore_block ESYM(ndrc_try_restore_block) #define ndrc_get_addr_ht ESYM(ndrc_get_addr_ht) #define ndrc_get_addr_ht_param ESYM(ndrc_get_addr_ht_param) -#define ndrc_invalidate_addr ESYM(ndrc_invalidate_addr) +#define ndrc_write_invalidate_one ESYM(ndrc_write_invalidate_one) #define gen_interupt ESYM(gen_interupt) #define gteCheckStallRaw ESYM(gteCheckStallRaw) #define psxException ESYM(psxException) @@ -242,6 +242,7 @@ FUNCTION(cc_interrupt): @@ str r10, [fp, #LO_reg_cop0+36] /* Count - not on PSX */ mov r10, lr + add r0, fp, #(LO_psxRegs + 34*4) /* CP0 */ bl gen_interupt mov lr, r10 ldr r10, [fp, #LO_cycle] @@ -291,7 +292,7 @@ FUNCTION(jump_break): b call_psxException FUNCTION(jump_syscall_ds): mov r0, #0x20 - mov r1, #1 + mov r1, #2 b call_psxException FUNCTION(jump_syscall): mov r0, #0x20 @@ -301,7 +302,8 @@ call_psxException: ldr r3, [fp, #LO_last_count] str r2, [fp, #LO_pcaddr] add r10, r3, r10 - str r10, [fp, #LO_cycle] /* PCSX cycles */ + str r10, [fp, #LO_cycle] /* PCSX cycles */ + add r2, fp, #(LO_psxRegs + 34*4) /* CP0 */ bl psxException /* note: psxException might do recursive recompiler call from it's HLE code, @@ -401,7 +403,7 @@ invalidate_addr_call: ldr lr, [fp, #LO_inv_code_end] cmp r0, r12 cmpcs lr, r0 - blcc ndrc_invalidate_addr + blcc ndrc_write_invalidate_one ldmia fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, pc} .size invalidate_addr_call, .-invalidate_addr_call