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