From 332f7d0bd8939d3f00b48bcadae0139e0942be92 Mon Sep 17 00:00:00 2001
From: Dan Albert
This ABI extends armeabi to include several CPU instruction set extensions. The instruction extensions that this Android-specific @@ -197,31 +196,6 @@ enforce the rule that the compiler must pass all double values in core register function calls, instead of dedicated floating-point ones. The system can perform all internal computations using the FP registers. Doing so speeds up the computations greatly.
-Although the requirement to use core register pairs produces a modest performance hit, it ensures -compatibility with all existing armeabi binaries. If you need the additional -performance, you can specify your ABI as {@code armeabi-v7a-hard} instead. Doing so -allows you to use hard floats, while still linking with Android native APIs -that use {@code softfp}. For more information, refer to the comments in -{@code $NDK/tests/device/hard-float/jni/android.mk}.
- -Note: You cannot specify {@code APP_ABI} as both -{@code armeabi-v7a} and {@code armeabi-v7a-hard}. In either case, the build system places the -shared libraries in the {@code armeabi-v7a/} directory.
- -This variant of the {@code armeabi-v7a} ABI is unique to the NDK. The NDK build -system adds the following flags in addition to those that it uses for the -{@code armeabi-v7a} ABI:
- --TARGET_CFLAGS += -mhard-float -D_NDK_MATH_NO_SOFTFP=1 -TARGET_LDFLAGS += -Wl,--no-warn-mismatch -lm_hard -- -
The compiler compiles all code with hard-float, and links it with {@code libm_hard.a}. -This math library is the same one as {@code libm.a}, except that it follows hard-float ABI -conventions. In the APK, the generated shared libraries reside in {@code /lib/armeabi-v7a/}.
-This ABI is for ARMv8-based CPUs that support AArch64. It also includes the NEON and VFPv4 instruction sets.