/** Copyright 2018, Haiku, Inc. All rights reserved.* Distributed under the terms of the MIT License.*/#include <asm_defs.h>.align 4FUNCTION(memcpy):FUNCTION(__aeabi_memcpy):push {r4, r5, r6, r7, r8, r10, r11, lr}add r11, sp, #24cmp r0, r1cmpne r2, #0bne .LBB0_2.LBB0_1:pop {r4, r5, r6, r7, r8, r10, r11, pc}.LBB0_2:orr r3, r1, r0tst r3, #3beq .LBB0_9eor r3, r1, r0and r7, r0, #3tst r3, #3mov r12, r2rsbeq r12, r7, #4cmp r2, #4movlo r12, r2sub r2, r2, r12cmp r12, #1blt .LBB0_9mvn r7, r12cmn r7, #2mvn r3, #1mvn r6, #1movgt r3, r7add r3, r12, r3add r3, r3, #2cmp r3, #16blo .LBB0_22cmn r7, #2movgt r6, r7add r7, r12, r6add r7, r7, #2add r6, r1, r7cmp r6, r0addhi r7, r0, r7cmphi r7, r1bhi .LBB0_22bic r4, r3, #15mov r7, r0add r5, r0, r4add lr, r1, r4sub r12, r12, r4mov r6, r4.LBB0_7:vld1.8 {d16, d17}, [r1]!subs r6, r6, #16vst1.8 {d16, d17}, [r7]!bne .LBB0_7cmp r3, r4bne .LBB0_23b .LBB0_25.LBB0_9:mov r5, r0mov r3, #0cmp r3, r2, lsr #2beq .LBB0_19.LBB0_10:bic r12, r2, #3lsr r3, r2, #2cmp r2, #16blo .LBB0_15add r7, r1, r12cmp r5, r7addlo r7, r5, r12cmplo r1, r7blo .LBB0_15and lr, r3, #3mov r7, r1sub r8, r3, lrmov r6, r5sub r3, r12, lr, lsl #2add r4, r5, r3add r3, r1, r3.LBB0_13:vld1.32 {d16, d17}, [r7]!subs r8, r8, #4vst1.32 {d16, d17}, [r6]!bne .LBB0_13cmp lr, #0bne .LBB0_16b .LBB0_18.LBB0_15:mov lr, r3mov r3, r1mov r4, r5.LBB0_16:add r6, lr, #1.LBB0_17:ldr r7, [r3], #4sub r6, r6, #1str r7, [r4], #4cmp r6, #1bgt .LBB0_17.LBB0_18:add r5, r5, r12add r1, r1, r12.LBB0_19:ands r2, r2, #3beq .LBB0_1add r2, r2, #1.LBB0_21:ldrb r3, [r1], #1sub r2, r2, #1strb r3, [r5], #1cmp r2, #1bgt .LBB0_21b .LBB0_1.LBB0_22:mov lr, r1mov r5, r0.LBB0_23:add r1, r12, #1.LBB0_24:ldrb r3, [lr], #1sub r1, r1, #1strb r3, [r5], #1cmp r1, #1bgt .LBB0_24.LBB0_25:mov r1, lrmov r3, #0cmp r3, r2, lsr #2bne .LBB0_10b .LBB0_19FUNCTION_END(memcpy)FUNCTION_END(__aeabi_memcpy)