[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
This commit is contained in:
Pengxuan Zheng 2022-04-04 18:17:03 -07:00
parent fef56f79ac
commit 1c9415806b
2 changed files with 8 additions and 8 deletions

View File

@ -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; \

View File

@ -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