summaryrefslogtreecommitdiffstats
path: root/src/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/i386/prefix/linuxprefix.S3
-rw-r--r--src/arch/x86_64/prefix/linuxprefix.S3
2 files changed, 6 insertions, 0 deletions
diff --git a/src/arch/i386/prefix/linuxprefix.S b/src/arch/i386/prefix/linuxprefix.S
index 881c61df..b32b08f2 100644
--- a/src/arch/i386/prefix/linuxprefix.S
+++ b/src/arch/i386/prefix/linuxprefix.S
@@ -16,6 +16,9 @@ _start:
pushl %edi // argv -> C arg2
pushl %esi // argc -> C arg1
+ call save_args
+
+ /* Our main doesn't use any arguments */
call main
movl %eax, %ebx // rc -> syscall arg1
diff --git a/src/arch/x86_64/prefix/linuxprefix.S b/src/arch/x86_64/prefix/linuxprefix.S
index 20163b8a..4aa0b840 100644
--- a/src/arch/x86_64/prefix/linuxprefix.S
+++ b/src/arch/x86_64/prefix/linuxprefix.S
@@ -13,6 +13,9 @@ _start:
andq $~15, %rsp // 16-byte align the stack
+ call save_args
+
+ /* Our main doesn't use any arguments */
call main
movq %rax, %rdi // rc -> syscall arg1