Skip to content
Snippets Groups Projects
Commit 1c941580 authored by Pengxuan Zheng's avatar Pengxuan Zheng
Browse files

[compiler-rt][builtins] Move DMB definition to syn-ops.h

Compiler-rt cross-compile for ARMv5 fails because D99282 made it an error if DMB
is used for any pre-ARMv6 targets. More specifically, the "#error only supported
on ARMv6+" added in D99282 will cause compilation to fail when any source file
which includes assembly.h are compiled for pre-ARMv6 targets. Since the only
place where DMB is used is syn-ops.h (which is only included by
arm/sync_fetch_and_* and these files are excluded from being built for older
targets), this patch moves the definition there to avoid the issues described
above.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D123105
parent fef56f79
No related branches found
No related tags found
No related merge requests found
......@@ -14,6 +14,14 @@
#include "../assembly.h"
#if __ARM_ARCH >= 7
#define DMB dmb
#elif __ARM_ARCH >= 6
#define DMB mcr p15, #0, r0, c7, c10, #5
#else
#error DMB is only supported on ARMv6+
#endif
#define SYNC_OP_4(op) \
.p2align 2; \
.syntax unified; \
......
......@@ -189,14 +189,6 @@
JMP(ip)
#endif
#if __ARM_ARCH >= 7
#define DMB dmb
#elif __ARM_ARCH >= 6
#define DMB mcr p15, #0, r0, c7, c10, #5
#else
#error only supported on ARMv6+
#endif
#if defined(USE_THUMB_2)
#define WIDE(op) op.w
#else
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment