mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-15 22:16:30 +00:00
[openmp] Support CET in z_Linux_asm.S (#123213)
When libomp is built with -cf-protection, add endbr instructions to the start of functions for Intel CET support.
This commit is contained in:
parent
c3ba6f378e
commit
90a05f3216
@ -19,6 +19,16 @@
|
||||
|
||||
#if KMP_ARCH_X86 || KMP_ARCH_X86_64
|
||||
|
||||
# if defined(__ELF__) && defined(__CET__) && defined(__has_include)
|
||||
# if __has_include(<cet.h>)
|
||||
# include <cet.h>
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# if !defined(_CET_ENDBR)
|
||||
# define _CET_ENDBR
|
||||
# endif
|
||||
|
||||
# if KMP_MIC
|
||||
// the 'delay r16/r32/r64' should be used instead of the 'pause'.
|
||||
// The delay operation has the effect of removing the current thread from
|
||||
@ -66,6 +76,7 @@
|
||||
ALIGN 4
|
||||
.globl KMP_PREFIX_UNDERSCORE($0)
|
||||
KMP_PREFIX_UNDERSCORE($0):
|
||||
_CET_ENDBR
|
||||
.endmacro
|
||||
# else // KMP_OS_DARWIN
|
||||
# define KMP_PREFIX_UNDERSCORE(x) x //no extra underscore for Linux* OS symbols
|
||||
@ -92,6 +103,7 @@ KMP_PREFIX_UNDERSCORE($0):
|
||||
.globl KMP_PREFIX_UNDERSCORE(\proc)
|
||||
KMP_PREFIX_UNDERSCORE(\proc):
|
||||
.cfi_startproc
|
||||
_CET_ENDBR
|
||||
.endm
|
||||
.macro KMP_CFI_DEF_OFFSET sz
|
||||
.cfi_def_cfa_offset \sz
|
||||
|
Loading…
x
Reference in New Issue
Block a user