memcpy.S (75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37) | memcpy.S (8ad8b72721d0f07fa02dbe71f901743f9c71c8e6) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2013 Regents of the University of California 4 */ 5 6#include <linux/linkage.h> 7#include <asm/asm.h> 8 9/* void *memcpy(void *, const void *, size_t) */ | 1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2013 Regents of the University of California 4 */ 5 6#include <linux/linkage.h> 7#include <asm/asm.h> 8 9/* void *memcpy(void *, const void *, size_t) */ |
10ENTRY(memcpy) | 10ENTRY(__memcpy) 11WEAK(memcpy) |
11 move t6, a0 /* Preserve return value */ 12 13 /* Defer to byte-oriented copy for small sizes */ 14 sltiu a3, a2, 128 15 bnez a3, 4f 16 /* Use word-oriented copy only if low-order bits match */ 17 andi a3, t6, SZREG-1 18 andi a4, a1, SZREG-1 --- 80 unchanged lines hidden (view full) --- 995: 100 lb a4, 0(a1) 101 addi a1, a1, 1 102 sb a4, 0(t6) 103 addi t6, t6, 1 104 bltu a1, a3, 5b 1056: 106 ret | 12 move t6, a0 /* Preserve return value */ 13 14 /* Defer to byte-oriented copy for small sizes */ 15 sltiu a3, a2, 128 16 bnez a3, 4f 17 /* Use word-oriented copy only if low-order bits match */ 18 andi a3, t6, SZREG-1 19 andi a4, a1, SZREG-1 --- 80 unchanged lines hidden (view full) --- 1005: 101 lb a4, 0(a1) 102 addi a1, a1, 1 103 sb a4, 0(t6) 104 addi t6, t6, 1 105 bltu a1, a3, 5b 1066: 107 ret |
107END(memcpy) | 108END(__memcpy) |