21 lines
480 B
ArmAsm
21 lines
480 B
ArmAsm
mflr r8
|
|
b get_patch_data_ptr
|
|
get_patch_data_ptr_ret:
|
|
mflr r7 # r7 = patch header
|
|
apply_patch:
|
|
addi r4, r7, 8 # r4 = start of patch data
|
|
lwz r3, [r4 - 8] # r3 = patch dest address
|
|
lwz r5, [r4 - 4] # r5 = patch data size
|
|
or r0, r3, r5
|
|
cmplwi r0, 0
|
|
mtlr r8
|
|
beqlr
|
|
add r7, r4, r5 # r7 = next patch header
|
|
.include CopyCode
|
|
b apply_patch
|
|
|
|
get_patch_data_ptr:
|
|
bl get_patch_data_ptr_ret
|
|
|
|
first_patch_header:
|