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

[Minios-devel] [UNIKRAFT PATCH 11/13] arch/arm64: Add processor optimization GCC flags for arm64



We added serval arm64 CPU models in support list. In this patch,
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 | 27 +++++++++++++++++++++++++++
 2 files changed, 33 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..854d153
--- /dev/null
+++ b/arch/arm/arm64/Compiler.uk
@@ -0,0 +1,6 @@
+# set cross compile
+ifeq ($(CROSS_COMPILE),)
+ifneq ($(UK_ARCH),$(HOSTARCH))
+       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..44ada5f
--- /dev/null
+++ b/arch/arm/arm64/Makefile.uk
@@ -0,0 +1,27 @@
+ASFLAGS  += -D__ARM_64__
+CFLAGS   += -D__ARM_64__ -fms-extensions
+CXXFLAGS += -D__ARM_64__ -fms-extensions
+
+# GCC support -mcpu=native for arm64 from 6.0
+$(eval $(call set_flags_for_valid_gcc,$(MARCH_ARM64_NATIVE),6,0,-mcpu=native))
+
+# GCC support -mcpu=generic for arm64 from 4.8
+$(eval $(call 
set_flags_for_valid_gcc,$(MARCH_ARM64_GENERIC),4,8,-march=armv8-a -mcpu=generic 
-mtune=generic))
+
+# GCC support -mcpu=cortex-a53 for arm64 from 4.9
+$(eval $(call 
set_flags_for_valid_gcc,$(MARCH_ARM64_CORTEXA53),4,9,-march=armv8-a 
-mcpu=cortex-a53 -mtune=cortex-a53))
+
+# GCC support -mcpu=cortex-a57 for arm64 from 4.9
+$(eval $(call 
set_flags_for_valid_gcc,$(MARCH_ARM64_CORTEXA57),4,9,-march=armv8-a 
-mcpu=cortex-a57 -mtune=cortex-a57))
+
+# GCC support -mcpu=cortex-a72 for arm64 from 5.0
+$(eval $(call 
set_flags_for_valid_gcc,$(MARCH_ARM64_CORTEXA72),5,0,-march=armv8-a 
-mcpu=cortex-a72 -mtune=cortex-a72))
+
+# GCC support -mcpu=cortex-a73 for arm64 from 7.0
+$(eval $(call 
set_flags_for_valid_gcc,$(MARCH_ARM64_CORTEXA73),7,0,-march=armv8-a 
-mcpu=cortex-a73 -mtune=cortex-a73))
+
+# GCC support -mcpu=cortex-a55 for arm64 from 8.0
+$(eval $(call 
set_flags_for_valid_gcc,$(MARCH_ARM64_CORTEXA55),8,0,-march=armv8.2-a 
-mcpu=cortex-a55 -mtune=cortex-a55))
+
+# GCC support -mcpu=cortex-a75 for arm64 from 8.0
+$(eval $(call 
set_flags_for_valid_gcc,$(MARCH_ARM64_CORTEXA75),8,0,-march=armv8.2-a 
-mcpu=cortex-a75 -mtune=cortex-a75))
-- 
2.7.4


_______________________________________________
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®.