implement cu_va_start and cu_va_arg in AArch64
This commit is contained in:
parent
c6be4302a7
commit
bc74c09dac
2 changed files with 19 additions and 1 deletions
|
|
@ -175,7 +175,23 @@ cu_memtest:
|
|||
ret
|
||||
|
||||
cu_va_start:
|
||||
stp xzr, x1, [x0], #16
|
||||
stp x2, x3, [x0], #16
|
||||
stp x4, x5, [x0], #16
|
||||
stp x6, x7, [x0], #16
|
||||
ret
|
||||
|
||||
cu_va_arg:
|
||||
// x0 - va_list, x1 - index
|
||||
mov x1, x1, lsl #3
|
||||
cmp x1, #56
|
||||
bgt .va_stack
|
||||
|
||||
add x0, x0, x1
|
||||
ldr x0, [x0]
|
||||
ret
|
||||
.va_stack:
|
||||
sub x1, x1, #48
|
||||
add x0, sp, x1
|
||||
ldr x0, [x0]
|
||||
ret
|
||||
|
|
|
|||
|
|
@ -5,7 +5,9 @@
|
|||
|
||||
#if (CU_ARCH == x86_64)
|
||||
# define VA_NUM 6
|
||||
#else
|
||||
#elif (CU_ARCH == AARCH64)
|
||||
# define VA_NUM 8
|
||||
#elif
|
||||
# define VA_NUM 0
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue