aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordengjianbo <dengjianbo@loongson.cn>2023-09-13 15:35:01 +0800
committercaiyinyu <caiyinyu@loongson.cn>2023-09-15 09:07:47 +0800
commit780adf7aeab9308c02d89260df6ffa84dc2289a5 (patch)
treec389053ac54a8625a287fbf541d6c37d186715a9
parent24279aecf34a830a744038cb922d94b5a2d9c1cb (diff)
downloadglibc-780adf7aeab9308c02d89260df6ffa84dc2289a5.zip
glibc-780adf7aeab9308c02d89260df6ffa84dc2289a5.tar.gz
glibc-780adf7aeab9308c02d89260df6ffa84dc2289a5.tar.bz2
LoongArch: Change to put magic number to .rodata section
Change to put magic number to .rodata section in memmove-lsx, and use pcalau12i and %pc_lo12 with vld to get the data.
-rw-r--r--sysdeps/loongarch/lp64/multiarch/memmove-lsx.S20
1 files changed, 10 insertions, 10 deletions
diff --git a/sysdeps/loongarch/lp64/multiarch/memmove-lsx.S b/sysdeps/loongarch/lp64/multiarch/memmove-lsx.S
index 8a93677..5eb819e 100644
--- a/sysdeps/loongarch/lp64/multiarch/memmove-lsx.S
+++ b/sysdeps/loongarch/lp64/multiarch/memmove-lsx.S
@@ -209,13 +209,10 @@ L(al_less_16):
nop
-L(magic_num):
- .dword 0x0706050403020100
- .dword 0x0f0e0d0c0b0a0908
L(unaligned):
- pcaddi t2, -4
+ pcalau12i t2, %pc_hi20(L(INDEX))
bstrins.d a1, zero, 3, 0
- vld vr8, t2, 0
+ vld vr8, t2, %pc_lo12(L(INDEX))
vld vr0, a1, 0
vld vr1, a1, 16
@@ -413,13 +410,10 @@ L(back_al_less_16):
vst vr1, a0, 0
jr ra
-L(magic_num_2):
- .dword 0x0706050403020100
- .dword 0x0f0e0d0c0b0a0908
L(back_unaligned):
- pcaddi t2, -4
+ pcalau12i t2, %pc_hi20(L(INDEX))
bstrins.d a4, zero, 3, 0
- vld vr8, t2, 0
+ vld vr8, t2, %pc_lo12(L(INDEX))
vld vr0, a4, 0
vld vr1, a4, -16
@@ -529,6 +523,12 @@ L(back_un_less_16):
jr ra
END(MEMMOVE_NAME)
+ .section .rodata.cst16,"M",@progbits,16
+ .align 4
+L(INDEX):
+ .dword 0x0706050403020100
+ .dword 0x0f0e0d0c0b0a0908
+
libc_hidden_builtin_def (MEMCPY_NAME)
libc_hidden_builtin_def (MEMMOVE_NAME)
#endif