From dfb234079e33aad406919d6c84c33672b47a0466 Mon Sep 17 00:00:00 2001
From: 4lDO2 <4lDO2@protonmail.com>
Date: Tue, 16 Jul 2024 13:30:35 +0200
Subject: [PATCH] Fix signal fxrstor offset.

---
 redox-rt/src/arch/x86_64.rs | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/redox-rt/src/arch/x86_64.rs b/redox-rt/src/arch/x86_64.rs
index 73db7cea..b5e921f8 100644
--- a/redox-rt/src/arch/x86_64.rs
+++ b/redox-rt/src/arch/x86_64.rs
@@ -126,8 +126,8 @@ asmfunction!(__relibc_internal_fork_ret: ["
     mov rsi, [rsp + 8]
     call {child_hook}
 
-    ldmxcsr [rsp+16]
-    fldcw [rsp+24]
+    ldmxcsr [rsp + 16]
+    fldcw [rsp + 24]
 
     xor rax, rax
 
@@ -152,14 +152,10 @@ asmfunction!(__relibc_internal_rlct_clone_ret: ["
     pop r8
     pop r9
 
-    sub rsp, 8
-
-    mov DWORD PTR [rsp], 0x00001F80
-    ldmxcsr [rsp]
-    mov WORD PTR [rsp], 0x037F
-    fldcw [rsp]
-
-    add rsp, 8
+    mov DWORD PTR [rsp - 8], 0x00001F80
+    ldmxcsr [rsp - 8]
+    mov WORD PTR [rsp - 8], 0x037F
+    fldcw [rsp - 8]
 
     # Call entry point
     call rax
@@ -275,7 +271,7 @@ asmfunction!(__relibc_internal_sigentry: ["
 
     add rsp, 16
 
-    fxrstor64 [rsp]
+    fxrstor64 [rsp + 16 * 16]
 
     cmp byte ptr [rip + {supports_avx}], 0
     je 6f
-- 
GitLab