18 lines
394 B
ArmAsm
18 lines
394 B
ArmAsm
# r3 = dest ptr
|
|
# r4 = src ptr
|
|
# r5 = size
|
|
# Clobbers r3, r4, r5, ctr
|
|
|
|
.versions PPC
|
|
|
|
copy_data_words:
|
|
addi r5, r5, 3
|
|
rlwinm r5, r5, 30, 2, 31 # r5 = number of words to copy
|
|
mtctr r5
|
|
subi r3, r3, 4 # r3 = r3 - 4 (so we can use stwu)
|
|
subi r4, r4, 4 # r4 = r4 - 4 (so we can use lwzu)
|
|
copy_word_again:
|
|
lwzu r5, [r4 + 4]
|
|
stwu [r3 + 4], r5
|
|
bdnz copy_word_again
|