summaryrefslogtreecommitdiffstats
path: root/arch/mips/loongson64
diff options
context:
space:
mode:
authorHuacai Chen <chenhc@lemote.com>2016-01-21 08:09:48 -0500
committerRalf Baechle <ralf@linux-mips.org>2016-01-21 19:59:18 -0500
commit5188129b8c9f58ba089bfd3809a163a8c087c797 (patch)
tree6b06698b8e1152bb86382bef377a684ffee002e3 /arch/mips/loongson64
parent6e52684467b2c135e07e638469cd1d78bd8286ac (diff)
MIPS: Loongson-3: Improve -march option and move it to Platform
If GCC >= 4.9 and Binutils >=2.25, we use -march=loongson3a, otherwise we use -march=mips64r2, this can slightly improve performance. Besides, arch/mips/loongson64/Platform is a better location rather than arch/ mips/Makefile. Signed-off-by: Huacai Chen <chenhc@lemote.com> Cc: Aurelien Jarno <aurelien@aurel32.net> Cc: Steven J. Hill <Steven.Hill@imgtec.com> Cc: Fuxin Zhang <zhangfx@lemote.com> Cc: Zhangjin Wu <wuzhangjin@gmail.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/12161/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/loongson64')
-rw-r--r--arch/mips/loongson64/Platform21
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/mips/loongson64/Platform b/arch/mips/loongson64/Platform
index 2e48e83d5524..85d808924c94 100644
--- a/arch/mips/loongson64/Platform
+++ b/arch/mips/loongson64/Platform
@@ -22,6 +22,27 @@ ifdef CONFIG_CPU_LOONGSON2F_WORKAROUNDS
22 endif 22 endif
23endif 23endif
24 24
25cflags-$(CONFIG_CPU_LOONGSON3) += -Wa,--trap
26#
27# binutils from v2.25 on and gcc starting from v4.9.0 treat -march=loongson3a
28# as MIPS64 R2; older versions as just R1. This leaves the possibility open
29# that GCC might generate R2 code for -march=loongson3a which then is rejected
30# by GAS. The cc-option can't probe for this behaviour so -march=loongson3a
31# can't easily be used safely within the kbuild framework.
32#
33ifeq ($(call cc-ifversion, -ge, 0409, y), y)
34 ifeq ($(call ld-ifversion, -ge, 22500000, y), y)
35 cflags-$(CONFIG_CPU_LOONGSON3) += \
36 $(call cc-option,-march=loongson3a -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64)
37 else
38 cflags-$(CONFIG_CPU_LOONGSON3) += \
39 $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64)
40 endif
41else
42 cflags-$(CONFIG_CPU_LOONGSON3) += \
43 $(call cc-option,-march=mips64r2,-mips64r2 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64)
44endif
45
25# 46#
26# Loongson Machines' Support 47# Loongson Machines' Support
27# 48#