summaryrefslogtreecommitdiffstats
path: root/arch/arc/include/asm/cache.h
diff options
context:
space:
mode:
authorEugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>2019-11-08 19:20:22 +0300
committerVineet Gupta <vgupta@synopsys.com>2019-11-08 16:14:32 -0800
commitf091d5a426447cc427680bdd3adc7773aa2867df (patch)
treee255dd3806463334c58d03aff06dee6e3b3268c3 /arch/arc/include/asm/cache.h
parent2f4ecf68a048de44d72157d637bf9cbbbdb357b0 (diff)
downloadlinux-f091d5a426447cc427680bdd3adc7773aa2867df.tar.bz2
ARC: ARCv2: jump label: implement jump label patching
Implement jump label patching for ARC. Jump labels provide an interface to generate dynamic branches using self-modifying code. This allows us to implement conditional branches where changing branch direction is expensive but branch selection is basically 'free' This implementation uses 32-bit NOP and BRANCH instructions which forced to be aligned by 4 to guarantee that they don't cross L1 cache line boundary and can be update atomically. Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/include/asm/cache.h')
-rw-r--r--arch/arc/include/asm/cache.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arc/include/asm/cache.h b/arch/arc/include/asm/cache.h
index 918804c7c1a4..d8ece4292388 100644
--- a/arch/arc/include/asm/cache.h
+++ b/arch/arc/include/asm/cache.h
@@ -25,6 +25,8 @@
#ifndef __ASSEMBLY__
+#include <linux/build_bug.h>
+
/* Uncached access macros */
#define arc_read_uncached_32(ptr) \
({ \