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