arch/arm64: move store and restore LR out of loop

Signed-off-by: Xu Xingliang <xuxingliang@xiaomi.com>
This commit is contained in:
Xu Xingliang 2024-04-16 17:53:07 +08:00 committed by Xiang Xiao
parent ba25ee6725
commit 800501f44f

View File

@ -354,17 +354,18 @@ out:
*/ */
boot_stage_puts: boot_stage_puts:
stp xzr, x30, [sp, #-16]!
1:
ldrb w0, [x1], #1 /* Load next char */ ldrb w0, [x1], #1 /* Load next char */
cmp w0, 0 cmp w0, 0
beq 1f /* Exit on nul */ beq 2f /* Exit on nul */
stp xzr, x30, [sp, #-16]!
bl arm64_lowputc bl arm64_lowputc
b 1b /* Loop */
2:
ldp xzr, x30, [sp], #16 ldp xzr, x30, [sp], #16
b boot_stage_puts
1:
ret ret
.type boot_low_puts, %function; .type boot_stage_puts, %function;
#endif /* !CONFIG_ARCH_EARLY_PRINT */ #endif /* !CONFIG_ARCH_EARLY_PRINT */