Files
cleonos/clks/arch/x86_64/exec_stack_call.S

48 lines
1.0 KiB
ArmAsm
Raw Normal View History

2026-04-12 19:55:42 +08:00
.intel_syntax noprefix
.global clks_exec_call_on_stack_x86_64
.type clks_exec_call_on_stack_x86_64, @function
2026-04-16 22:29:08 +08:00
.global clks_exec_abort_to_caller_x86_64
.type clks_exec_abort_to_caller_x86_64, @function
2026-04-12 19:55:42 +08:00
clks_exec_call_on_stack_x86_64:
mov r11, rsp
mov rsp, rsi
and rsp, -16
2026-04-17 18:09:30 +08:00
sub rsp, 56
2026-04-12 19:55:42 +08:00
mov [rsp], r11
2026-04-17 18:09:30 +08:00
mov [rsp + 8], rbx
mov [rsp + 16], rbp
mov [rsp + 24], r12
mov [rsp + 32], r13
mov [rsp + 40], r14
mov [rsp + 48], r15
2026-04-12 19:55:42 +08:00
call rdi
2026-04-17 18:09:30 +08:00
mov rbx, [rsp + 8]
mov rbp, [rsp + 16]
mov r12, [rsp + 24]
mov r13, [rsp + 32]
mov r14, [rsp + 40]
mov r15, [rsp + 48]
2026-04-12 19:55:42 +08:00
mov rsp, [rsp]
ret
.size clks_exec_call_on_stack_x86_64, .-clks_exec_call_on_stack_x86_64
2026-04-16 22:29:08 +08:00
clks_exec_abort_to_caller_x86_64:
mov rax, rsi
mov rsp, rdi
2026-04-17 18:09:30 +08:00
mov rbx, [rsp + 8]
mov rbp, [rsp + 16]
mov r12, [rsp + 24]
mov r13, [rsp + 32]
mov r14, [rsp + 40]
mov r15, [rsp + 48]
2026-04-16 22:29:08 +08:00
mov rsp, [rsp]
ret
.size clks_exec_abort_to_caller_x86_64, .-clks_exec_abort_to_caller_x86_64
2026-04-12 19:55:42 +08:00
.section .note.GNU-stack,"",@progbits