2 * Code for the vDSO. This version uses the old int $0x80 method.
5 #include <asm/dwarf2.h>
6 #include <asm/cpufeature.h>
7 #include <asm/alternative-asm.h>
10 * First get the common code for the sigreturn entry points.
11 * This must come first.
13 #include "sigreturn.S"
16 .globl __kernel_vsyscall
17 .type __kernel_vsyscall,@function
22 * Reshuffle regs so that all of any of the entry instructions
23 * will preserve enough state.
26 CFI_ADJUST_CFA_OFFSET 4
29 CFI_ADJUST_CFA_OFFSET 4
34 /* If SYSENTER (Intel) or SYSCALL32 (AMD) is available, use it. */
35 ALTERNATIVE_2 "", "sysenter", X86_FEATURE_SYSENTER32, \
36 "syscall", X86_FEATURE_SYSCALL32
38 ALTERNATIVE "", "sysenter", X86_FEATURE_SEP
41 /* Enter using int $0x80 */
44 GLOBAL(int80_landing_pad)
46 /* Restore ECX and EDX in case they were clobbered. */
49 CFI_ADJUST_CFA_OFFSET -4
52 CFI_ADJUST_CFA_OFFSET -4
56 .size __kernel_vsyscall,.-__kernel_vsyscall