From 519f1eb3613a95343d4401f0b3643636b1ee721e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Tue, 27 Jan 2026 05:23:02 +0100 Subject: [PATCH] musl: zero fp/lr registers in _start() and clone() on hexagon --- lib/libc/musl/arch/hexagon/crt_arch.h | 1 + lib/libc/musl/src/thread/hexagon/clone.s | 3 +++ 2 files changed, 4 insertions(+) diff --git a/lib/libc/musl/arch/hexagon/crt_arch.h b/lib/libc/musl/arch/hexagon/crt_arch.h index 9f9428cf1927a98bcd5aac0bf8c90cdb87747c73..395b38d158059480f0bf532f5e6440abe58d618f 100644 --- a/lib/libc/musl/arch/hexagon/crt_arch.h +++ b/lib/libc/musl/arch/hexagon/crt_arch.h @@ -13,6 +13,7 @@ START ": \n" " r1 = memw(r2)\n" " r1 = add(r2, r1)\n" " r30 = #0 // Signals the end of backtrace\n" +" r31 = #0\n" " r0 = r29 // Pointer to argc/argv\n" " r29 = and(r29, #-16) // Align\n" " memw(r29+#-8) = r29\n" diff --git a/lib/libc/musl/src/thread/hexagon/clone.s b/lib/libc/musl/src/thread/hexagon/clone.s index 42aab67a375923b106c51d77a0a617fadbeefce1..b91bda60eb24c11ed318c5385508496de1dd96ab 100644 --- a/lib/libc/musl/src/thread/hexagon/clone.s +++ b/lib/libc/musl/src/thread/hexagon/clone.s @@ -29,6 +29,9 @@ __clone: p0 = cmp.eq(r0, #0) if (!p0) dealloc_return + { r30 = #0 + r31 = #0 } + { r0 = r10 callr r11 } -- 2.54.0