1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
6 #include <asm/alternative-asm.h>
8 #include <asm/asmmacro.h>
10 #include <asm/export.h>
11 #include <asm/regdef.h>
14 bstrins.d \r0, \r0, 15, 8
15 bstrins.d \r0, \r0, 31, 16
16 bstrins.d \r0, \r0, 63, 32
19 SYM_FUNC_START(memset)
21 * Some CPUs support hardware unaligned access
23 ALTERNATIVE "b __memset_generic", \
24 "b __memset_fast", CPU_FEATURE_UAL
30 * void *__memset_generic(void *s, int c, size_t n)
36 SYM_FUNC_START(__memset_generic)
47 SYM_FUNC_END(__memset_generic)
50 * void *__memset_fast(void *s, int c, size_t n)
56 SYM_FUNC_START(__memset_fast)
63 /* fill a1 to 64 bits */
66 /* set 64 bytes at a time */
82 /* set the remaining bytes */
91 SYM_FUNC_END(__memset_fast)