From 5f5056f503e8643fc5e2eeffd6382aadded4c32d Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Wed, 15 Jun 2011 15:33:24 +0200 Subject: [PATCH] emulator: Build emulator platform images as ARMv7-A Now that the emulator supports proper ARMv7 emulation, switch to building all emulator-specific platform images using this instruction set, in order to benefit from the noticeable speed boost provided by Thumb-2 instructions. Note that we don't build with NEON support because emulated NEON instructions are currently slow, though they work. IMPORTANT: You need to have the following emulator patch in your tree in order to start these platform builds easily: https://review.source.android.com//#change,23798 Otherwise, the alternative is to do these things: 1/ Telling the emulator to emulate an ARMv7-A CPU, instead of an ARMv5TE one. This is normally done with "-qemu cortex-a8" 2/ Using an ARMv7-A capable kernel image, which is available and usable with -kernel prebuilt/android-arm/kernel-qemu-armv7 Note that the emulator has a special hack that automatically enables 1/ if 2/ is being used (i.e. if the kernel image name ends with -armv7, then emulate an ARMv7-A CPU automatically). So in reality, only 2/ is required. Change-Id: I5c0245ba5e6a2bc34d0d49b2c024fffd317a5eed --- target/board/generic/BoardConfig.mk | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/target/board/generic/BoardConfig.mk b/target/board/generic/BoardConfig.mk index 26bf6ab12..f2295a20d 100644 --- a/target/board/generic/BoardConfig.mk +++ b/target/board/generic/BoardConfig.mk @@ -6,7 +6,22 @@ # The generic product target doesn't have any hardware-specific pieces. TARGET_NO_BOOTLOADER := true TARGET_NO_KERNEL := true -TARGET_CPU_ABI := armeabi + +# Note: we build the platform images for ARMv7-A _without_ NEON. +# +# Technically, the emulator supports ARMv7-A _and_ NEON instructions, but +# emulated NEON code paths typically ends up 2x slower than the normal C code +# it is supposed to replace (unlike on real devices where it is 2x to 3x +# faster). +# +# What this means is that the platform image will not use NEON code paths +# that are slower to emulate. On the other hand, it is possible to emulate +# application code generated with the NDK that uses NEON in the emulator. +# +TARGET_ARCH_VARIANT := armv7-a +TARGET_CPU_ABI := armeabi-v7a +TARGET_CPU_ABI2 := armeabi + HAVE_HTC_AUDIO_DRIVER := true BOARD_USES_GENERIC_AUDIO := true