.endm
#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
#if SIZE < 16
#ifdef HAS_ASM_LSE
#else
#define SWP .inst 0x38208020 + B + N
#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
SWP // s(0), s(0), [x1]
ret
#define LDOP .inst 0x38200020 + OPN + B + N
#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
LDOP // s(0), s(0), [x1]
ret
DECLARE_FUNC_ENCODING \
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 \
FUNC_ALIGN \
.globl 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 \
DECLARE_FUNC_ENCODING \
name: SEPARATOR BTI_C