.endm
.macro memhandler_post
- ldr w2, [rFP, #LO_next_interupt]
- ldr w1, [rFP, #LO_cycle]
- sub w0, w1, w2
- str w2, [rFP, #LO_last_count]
+ ldr w0, [rFP, #LO_next_interupt]
+ ldr w2, [rFP, #LO_cycle] // memhandlers can modify cc, like dma
+ str w0, [rFP, #LO_last_count]
+ sub w0, w2, w0
.endm
FUNCTION(do_memhandler_pre):
FUNCTION(jump_handle_swl):
/* w0 = address, w1 = data, w2 = cycles */
ldr x3, [rFP, #LO_mem_wtab]
- mov w4, w0, lsr #12
+ orr w4, wzr, w0, lsr #12
ldr x3, [x3, w4, uxtw #3]
adds x3, x3, x3
bcs 4f
FUNCTION(jump_handle_swr):
/* w0 = address, w1 = data, w2 = cycles */
ldr x3, [rFP, #LO_mem_wtab]
- mov w4, w0, lsr #12
+ orr w4, wzr, w0, lsr #12
ldr x3, [x3, w4, uxtw #3]
adds x3, x3, x3
bcs 4f