diff --git a/src/header/signal/linux.rs b/src/header/signal/linux.rs index a874b2652791fd71a5e43d180ea0e9ac97b7d1d2..2d3b71d2c3be282674bb1e97f49561b81195c99d 100644 --- a/src/header/signal/linux.rs +++ b/src/header/signal/linux.rs @@ -1,19 +1,21 @@ // Needs to be defined in assembly because it can't have a function prologue +// rax is register, 15 is RT_SIGRETURN #[cfg(target_arch = "x86_64")] global_asm!( " .global __restore_rt __restore_rt: - mov $15, %rax # <- rax is register, 15 is RT_SIGRETURN + mov $15, %rax syscall " ); +// x8 is register, 139 is RT_SIGRETURN #[cfg(target_arch = "aarch64")] global_asm!( " .global __restore_rt __restore_rt: - mov x8, #139 # <- x8 is register, 139 is RT_SIGRETURN + mov x8, #139 svc 0 " ); diff --git a/src/header/signal/redox.rs b/src/header/signal/redox.rs index 9dc41126fc3e742f8bb0f1cca263d5d11b23a73e..331997d1dbebbcaf2e6ea3dde075e09a3b83c90d 100644 --- a/src/header/signal/redox.rs +++ b/src/header/signal/redox.rs @@ -1,19 +1,21 @@ // 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 $119, %rax # <- rax is register, 119 is SIGRETURN + mov $119, %rax int $0x80 " ); +// x8 is register, 119 is SIGRETURN #[cfg(target_arch = "aarch64")] global_asm!( " .global __restore_rt __restore_rt: - mov x8, #119 # <- x8 is register, 119 is SIGRETURN + mov x8, #119 svc 0 " );