[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT PATCHv4 11/43] arch/arm64: Add processor optimization GCC flags for arm64



Hi Wei,

On 07/06/2018 10:03 AM, Wei Chen wrote:
We added serval arm64 CPU models in support list. In this patch,

s/serval/several/

Cheers,

we check the GCC version and add optimization GCC flags for
selected processor.

Current supported arm64 CPU models:
native, generic, cortex-a53, cortex-a57, cortex-a72, cortex-a73,
cortex-a55 and cortex-a75.

Signed-off-by: Wei Chen <Wei.Chen@xxxxxxx>
---
  arch/arm/arm64/Compiler.uk |  6 ++++++
  arch/arm/arm64/Makefile.uk | 43 ++++++++++++++++++++++++++++++++++++++
  2 files changed, 49 insertions(+)
  create mode 100644 arch/arm/arm64/Compiler.uk
  create mode 100644 arch/arm/arm64/Makefile.uk

diff --git a/arch/arm/arm64/Compiler.uk b/arch/arm/arm64/Compiler.uk
new file mode 100644
index 0000000..4572013
--- /dev/null
+++ b/arch/arm/arm64/Compiler.uk
@@ -0,0 +1,6 @@
+# set cross compile
+ifeq ($(CONFIG_CROSS_COMPILE),)
+ifneq ($(CONFIG_UK_ARCH),$(HOSTARCH))
+       CONFIG_CROSS_COMPILE := aarch64-linux-gnu-
+endif
+endif
diff --git a/arch/arm/arm64/Makefile.uk b/arch/arm/arm64/Makefile.uk
new file mode 100644
index 0000000..f6aeeac
--- /dev/null
+++ b/arch/arm/arm64/Makefile.uk
@@ -0,0 +1,43 @@
+ASFLAGS  += -D__ARM_64__
+CFLAGS   += -D__ARM_64__ -fms-extensions
+CXXFLAGS += -D__ARM_64__ -fms-extensions

I would rather avoid to define yet another macro and re-use __aarch64__ defined by the aarch64 compiler.

+
+# GCC support -mcpu=native for arm64 from 6.0
+ifeq ($(CONFIG_MARCH_ARM64_NATIVE),y)
+$(eval $(call set_flags_if_gcc_version_ge,6,0,-mcpu=native))
+endif
+
+# GCC support -mcpu=generic for arm64 from 4.8
+ifeq ($(CONFIG_MARCH_ARM64_GENERIC),y)
+$(eval $(call set_flags_if_gcc_version_ge,4,8,-march=armv8-a -mcpu=generic 
-mtune=generic))
+endif
+
+# GCC support -mcpu=cortex-a53 for arm64 from 4.9
+ifeq ($(CONFIG_MARCH_ARM64_CORTEXA53),y)
+$(eval $(call set_flags_if_gcc_version_ge,4,9,-march=armv8-a -mcpu=cortex-a53 
-mtune=cortex-a53))
+endif
+
+# GCC support -mcpu=cortex-a57 for arm64 from 4.9
+ifeq ($(CONFIG_MARCH_ARM64_CORTEXA57),y)
+$(eval $(call set_flags_if_gcc_version_ge,4,9,-march=armv8-a -mcpu=cortex-a57 
-mtune=cortex-a57))
+endif
+
+# GCC support -mcpu=cortex-a72 for arm64 from 5.0
+ifeq ($(CONFIG_MARCH_ARM64_CORTEXA72),y)
+$(eval $(call set_flags_if_gcc_version_ge,5,0,-march=armv8-a -mcpu=cortex-a72 
-mtune=cortex-a72))
+endif
+
+# GCC support -mcpu=cortex-a73 for arm64 from 7.0
+ifeq ($(CONFIG_MARCH_ARM64_CORTEXA73),y)
+$(eval $(call set_flags_if_gcc_version_ge,7,0,-march=armv8-a -mcpu=cortex-a73 
-mtune=cortex-a73))
+endif
+
+# GCC support -mcpu=cortex-a55 for arm64 from 8.0
+ifeq ($(CONFIG_MARCH_ARM64_CORTEXA55),y)
+$(eval $(call set_flags_if_gcc_version_ge,8,0,-march=armv8.2-a 
-mcpu=cortex-a55 -mtune=cortex-a55))
+endif
+
+# GCC support -mcpu=cortex-a75 for arm64 from 8.0
+ifeq ($(CONFIG_MARCH_ARM64_CORTEXA75),y)
+$(eval $(call set_flags_if_gcc_version_ge,8,0,-march=armv8.2-a 
-mcpu=cortex-a75 -mtune=cortex-a75))
+endif


Cheers,

--
Julien Grall

--
Julien Grall

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.