.section .text .global memcpy memcpy: mov x3, x0 0: cbz x2, 1f ldrb w4, [x1], #1 strb w4, [x0], #1 sub x2, x2, #1 b 0b 1: mov x0, x3 ret .global memset memset: mov x3, x0 0: cbz x2, 1f strb w1, [x0], #1 sub x2, x2, #1 b 0b 1: mov x0, x3 ret .global memmove memmove: mov x3, x0 mov x5, x2 cmp x0, x1 b.gt 1f 0: cbz x2, 2f ldrb w4, [x1], #1 strb w4, [x0], #1 sub x2, x2, #1 b 0b 1: sub x5, x5, #1 cbz x2, 2f ldrb w4, [x1, x5] strb w4, [x0, x5] sub x2, x2, #1 b 1b 2: mov x0, x3 ret .global memcmp memcmp: mov x3, xzr 0: cbz x2, 1f ldrb w3, [x0], #1 ldrb w4, [x1], #1 sub w3, w3, w4 cbnz w3, 1f sub x2, x2, #1 b 0b 1: sxtw x0, w3 mov x0, x3 ret