File: func_abi.h

package info (click to toggle)
grub2 2.14~git20250718.0e36779-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 60,688 kB
  • sloc: ansic: 541,811; asm: 68,074; sh: 9,803; cpp: 2,095; makefile: 1,895; python: 1,518; sed: 446; lex: 393; yacc: 268; awk: 85; lisp: 54; perl: 31
file content (34 lines) | stat: -rw-r--r-- 609 bytes parent folder | download | duplicates (5)
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