Skip to content
Snippets Groups Projects
Commit 1ef79540 authored by Jeremy Soller's avatar Jeremy Soller
Browse files

Merge branch 'aarch64-stuff' into 'master'

Fix misaligned stack pointer on aarch64

See merge request !408
parents 3997cd95 41c1f465
No related branches found
No related tags found
1 merge request!408Fix misaligned stack pointer on aarch64
Pipeline #12394 passed
...@@ -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