From 32770ed976a7b1f57c7c56edcc27982df0160a89 Mon Sep 17 00:00:00 2001
From: Jeremy Soller <jackpot51@gmail.com>
Date: Thu, 18 Aug 2022 08:01:14 -0600
Subject: [PATCH] Improvements to x86 assembly in redox-exec

---
 src/platform/redox/redox-exec/src/arch/x86.rs | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/src/platform/redox/redox-exec/src/arch/x86.rs b/src/platform/redox/redox-exec/src/arch/x86.rs
index 0df0f900..8f664ef9 100644
--- a/src/platform/redox/redox-exec/src/arch/x86.rs
+++ b/src/platform/redox/redox-exec/src/arch/x86.rs
@@ -64,10 +64,9 @@ __relibc_internal_fork_wrapper:
     //TODO stmxcsr [esp+16]
     fnstcw [esp+24]
 
-    mov edi, esp
-    push edi
+    push esp
     call __relibc_internal_fork_impl
-    pop edi
+    pop esp
     jmp 2f
 
     .size __relibc_internal_fork_wrapper, . - __relibc_internal_fork_wrapper
@@ -76,13 +75,8 @@ __relibc_internal_fork_wrapper:
     .globl __relibc_internal_fork_ret
     .type __relibc_internal_fork_ret, @function
 __relibc_internal_fork_ret:
-    mov edi, [esp]
-    mov esi, [esp + 4]
-    push esi
-    push edi
+    // Arguments already on the stack
     call __relibc_internal_fork_hook
-    pop edi
-    pop esi
 
     //TODO ldmxcsr [esp+16]
     fldcw [esp+24]
-- 
GitLab