summaryrefslogtreecommitdiffstats
path: root/arch/arc
diff options
context:
space:
mode:
authorAlexey Brodkin <abrodkin@synopsys.com>2015-07-16 21:45:38 +0300
committerVineet Gupta <vgupta@synopsys.com>2015-07-20 13:33:30 +0300
commitd05a76ab4d9ece9bd987a8c29e3f384ec9f7b211 (patch)
tree9d9dd4e73a0836a2702f98372bdb063341a01a6c /arch/arc
parentaeec6cdad6cda5fdf26f937c0d15f101539d8185 (diff)
downloadop-kernel-dev-d05a76ab4d9ece9bd987a8c29e3f384ec9f7b211.zip
op-kernel-dev-d05a76ab4d9ece9bd987a8c29e3f384ec9f7b211.tar.gz
ARCv2: add knob for DIV_REV in Kconfig
Being highly configurable core ARC HS among other features might be configured with or without DIV_REM_OPTION (hardware divider). That option when enabled adds following instructions: div, divu, rem, remu. By default ARC HS38 has this option enabled. So we add here possibility to disable usage of hardware divider by compiler. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc')
-rw-r--r--arch/arc/Kconfig4
-rw-r--r--arch/arc/Makefile10
2 files changed, 13 insertions, 1 deletions
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index 91cf405..f7cfa7d 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -379,6 +379,10 @@ config ARC_HAS_LL64
dest operands with 2 possible source operands.
default y
+config ARC_HAS_DIV_REM
+ bool "Insn: div, divu, rem, remu"
+ default y
+
config ARC_HAS_RTC
bool "Local 64-bit r/o cycle counter"
default n
diff --git a/arch/arc/Makefile b/arch/arc/Makefile
index 46d8731..8a27a48 100644
--- a/arch/arc/Makefile
+++ b/arch/arc/Makefile
@@ -36,8 +36,16 @@ cflags-$(atleast_gcc44) += -fsection-anchors
cflags-$(CONFIG_ARC_HAS_LLSC) += -mlock
cflags-$(CONFIG_ARC_HAS_SWAPE) += -mswape
+ifdef CONFIG_ISA_ARCV2
+
ifndef CONFIG_ARC_HAS_LL64
-cflags-$(CONFIG_ISA_ARCV2) += -mno-ll64
+cflags-y += -mno-ll64
+endif
+
+ifndef CONFIG_ARC_HAS_DIV_REM
+cflags-y += -mno-div-rem
+endif
+
endif
cflags-$(CONFIG_ARC_DW2_UNWIND) += -fasynchronous-unwind-tables
OpenPOWER on IntegriCloud