Skip to content
Snippets Groups Projects
Unverified Commit 41c1f465 authored by uuuvn's avatar uuuvn
Browse files

Fix misaligned stack pointer on aarch64

parent 3997cd95
No related branches found
No related tags found
No related merge requests found
...@@ -97,13 +97,10 @@ core::arch::global_asm!( ...@@ -97,13 +97,10 @@ core::arch::global_asm!(
.p2align 6 .p2align 6
__relibc_internal_rlct_clone_ret: __relibc_internal_rlct_clone_ret:
# Load registers # Load registers
ldr x8, [sp], #8 ldp x0, x8, [sp], #16
ldr x0, [sp], #8 ldp x2, x1, [sp], #16
ldr x1, [sp], #8 ldp x4, x3, [sp], #16
ldr x2, [sp], #8 ldr x5, [sp], #16
ldr x3, [sp], #8
ldr x4, [sp], #8
ldr x5, [sp], #8
# Call entry point # Call entry point
blr x8 blr x8
......
...@@ -50,18 +50,12 @@ core::arch::global_asm!( ...@@ -50,18 +50,12 @@ core::arch::global_asm!(
.globl __relibc_internal_fork_wrapper .globl __relibc_internal_fork_wrapper
.type __relibc_internal_fork_wrapper, @function .type __relibc_internal_fork_wrapper, @function
__relibc_internal_fork_wrapper: __relibc_internal_fork_wrapper:
str x19, [sp, #-8]! stp x29, x30, [sp, #-16]!
str x20, [sp, #-8]! stp x27, x28, [sp, #-16]!
str x21, [sp, #-8]! stp x25, x26, [sp, #-16]!
str x22, [sp, #-8]! stp x23, x24, [sp, #-16]!
str x23, [sp, #-8]! stp x21, x22, [sp, #-16]!
str x24, [sp, #-8]! stp x19, x20, [sp, #-16]!
str x25, [sp, #-8]!
str x26, [sp, #-8]!
str x27, [sp, #-8]!
str x28, [sp, #-8]!
str x29, [sp, #-8]!
str x30, [sp, #-8]!
sub sp, sp, #32 sub sp, sp, #32
...@@ -77,8 +71,7 @@ __relibc_internal_fork_wrapper: ...@@ -77,8 +71,7 @@ __relibc_internal_fork_wrapper:
.globl __relibc_internal_fork_ret .globl __relibc_internal_fork_ret
.type __relibc_internal_fork_ret, @function .type __relibc_internal_fork_ret, @function
__relibc_internal_fork_ret: __relibc_internal_fork_ret:
ldr x0, [sp] ldp x0, x1, [sp]
ldr x1, [sp, #8]
bl __relibc_internal_fork_hook bl __relibc_internal_fork_hook
//TODO: load floating point regs //TODO: load floating point regs
...@@ -88,18 +81,13 @@ __relibc_internal_fork_ret: ...@@ -88,18 +81,13 @@ __relibc_internal_fork_ret:
.p2align 4 .p2align 4
2: 2:
add sp, sp, #32 add sp, sp, #32
ldr x30, [sp], #8 ldp x19, x20, [sp], #16
ldr x29, [sp], #8 ldp x21, x22, [sp], #16
ldr x28, [sp], #8 ldp x23, x24, [sp], #16
ldr x27, [sp], #8 ldp x25, x26, [sp], #16
ldr x26, [sp], #8 ldp x27, x28, [sp], #16
ldr x25, [sp], #8 ldp x29, x30, [sp], #16
ldr x24, [sp], #8
ldr x23, [sp], #8
ldr x22, [sp], #8
ldr x21, [sp], #8
ldr x20, [sp], #8
ldr x19, [sp], #8
ret ret
.size __relibc_internal_fork_ret, . - __relibc_internal_fork_ret" .size __relibc_internal_fork_ret, . - __relibc_internal_fork_ret"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment