1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#include <config.h>
#include "asm-common-amd64.h"
#ifdef USE_MS_ABI
/* Store registers and move four first input arguments from MS ABI to
* SYSV ABI. */
#define FUNC_ENTRY() \
CFI_STARTPROC(); \
pushq %rsi; \
CFI_PUSH(%rsi); \
pushq %rdi; \
CFI_PUSH(%rdi); \
movq %rdx, %rsi; \
movq %rcx, %rdi; \
movq %r8, %rdx; \
movq %r9, %rcx;
/* Restore registers. */
#define FUNC_EXIT() \
popq %rdi; \
CFI_POP(%rdi); \
popq %rsi; \
CFI_POP(%rsi); \
ret_spec_stop; \
CFI_ENDPROC();
#else
#define FUNC_ENTRY() \
CFI_STARTPROC();
#define FUNC_EXIT() \
ret_spec_stop; \
CFI_ENDPROC();
#endif
|