summaryrefslogtreecommitdiff
path: root/LoongArch-Delete-excessively-allocated-memory.patch
diff options
context:
space:
mode:
Diffstat (limited to 'LoongArch-Delete-excessively-allocated-memory.patch')
-rw-r--r--LoongArch-Delete-excessively-allocated-memory.patch109
1 files changed, 109 insertions, 0 deletions
diff --git a/LoongArch-Delete-excessively-allocated-memory.patch b/LoongArch-Delete-excessively-allocated-memory.patch
new file mode 100644
index 0000000..f7d36a6
--- /dev/null
+++ b/LoongArch-Delete-excessively-allocated-memory.patch
@@ -0,0 +1,109 @@
+From 44f757a6364a546359809d48c76b3debd26e77d4 Mon Sep 17 00:00:00 2001
+From: caiyinyu <caiyinyu@loongson.cn>
+Date: Thu, 26 Oct 2023 17:27:21 +0800
+Subject: [PATCH 1/9] LoongArch: Delete excessively allocated memory.
+
+Backported from glibc 2.39 development.
+---
+ sysdeps/loongarch/dl-trampoline.h | 68 +++++++++++++++----------------
+ 1 file changed, 34 insertions(+), 34 deletions(-)
+
+diff --git a/sysdeps/loongarch/dl-trampoline.h b/sysdeps/loongarch/dl-trampoline.h
+index 02375286f8..99fcacab76 100644
+--- a/sysdeps/loongarch/dl-trampoline.h
++++ b/sysdeps/loongarch/dl-trampoline.h
+@@ -19,9 +19,9 @@
+ /* Assembler veneer called from the PLT header code for lazy loading.
+ The PLT header passes its own args in t0-t2. */
+ #ifdef USE_LASX
+-# define FRAME_SIZE (-((-9 * SZREG - 8 * SZFREG - 8 * SZXREG) & ALMASK))
++# define FRAME_SIZE (-((-9 * SZREG - 8 * SZXREG) & ALMASK))
+ #elif defined USE_LSX
+-# define FRAME_SIZE (-((-9 * SZREG - 8 * SZFREG - 8 * SZVREG) & ALMASK))
++# define FRAME_SIZE (-((-9 * SZREG - 8 * SZVREG) & ALMASK))
+ #elif !defined __loongarch_soft_float
+ # define FRAME_SIZE (-((-9 * SZREG - 8 * SZFREG) & ALMASK))
+ #else
+@@ -44,23 +44,23 @@ ENTRY (_dl_runtime_resolve)
+ REG_S a7, sp, 8*SZREG
+
+ #ifdef USE_LASX
+- xvst xr0, sp, 9*SZREG + 8*SZFREG + 0*SZXREG
+- xvst xr1, sp, 9*SZREG + 8*SZFREG + 1*SZXREG
+- xvst xr2, sp, 9*SZREG + 8*SZFREG + 2*SZXREG
+- xvst xr3, sp, 9*SZREG + 8*SZFREG + 3*SZXREG
+- xvst xr4, sp, 9*SZREG + 8*SZFREG + 4*SZXREG
+- xvst xr5, sp, 9*SZREG + 8*SZFREG + 5*SZXREG
+- xvst xr6, sp, 9*SZREG + 8*SZFREG + 6*SZXREG
+- xvst xr7, sp, 9*SZREG + 8*SZFREG + 7*SZXREG
++ xvst xr0, sp, 9*SZREG + 0*SZXREG
++ xvst xr1, sp, 9*SZREG + 1*SZXREG
++ xvst xr2, sp, 9*SZREG + 2*SZXREG
++ xvst xr3, sp, 9*SZREG + 3*SZXREG
++ xvst xr4, sp, 9*SZREG + 4*SZXREG
++ xvst xr5, sp, 9*SZREG + 5*SZXREG
++ xvst xr6, sp, 9*SZREG + 6*SZXREG
++ xvst xr7, sp, 9*SZREG + 7*SZXREG
+ #elif defined USE_LSX
+- vst vr0, sp, 9*SZREG + 8*SZFREG + 0*SZVREG
+- vst vr1, sp, 9*SZREG + 8*SZFREG + 1*SZVREG
+- vst vr2, sp, 9*SZREG + 8*SZFREG + 2*SZVREG
+- vst vr3, sp, 9*SZREG + 8*SZFREG + 3*SZVREG
+- vst vr4, sp, 9*SZREG + 8*SZFREG + 4*SZVREG
+- vst vr5, sp, 9*SZREG + 8*SZFREG + 5*SZVREG
+- vst vr6, sp, 9*SZREG + 8*SZFREG + 6*SZVREG
+- vst vr7, sp, 9*SZREG + 8*SZFREG + 7*SZVREG
++ vst vr0, sp, 9*SZREG + 0*SZVREG
++ vst vr1, sp, 9*SZREG + 1*SZVREG
++ vst vr2, sp, 9*SZREG + 2*SZVREG
++ vst vr3, sp, 9*SZREG + 3*SZVREG
++ vst vr4, sp, 9*SZREG + 4*SZVREG
++ vst vr5, sp, 9*SZREG + 5*SZVREG
++ vst vr6, sp, 9*SZREG + 6*SZVREG
++ vst vr7, sp, 9*SZREG + 7*SZVREG
+ #elif !defined __loongarch_soft_float
+ FREG_S fa0, sp, 9*SZREG + 0*SZFREG
+ FREG_S fa1, sp, 9*SZREG + 1*SZFREG
+@@ -92,23 +92,23 @@ ENTRY (_dl_runtime_resolve)
+ REG_L a7, sp, 8*SZREG
+
+ #ifdef USE_LASX
+- xvld xr0, sp, 9*SZREG + 8*SZFREG + 0*SZXREG
+- xvld xr1, sp, 9*SZREG + 8*SZFREG + 1*SZXREG
+- xvld xr2, sp, 9*SZREG + 8*SZFREG + 2*SZXREG
+- xvld xr3, sp, 9*SZREG + 8*SZFREG + 3*SZXREG
+- xvld xr4, sp, 9*SZREG + 8*SZFREG + 4*SZXREG
+- xvld xr5, sp, 9*SZREG + 8*SZFREG + 5*SZXREG
+- xvld xr6, sp, 9*SZREG + 8*SZFREG + 6*SZXREG
+- xvld xr7, sp, 9*SZREG + 8*SZFREG + 7*SZXREG
++ xvld xr0, sp, 9*SZREG + 0*SZXREG
++ xvld xr1, sp, 9*SZREG + 1*SZXREG
++ xvld xr2, sp, 9*SZREG + 2*SZXREG
++ xvld xr3, sp, 9*SZREG + 3*SZXREG
++ xvld xr4, sp, 9*SZREG + 4*SZXREG
++ xvld xr5, sp, 9*SZREG + 5*SZXREG
++ xvld xr6, sp, 9*SZREG + 6*SZXREG
++ xvld xr7, sp, 9*SZREG + 7*SZXREG
+ #elif defined USE_LSX
+- vld vr0, sp, 9*SZREG + 8*SZFREG + 0*SZVREG
+- vld vr1, sp, 9*SZREG + 8*SZFREG + 1*SZVREG
+- vld vr2, sp, 9*SZREG + 8*SZFREG + 2*SZVREG
+- vld vr3, sp, 9*SZREG + 8*SZFREG + 3*SZVREG
+- vld vr4, sp, 9*SZREG + 8*SZFREG + 4*SZVREG
+- vld vr5, sp, 9*SZREG + 8*SZFREG + 5*SZVREG
+- vld vr6, sp, 9*SZREG + 8*SZFREG + 6*SZVREG
+- vld vr7, sp, 9*SZREG + 8*SZFREG + 7*SZVREG
++ vld vr0, sp, 9*SZREG + 0*SZVREG
++ vld vr1, sp, 9*SZREG + 1*SZVREG
++ vld vr2, sp, 9*SZREG + 2*SZVREG
++ vld vr3, sp, 9*SZREG + 3*SZVREG
++ vld vr4, sp, 9*SZREG + 4*SZVREG
++ vld vr5, sp, 9*SZREG + 5*SZVREG
++ vld vr6, sp, 9*SZREG + 6*SZVREG
++ vld vr7, sp, 9*SZREG + 7*SZVREG
+ #elif !defined __loongarch_soft_float
+ FREG_L fa0, sp, 9*SZREG + 0*SZFREG
+ FREG_L fa1, sp, 9*SZREG + 1*SZFREG
+--
+2.33.0
+