diff --git a/src/header/signal/redox.rs b/src/header/signal/redox.rs
index 7c8036faf3a19ef565f9a11f4023211c35d14769..1e8b227a8c1c5b277d9d3cf084703e153caf9e75 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
 "
 );