From ea5ab7aa5db3b769df6aaa3f0e7928033c9af75b Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Thu, 19 May 2022 01:59:11 +0300 Subject: [PATCH] implement _cu_memset in AArch64 --- arch/AArch64.S | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/arch/AArch64.S b/arch/AArch64.S index 14bbbc3..3ae5064 100644 --- a/arch/AArch64.S +++ b/arch/AArch64.S @@ -102,6 +102,31 @@ _cu_memcmp: ret _cu_memset: + // x0 - dst, x1 - val, x2 - size + orr x4, x1, x1, lsl #0 + orr x4, x4, x1, lsl #8 + orr x4, x4, x1, lsl #16 + orr x4, x4, x1, lsl #24 + orr x4, x4, x1, lsl #32 + orr x4, x4, x1, lsl #40 + orr x4, x4, x1, lsl #48 + orr x4, x4, x1, lsl #56 + + mov x3, x2, lsr #3 + tst x3, x3 + beq .set1_ +.set8: + str x4, [x0], #8 + subs x3, x3, #1 + bne .set8 +.set1_: + and x3, x2, #7 + beq .set0 +.set1: + strb w4, [x0], #1 + subs x3, x3, #1 + bne .set1 +.set0: ret cu_memzero: