aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/compiler.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/include/asm/compiler.h')
-rw-r--r--arch/arm/include/asm/compiler.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/include/asm/compiler.h b/arch/arm/include/asm/compiler.h
index 8155db2f7fa1..29fe85e59439 100644
--- a/arch/arm/include/asm/compiler.h
+++ b/arch/arm/include/asm/compiler.h
@@ -8,8 +8,21 @@
8 * This string is meant to be concatenated with the inline asm string and 8 * This string is meant to be concatenated with the inline asm string and
9 * will cause compilation to stop on mismatch. 9 * will cause compilation to stop on mismatch.
10 * (for details, see gcc PR 15089) 10 * (for details, see gcc PR 15089)
11 * For compatibility with clang, we have to specifically take the equivalence
12 * of 'r11' <-> 'fp' and 'r12' <-> 'ip' into account as well.
11 */ 13 */
12#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t" 14#define __asmeq(x, y) \
15 ".ifnc " x "," y "; " \
16 ".ifnc " x y ",fpr11; " \
17 ".ifnc " x y ",r11fp; " \
18 ".ifnc " x y ",ipr12; " \
19 ".ifnc " x y ",r12ip; " \
20 ".err; " \
21 ".endif; " \
22 ".endif; " \
23 ".endif; " \
24 ".endif; " \
25 ".endif\n\t"
13 26
14 27
15#endif /* __ASM_ARM_COMPILER_H */ 28#endif /* __ASM_ARM_COMPILER_H */