All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m42s
60 lines
4.6 KiB
C
60 lines
4.6 KiB
C
#ifndef _KERNEL_AMD64_REGSASM_H
|
|
#define _KERNEL_AMD64_REGSASM_H
|
|
|
|
/* clang-format off */
|
|
|
|
#define push_regs \
|
|
pushq %rax; \
|
|
pushq %rcx; \
|
|
pushq %rdx; \
|
|
pushq %rsi; \
|
|
pushq %rdi; \
|
|
pushq %rbp; \
|
|
pushq %rbx; \
|
|
pushq %r8; \
|
|
pushq %r9; \
|
|
pushq %r10; \
|
|
pushq %r11; \
|
|
pushq %r12; \
|
|
pushq %r13; \
|
|
pushq %r14; \
|
|
pushq %r15;
|
|
|
|
#define pop_regs \
|
|
popq %r15; \
|
|
popq %r14; \
|
|
popq %r13; \
|
|
popq %r12; \
|
|
popq %r11; \
|
|
popq %r10; \
|
|
popq %r9; \
|
|
popq %r8; \
|
|
popq %rbx; \
|
|
popq %rbp; \
|
|
popq %rdi; \
|
|
popq %rsi; \
|
|
popq %rdx; \
|
|
popq %rcx; \
|
|
popq %rax;
|
|
|
|
#define pop_regs_skip_rax \
|
|
popq %r15; \
|
|
popq %r14; \
|
|
popq %r13; \
|
|
popq %r12; \
|
|
popq %r11; \
|
|
popq %r10; \
|
|
popq %r9; \
|
|
popq %r8; \
|
|
popq %rbx; \
|
|
popq %rbp; \
|
|
popq %rdi; \
|
|
popq %rsi; \
|
|
popq %rdx; \
|
|
popq %rcx; \
|
|
addq $8, %rsp;
|
|
|
|
/* clang-format on */
|
|
|
|
#endif // _KERNEL_AMD64_REGSASM_H
|