[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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user