summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2018-06-17 09:41:46 -0400
committerBen Gamari <ben@smart-cactus.org>2018-06-17 09:41:54 -0400
commit76b343f5d2e98eb02fc91ff6fd3ea06e0159713c (patch)
treef546c1af841b2506802d4b61735c2b062b6cb94a
parent8df24474d0194d28b8273c1539af05793156e23f (diff)
downloadhaskell-76b343f5d2e98eb02fc91ff6fd3ea06e0159713c.tar.gz
Revert "rts: Use .cfi_{start|end}proc directives"
This reverts commit 86210b238b86d810874a2315d1715546a4006cea.
-rw-r--r--rts/StgCRun.c19
1 files changed, 1 insertions, 18 deletions
diff --git a/rts/StgCRun.c b/rts/StgCRun.c
index 8fea23d8dc..92b0696c2b 100644
--- a/rts/StgCRun.c
+++ b/rts/StgCRun.c
@@ -363,15 +363,6 @@ saved on the stack by the call instruction. Then we perform regular Haskell
stack unwinding.
*/
-/*
- * gcc automatically inserts .cfi_startproc/.cfi_endproc directives around
- * inline assembler but clang does not. This caused the build to fail with
- * Clang (see #15207).
- */
-
-#if defined(__clang__)
-#define NEED_EXPLICIT_CFI_START_END
-#endif
static void GNUC3_ATTRIBUTE(used)
StgRunIsImplementedInAssembler(void)
@@ -385,10 +376,6 @@ StgRunIsImplementedInAssembler(void)
STG_HIDDEN STG_RUN "\n"
#endif
STG_RUN ":\n\t"
-
-#if defined(NEED_EXPLICIT_CFI_START_END)
- ".cfi_startproc simple\n\t"
-#endif
"subq %1, %%rsp\n\t"
"movq %%rsp, %%rax\n\t"
"subq %0, %%rsp\n\t"
@@ -475,10 +462,6 @@ StgRunIsImplementedInAssembler(void)
#if !defined(mingw32_HOST_OS)
STG_HIDDEN xstr(STG_RUN_JMP) "\n"
#endif
-#if defined(NEED_EXPLICIT_CFI_START_END)
- ".cfi_endproc\n\t"
-#endif
-
#if HAVE_SUBSECTIONS_VIA_SYMBOLS
// If we have deadstripping enabled and a label is detected as unused
// the code gets nop'd out.
@@ -517,7 +500,7 @@ StgRunIsImplementedInAssembler(void)
"movq 136(%%rax),%%xmm15\n\t"
#endif
"addq %1, %%rsp\n\t"
- "retq\n\t"
+ "retq"
:
: "i"(RESERVED_C_STACK_BYTES),