notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drc: handle regs-not-in-psxRegs case better
[pcsx_rearmed.git]
/
libpcsxcore
/
new_dynarec
/
linkage_arm.S
diff --git
a/libpcsxcore/new_dynarec/linkage_arm.S
b/libpcsxcore/new_dynarec/linkage_arm.S
index
513911c
..
f97b2d0
100644
(file)
--- 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_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)
#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
@@ 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]
bl gen_interupt
mov lr, r10
ldr r10, [fp, #LO_cycle]
@@
-301,7
+302,8
@@
call_psxException:
ldr r3, [fp, #LO_last_count]
str r2, [fp, #LO_pcaddr]
add r10, r3, r10
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,
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
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
ldmia fp, {r0, r1, r2, r3, EXTRA_UNSAVED_REGS r12, pc}
.size invalidate_addr_call, .-invalidate_addr_call