[4/4] LoongArch: Change to put magic number to .rodata section

Message ID 20230908093357.3119822-5-dengjianbo@loongson.cn
State Committed
Commit 780adf7aeab9308c02d89260df6ffa84dc2289a5
Headers
Series LoongArch: Add ifunc support for str{cpy, rchr}, |

Checks

Context Check Description
redhat-pt-bot/TryBot-apply_patch success Patch applied to master at the time it was sent
redhat-pt-bot/TryBot-32bit success Build for i686
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_glibc_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_glibc_build--master-arm success Testing passed

Commit Message

dengjianbo Sept. 8, 2023, 9:33 a.m. UTC
  Change to put magic number to .rodata section in memmove-lsx, and use
pcalau12i and %pc_lo12 with vld to get the data.
---
 .../loongarch/lp64/multiarch/memmove-lsx.S    | 20 +++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
  

Patch

diff --git a/sysdeps/loongarch/lp64/multiarch/memmove-lsx.S b/sysdeps/loongarch/lp64/multiarch/memmove-lsx.S
index 8a9367708d..5eb819ef74 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