[arch][arm] Add armv8-a

Allow arm8 systems to set ARM_CPU to armv8-a to use new armv8 instructions
in 32 bit code.

Change-Id: Idad8d5fd81c71bab2f306923df7d342bac742c28
This commit is contained in:
Arve Hjønnevåg
2015-09-18 20:11:25 -07:00
parent 8c5a570500
commit f12796e834
4 changed files with 32 additions and 0 deletions

View File

@@ -34,6 +34,12 @@
/* echo | gcc -E -dM - to dump builtin defines */
#if defined(__ARM_ARCH_8A__)
#ifndef ARM_ARCH_LEVEL
#define ARM_ARCH_LEVEL 8
#endif
#endif
#if defined(__ARM_ARCH_7EM__)
#define ARM_ARCH_7EM 1
#endif

View File

@@ -48,6 +48,8 @@
#define CACHE_LINE 32
#elif ARM_CPU_CORTEX_A15
#define CACHE_LINE 64
#elif ARM_CPU_CORTEX_ARMV8_A
#define CACHE_LINE 64
#else
#error unknown cpu
#endif

View File

@@ -193,6 +193,24 @@ GLOBAL_DEFINES += \
HANDLED_CORE := true
ENABLE_THUMB := false # armemu doesn't currently support thumb properly
endif
ifeq ($(ARM_CPU),armv8-a)
GLOBAL_DEFINES += \
ARM_CPU_CORTEX_ARMV8_A=1 \
ARM_WITH_CP15=1 \
ARM_WITH_MMU=1 \
ARM_ISA_ARMv7=1 \
ARM_ISA_ARMv7A=1 \
ARM_WITH_THUMB=1 \
ARM_WITH_THUMB2=1 \
ARM_WITH_CACHE=1 \
ARM_WITH_L2=1
ifneq ($(ARM_WITHOUT_VFP_NEON),true)
GLOBAL_DEFINES += \
ARM_WITH_VFP=1 \
ARM_WITH_NEON=1
endif
HANDLED_CORE := true
endif
ifneq ($(HANDLED_CORE),true)
$(error $(LOCAL_DIR)/rules.mk doesnt have logic for arm core $(ARM_CPU))

View File

@@ -108,5 +108,11 @@ endif
ifeq ($(ARM_CPU),armemu)
ARCH_arm_COMPILEFLAGS += -march=armv7-a
endif
ifeq ($(ARM_CPU),armv8-a)
ARCH_arm_COMPILEFLAGS += -march=$(ARM_CPU)
ifneq ($(ARM_WITHOUT_VFP_NEON),true)
ARCH_arm_COMPILEFLAGS += -mfpu=vfpv3 -mfloat-abi=softfp
endif
endif
endif