/* note: psxException might do recursive recompiler call from it's HLE code,
* so be ready for this */
FUNCTION(jump_to_new_pc):
+ ldr w2, [rFP, #LO_stop]
ldr w1, [rFP, #LO_next_interupt]
ldr rCC, [rFP, #LO_cycle]
ldr w0, [rFP, #LO_pcaddr]
sub rCC, rCC, w1
str w1, [rFP, #LO_last_count]
+ cbnz w2, new_dyna_leave
bl ndrc_get_addr_ht
br x0
.size jump_to_new_pc, .-jump_to_new_pc
.align 2
.macro memhandler_pre
- /* w0 = adddr/data, x1 = rhandler, w2 = cycles, x3 = whandler */
+ /* w0 = addr/data, x1 = rhandler, w2 = cycles, x3 = whandler */
ldr w4, [rFP, #LO_last_count]
add w4, w4, w2
str w4, [rFP, #LO_cycle]
add rCC, rCC, w0
ret
+#ifdef DRC_DBG
+#undef do_insn_cmp
+FUNCTION(do_insn_cmp_arm64):
+ stp x2, x3, [sp, #(SSP_CALLEE_REGS + 2*8)]
+ stp x4, x5, [sp, #(SSP_CALLEE_REGS + 4*8)]
+ stp x6, x7, [sp, #(SSP_CALLEE_REGS + 6*8)]
+ stp x8, x9, [sp, #(SSP_CALLEE_REGS + 8*8)]
+ stp x10, x11, [sp, #(SSP_CALLEE_REGS + 10*8)]
+ stp x12, x13, [sp, #(SSP_CALLEE_REGS + 12*8)]
+ stp x14, x15, [sp, #(SSP_CALLEE_REGS + 14*8)]
+ stp x16, x17, [sp, #(SSP_CALLEE_REGS + 16*8)]
+ stp x18, x30, [sp, #(SSP_CALLEE_REGS + 18*8)]
+ bl do_insn_cmp
+ ldp x2, x3, [sp, #(SSP_CALLEE_REGS + 2*8)]
+ ldp x4, x5, [sp, #(SSP_CALLEE_REGS + 4*8)]
+ ldp x6, x7, [sp, #(SSP_CALLEE_REGS + 6*8)]
+ ldp x8, x9, [sp, #(SSP_CALLEE_REGS + 8*8)]
+ ldp x10, x11, [sp, #(SSP_CALLEE_REGS + 10*8)]
+ ldp x12, x13, [sp, #(SSP_CALLEE_REGS + 12*8)]
+ ldp x14, x15, [sp, #(SSP_CALLEE_REGS + 14*8)]
+ ldp x16, x17, [sp, #(SSP_CALLEE_REGS + 16*8)]
+ ldp x18, x30, [sp, #(SSP_CALLEE_REGS + 18*8)]
+ ret
+#endif