.text
.align 2
-/* r0 = virtual target address */
-/* r1 = instruction to patch */
-.macro dyna_linker_main
- /* XXX TODO: should be able to do better than this... */
- bl get_addr_ht
- br x0
-.endm
-
-
FUNCTION(dyna_linker):
/* r0 = virtual target address */
/* r1 = instruction to patch */
- dyna_linker_main
+ bl ndrc_get_addr_ht
+ br x0
.size dyna_linker, .-dyna_linker
-FUNCTION(exec_pagefault):
- /* r0 = instruction pointer */
- /* r1 = fault address */
- /* r2 = cause */
- bl abort
- .size exec_pagefault, .-exec_pagefault
-
-/* Special dynamic linker for the case where a page fault
- may occur in a branch delay slot */
-FUNCTION(dyna_linker_ds):
- /* r0 = virtual target address */
- /* r1 = instruction to patch */
- dyna_linker_main
- .size dyna_linker_ds, .-dyna_linker_ds
-
.align 2
FUNCTION(cc_interrupt):
ldr w0, [rFP, #LO_last_count]
ret
2:
ldr w0, [rFP, #LO_pcaddr]
- bl get_addr_ht
+ bl ndrc_get_addr_ht
br x0
.size cc_interrupt, .-cc_interrupt
str w1, [rFP, #LO_reg_cop0+48] /* Status */
str w2, [rFP, #LO_reg_cop0+52] /* Cause */
add w0, w3, #0x80
- bl get_addr_ht
+ bl ndrc_get_addr_ht
br x0
.size fp_exception, .-fp_exception
.align 2
ldr w0, [rFP, #LO_pcaddr]
sub rCC, rCC, w1
str w1, [rFP, #LO_last_count]
- bl get_addr_ht
+ bl ndrc_get_addr_ht
br x0
.size jump_to_new_pc, .-jump_to_new_pc
ldr w0, [rFP, #LO_pcaddr]
str w1, [rFP, #LO_last_count]
sub rCC, w2, w1
- bl get_addr_ht
+ bl ndrc_get_addr_ht
br x0
.size new_dyna_start, .-new_dyna_start