diff --git a/src/platform/redox/clone.rs b/src/platform/redox/clone.rs
index 44cfcdf677933ee002bbb51841d4aee485d49afd..cd3d4fe9d7fb18c6cf77304e23a660e619f5121f 100644
--- a/src/platform/redox/clone.rs
+++ b/src/platform/redox/clone.rs
@@ -97,13 +97,10 @@ core::arch::global_asm!(
     .p2align 6
 __relibc_internal_rlct_clone_ret:
     # Load registers
-    ldr x8, [sp], #8
-    ldr x0, [sp], #8
-    ldr x1, [sp], #8
-    ldr x2, [sp], #8
-    ldr x3, [sp], #8
-    ldr x4, [sp], #8
-    ldr x5, [sp], #8
+    ldp x0, x8, [sp], #16
+    ldp x2, x1, [sp], #16
+    ldp x4, x3, [sp], #16
+    ldr x5, [sp], #16
 
     # Call entry point
     blr x8
diff --git a/src/platform/redox/redox-exec/src/arch/aarch64.rs b/src/platform/redox/redox-exec/src/arch/aarch64.rs
index db88101128e9ceaec569bee95b5933eab787a505..058ba0280f87f627d66ea7eb5b79dbff8a3afdc2 100644
--- a/src/platform/redox/redox-exec/src/arch/aarch64.rs
+++ b/src/platform/redox/redox-exec/src/arch/aarch64.rs
@@ -50,18 +50,12 @@ core::arch::global_asm!(
     .globl __relibc_internal_fork_wrapper
     .type __relibc_internal_fork_wrapper, @function
 __relibc_internal_fork_wrapper:
-    str x19, [sp, #-8]!
-    str x20, [sp, #-8]!
-    str x21, [sp, #-8]!
-    str x22, [sp, #-8]!
-    str x23, [sp, #-8]!
-    str x24, [sp, #-8]!
-    str x25, [sp, #-8]!
-    str x26, [sp, #-8]!
-    str x27, [sp, #-8]!
-    str x28, [sp, #-8]!
-    str x29, [sp, #-8]!
-    str x30, [sp, #-8]!
+    stp     x29, x30, [sp, #-16]!
+    stp     x27, x28, [sp, #-16]!
+    stp     x25, x26, [sp, #-16]!
+    stp     x23, x24, [sp, #-16]!
+    stp     x21, x22, [sp, #-16]!
+    stp     x19, x20, [sp, #-16]!
 
     sub sp, sp, #32
 
@@ -77,8 +71,7 @@ __relibc_internal_fork_wrapper:
     .globl __relibc_internal_fork_ret
     .type __relibc_internal_fork_ret, @function
 __relibc_internal_fork_ret:
-    ldr x0, [sp]
-    ldr x1, [sp, #8]
+    ldp x0, x1, [sp]
     bl __relibc_internal_fork_hook
 
     //TODO: load floating point regs
@@ -88,18 +81,13 @@ __relibc_internal_fork_ret:
     .p2align 4
 2:
     add sp, sp, #32
-    ldr x30, [sp], #8
-    ldr x29, [sp], #8
-    ldr x28, [sp], #8
-    ldr x27, [sp], #8
-    ldr x26, [sp], #8
-    ldr x25, [sp], #8
-    ldr x24, [sp], #8
-    ldr x23, [sp], #8
-    ldr x22, [sp], #8
-    ldr x21, [sp], #8
-    ldr x20, [sp], #8
-    ldr x19, [sp], #8
+    ldp     x19, x20, [sp], #16
+    ldp     x21, x22, [sp], #16
+    ldp     x23, x24, [sp], #16
+    ldp     x25, x26, [sp], #16
+    ldp     x27, x28, [sp], #16
+    ldp     x29, x30, [sp], #16
+
     ret
 
     .size __relibc_internal_fork_ret, . - __relibc_internal_fork_ret"