1// This file is dual licensed under the MIT and the University of Illinois Open
2// Source Licenses. See LICENSE.TXT for details.
3
4// Avoid being marked as needing an executable stack:
5#if defined(__linux__) && defined(__ELF__)
6.section .note.GNU-stack,"",%progbits
7#endif
8
9// Further contents are x86_64-only:
10#if defined(__linux__) && defined(__x86_64__)
11
12#include "../builtins/assembly.h"
13
14// If the "naked" function attribute were supported for x86 we could
15// do this via inline asm.
16.text
17.balign 4
18DEFINE_COMPILERRT_FUNCTION(internal_sigreturn)
19        mov           $0xf,             %eax    // 0xf == SYS_rt_sigreturn
20        mov           %rcx,             %r10
21        syscall
22        ret                                     // Won't normally reach here.
23END_COMPILERRT_FUNCTION(internal_sigreturn)
24
25#endif // defined(__linux__) && defined(__x86_64__)
26