1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# Configuration for Linux on ARM.
# Generating binaries for the ARMv7-a architecture and higher
#
ARCH_ARM_HAVE_THUMB_SUPPORT := true
ARCH_ARM_HAVE_FAST_INTERWORKING := true
ARCH_ARM_HAVE_64BIT_DATA := true
ARCH_ARM_HAVE_HALFWORD_MULTIPLY := true
ARCH_ARM_HAVE_CLZ := true
ARCH_ARM_HAVE_FFS := true
ARCH_ARM_HAVE_ARMV7A := true
ARCH_ARM_HAVE_TLS_REGISTER := true
ifneq ($(strip $(TARGET_ARCH_VARIANT_FPU)),)
ARCH_ARM_HAVE_VFP := true
else
ARCH_ARM_HAVE_VFP := false
endif
ifeq ($(TARGET_ARCH_VARIANT_FPU), neon)
ARCH_ARM_HAVE_VFP_D32 := true
ARCH_ARM_HAVE_NEON := true
endif
mcpu-arg = $(shell sed 's/^-mcpu=//' <<< "$(call cc-option,-mcpu=$(1),-mcpu=$(2))")
ifeq ($(TARGET_ARCH_VARIANT_CPU), cortex-a15)
TARGET_ARCH_VARIANT_CPU := $(call mcpu-arg,cortex-a15,cortex-a9)
ARCH_ARM_HAVE_NEON_UNALIGNED_ACCESS := true
ARCH_ARM_NEON_MEMSET_DIVIDER := 132
#ARCH_ARM_NEON_MEMCPY_ALIGNMENT_DIVIDER := 224
endif
ifeq ($(TARGET_ARCH_VARIANT_CPU), cortex-a9)
TARGET_ARCH_VARIANT_CPU := $(call mcpu-arg,cortex-a9,cortex-a8)
ARCH_ARM_HAVE_NEON_UNALIGNED_ACCESS := true
ARCH_ARM_NEON_MEMSET_DIVIDER := 132
ARCH_ARM_NEON_MEMCPY_ALIGNMENT_DIVIDER := 224
endif
ifeq ($(TARGET_ARCH_VARIANT_CPU), cortex-a8)
TARGET_ARCH_VARIANT_CPU := $(call mcpu-arg,cortex-a8,)
ARCH_ARM_HAVE_NEON_UNALIGNED_ACCESS := true
ARCH_ARM_NEON_MEMSET_DIVIDER := 132
ARCH_ARM_NEON_MEMCPY_ALIGNMENT_DIVIDER := 224
endif
ifneq ($(strip $(TARGET_ARCH_VARIANT_CPU)),)
arch_variant_cflags := \
-mcpu=$(strip $(TARGET_ARCH_VARIANT_CPU))
else
# fall back on generic tunning if cpu is not specified
arch_variant_cflags := \
-march=armv7-a
endif
ifneq ($(strip $(TARGET_ARCH_VARIANT_FPU)),)
arch_variant_cflags += \
-mfloat-abi=softfp \
-mfpu=$(strip $(TARGET_ARCH_VARIANT_FPU))
else
# fall back on soft tunning if fpu is not specified
arch_variant_cflags += \
-mfloat-abi=soft
endif
ifeq ($(strip $(TARGET_ARCH_VARIANT_CPU)),cortex-a8)
arch_variant_ldflags := \
-Wl,--fix-cortex-a8
else
arch_variant_ldflags :=
endif
|