forked from OSchip/llvm-project
[Compiler-rt][AArch64] Workaround for .cfi_startproc assembler parser bug.
Put .cfi_startproc on a new line to avoid hitting the assembly parser bug in MasmParser::parseDirectiveCFIStartProc(). Reviewed By: tambre Differential Revision: https://reviews.llvm.org/D93236
This commit is contained in:
parent
dc82890a77
commit
3000c19df6
|
@ -113,7 +113,8 @@ HIDDEN(__aarch64_have_lse_atomics)
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
#ifdef L_cas
|
#ifdef L_cas
|
||||||
DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(NAME(cas))
|
DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED_START(NAME(cas))
|
||||||
|
DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED_END(NAME(cas))
|
||||||
JUMP_IF_NOT_LSE 8f
|
JUMP_IF_NOT_LSE 8f
|
||||||
#if SIZE < 16
|
#if SIZE < 16
|
||||||
#ifdef HAS_ASM_LSE
|
#ifdef HAS_ASM_LSE
|
||||||
|
@ -166,7 +167,8 @@ END_COMPILERRT_OUTLINE_FUNCTION(NAME(cas))
|
||||||
#else
|
#else
|
||||||
#define SWP .inst 0x38208020 + B + N
|
#define SWP .inst 0x38208020 + B + N
|
||||||
#endif
|
#endif
|
||||||
DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(NAME(swp))
|
DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED_START(NAME(swp))
|
||||||
|
DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED_END(NAME(swp))
|
||||||
JUMP_IF_NOT_LSE 8f
|
JUMP_IF_NOT_LSE 8f
|
||||||
SWP // s(0), s(0), [x1]
|
SWP // s(0), s(0), [x1]
|
||||||
ret
|
ret
|
||||||
|
@ -209,7 +211,8 @@ END_COMPILERRT_OUTLINE_FUNCTION(NAME(swp))
|
||||||
#define LDOP .inst 0x38200020 + OPN + B + N
|
#define LDOP .inst 0x38200020 + OPN + B + N
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(NAME(LDNM))
|
DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED_START(NAME(LDNM))
|
||||||
|
DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED_END(NAME(LDNM))
|
||||||
JUMP_IF_NOT_LSE 8f
|
JUMP_IF_NOT_LSE 8f
|
||||||
LDOP // s(0), s(0), [x1]
|
LDOP // s(0), s(0), [x1]
|
||||||
ret
|
ret
|
||||||
|
|
|
@ -243,12 +243,16 @@
|
||||||
DECLARE_FUNC_ENCODING \
|
DECLARE_FUNC_ENCODING \
|
||||||
name:
|
name:
|
||||||
|
|
||||||
#define DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(name) \
|
// TODO(ilinpv) START & END parts will be merged when assembly parser bug
|
||||||
|
// (kristina) in MasmParser::parseDirectiveCFIStartProc() is fixed.
|
||||||
|
#define DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED_START(name) \
|
||||||
DEFINE_CODE_STATE \
|
DEFINE_CODE_STATE \
|
||||||
FUNC_ALIGN \
|
FUNC_ALIGN \
|
||||||
.globl name SEPARATOR \
|
.globl name SEPARATOR \
|
||||||
SYMBOL_IS_FUNC(name) SEPARATOR \
|
SYMBOL_IS_FUNC(name) SEPARATOR \
|
||||||
DECLARE_SYMBOL_VISIBILITY(name) SEPARATOR \
|
DECLARE_SYMBOL_VISIBILITY(name)
|
||||||
|
|
||||||
|
#define DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED_END(name) \
|
||||||
CFI_START SEPARATOR \
|
CFI_START SEPARATOR \
|
||||||
DECLARE_FUNC_ENCODING \
|
DECLARE_FUNC_ENCODING \
|
||||||
name: SEPARATOR BTI_C
|
name: SEPARATOR BTI_C
|
||||||
|
|
Loading…
Reference in New Issue