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)