From 12d405f57b5db065f8d20264506697be466efb2b Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Mon, 18 Aug 2003 21:56:13 +0000 Subject: Cleanup arm architecture optimizations and add big endian arm as well. --- Rules.mak | 20 ++++++++++++++---- extra/Configs/Config.arm | 55 +++++++++++++++++++++++++++++++++++++----------- 2 files changed, 59 insertions(+), 16 deletions(-) diff --git a/Rules.mak b/Rules.mak index 3b162addf..fdc2e3050 100644 --- a/Rules.mak +++ b/Rules.mak @@ -130,10 +130,21 @@ endif ifeq ($(strip $(TARGET_ARCH)),arm) OPTIMIZATION+=-fstrict-aliasing + CPU_LDFLAGS-$(ARCH_LITTLE_ENDIAN):="-EL" + CPU_LDFLAGS-$(ARCH_BIG_ENDIAN):="-EB" + CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN):="-mlittle-endian" + CPU_CFLAGS-$(ARCH_BIG_ENDIAN):="-mbig-endian" CPU_CFLAGS-$(CONFIG_GENERIC_ARM):= - CPU_CFLAGS-$(CONFIG_ARM7TDMI):="-march=arm7tdmi" - CPU_CFLAGS-$(CONFIG_STRONGARM):="-march=strongarm" - CPU_CFLAGS-$(CONFIG_XSCALE):="-march=xscale" + CPU_CFLAGS-$(CONFIG_ARM610):=-mtune=arm610 -march=armv3 + CPU_CFLAGS-$(CONFIG_ARM710):=-mtune=arm710 -march=armv3 + CPU_CFLAGS-$(CONFIG_ARM720T):=-mtune=arm7tdmi -march=armv4 + CPU_CFLAGS-$(CONFIG_ARM920T):=-mtune=arm9tdmi -march=armv4 + CPU_CFLAGS-$(CONFIG_ARM922T):=-mtune=arm9tdmi -march=armv4 + CPU_CFLAGS-$(CONFIG_ARM926T):=-mtune=arm9tdmi -march=armv4 + CPU_CFLAGS-$(CONFIG_ARM_SA110):=-mtune=strongarm110 -march=armv4 + CPU_CFLAGS-$(CONFIG_ARM_SA1100):=-mtune=strongarm1100 -march=armv4 + CPU_CFLAGS-$(CONFIG_ARM_XSCALE):=$(call check_gcc,-mtune=xscale,-mtune=strongarm110) \ + $(call check_gcc,-march=armv5te,-march=armv4 -Wa$(comma)-mxscale) endif ifeq ($(strip $(TARGET_ARCH)),sh) @@ -212,7 +223,8 @@ ifeq ($(HAVE_SHARED),y) endif endif ifeq ($(UCLIBC_HAS_SOFT_FLOAT),y) - CFLAGS += $(call check_gcc,-msoft-float,) + CFLAGS += -msoft-float + LDFLAGS+= -Wa,-mno-fpu endif CFLAGS_NOPIC:=$(CFLAGS) diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm index e310fec41..1fae6422f 100644 --- a/extra/Configs/Config.arm +++ b/extra/Configs/Config.arm @@ -37,26 +37,57 @@ choice Here are the settings recommended for greatest speed: - "Generic Arm" select this if your compiler is already setup to - optimize things properly. - - "arm7tdmi" an MMU-less ARM core such as those distributed - by Atmel, Samsung, and others. - - "StrongARM" for Intel's StrongARM cores, such as the - StrongARM 110/1100/1110. - - "XScale" for Intel's XScale processors + optimize things properly, or if you want to run on pretty much + everything, or you just don't much care. + - For anything else, pick the ARM core type that best matches the + cpu you will be using on your device. If you don't know what to do, choose "Generic Arm". config CONFIG_GENERIC_ARM bool "Generic Arm" -config CONFIG_ARM7TDMI - bool "arm7tdmi" +config CONFIG_ARM610 + bool "Arm 610" -config CONFIG_STRONGARM - bool "StrongARM" +config CONFIG_ARM710 + bool "Arm 710" -config CONFIG_XSCALE - bool "XScale" +config CONFIG_ARM720T + bool "Arm 720T" + +config CONFIG_ARM920T + bool "Arm 920T" + +config CONFIG_ARM922T + bool "Arm 922T" + +config CONFIG_ARM926T + bool "Arm 926T" + +config CONFIG_ARM_SA110 + bool "Intel StrongArm SA-110" + +config CONFIG_ARM_SA1100 + bool "Intel StrongArm SA-1100" + +config CONFIG_ARM_XSCALE + bool "Intel Xscale" + +endchoice + +choice + prompt "Target Processor Endianness" + default ARCH_LITTLE_ENDIAN + help + This is the endianness you wish to build use. Choose either Big + Endian, or Little Endian. + +config ARCH_LITTLE_ENDIAN + bool "Little Endian" + +config ARCH_BIG_ENDIAN + bool "Big Endian" endchoice -- cgit v1.2.3