From abe30ba884d9fb3c6fe0b911a0158586ce1325ce Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jackpot51@gmail.com> Date: Fri, 22 Jul 2022 19:24:05 -0600 Subject: [PATCH] Add i386 __restore_rt --- src/header/signal/redox.rs | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/header/signal/redox.rs b/src/header/signal/redox.rs index 7c8036faf..1e8b227a8 100644 --- a/src/header/signal/redox.rs +++ b/src/header/signal/redox.rs @@ -1,24 +1,35 @@ use core::arch::global_asm; +// x8 is register, 119 is SIGRETURN +#[cfg(target_arch = "aarch64")] +global_asm!( + " + .global __restore_rt + __restore_rt: + mov x8, #119 + svc 0 +" +); // Needs to be defined in assembly because it can't have a function prologue -// rax is register, 119 is SIGRETURN -#[cfg(target_arch = "x86_64")] +// eax is register, 119 is SIGRETURN +#[cfg(target_arch = "x86")] global_asm!( " .global __restore_rt __restore_rt: - mov rax, 119 - syscall + mov eax, 119 + int 0x80 " ); -// x8 is register, 119 is SIGRETURN -#[cfg(target_arch = "aarch64")] +// Needs to be defined in assembly because it can't have a function prologue +// rax is register, 119 is SIGRETURN +#[cfg(target_arch = "x86_64")] global_asm!( " .global __restore_rt __restore_rt: - mov x8, #119 - svc 0 + mov rax, 119 + syscall " ); -- GitLab