mirror of
https://github.com/fluencelabs/musl
synced 2025-04-24 23:02:14 +00:00
This adds complete aarch64 target support including bigendian subarch. Some of the long double math functions are known to be broken otherwise interfaces should be fully functional, but at this point consider this port experimental. Initial work on this port was done by Sireesh Tripurari and Kevin Bortis.
30 lines
523 B
ArmAsm
30 lines
523 B
ArmAsm
// __clone(func, stack, flags, arg, ptid, tls, ctid)
|
|
// x0, x1, w2, x3, x4, x5, x6
|
|
|
|
// syscall(SYS_clone, flags, stack, ptid, tls, ctid)
|
|
// x8, x0, x1, x2, x3, x4
|
|
|
|
.global __clone
|
|
.type __clone,%function
|
|
__clone:
|
|
// align stack and save func,arg
|
|
and x1,x1,#-16
|
|
stp x0,x3,[x1,#-16]!
|
|
|
|
// syscall
|
|
uxtw x0,w2
|
|
mov x2,x4
|
|
mov x3,x5
|
|
mov x4,x6
|
|
mov x8,#220 // SYS_clone
|
|
svc #0
|
|
|
|
cbz x0,1f
|
|
// parent
|
|
ret
|
|
// child
|
|
1: ldp x1,x0,[sp],#16
|
|
blr x1
|
|
mov x8,#93 // SYS_exit
|
|
svc #0
|