summaryrefslogtreecommitdiffstats
path: root/libFDK/include/arm/clz_arm.h
diff options
context:
space:
mode:
authorSeth Shelnutt <shelnutt2@gmail.com>2012-07-16 11:55:12 -0400
committerSteve Kondik <shade@chemlab.org>2012-09-24 12:41:52 -0700
commit49fa8770b0adce84246d5db3feec09db02eeeaee (patch)
treec4e14f0a4e8abac64c5ef28d4612bb04e1f6d06e /libFDK/include/arm/clz_arm.h
parent2228e360595641dd906bf1773307f43d304f5b2e (diff)
downloadandroid_external_aac-49fa8770b0adce84246d5db3feec09db02eeeaee.tar.gz
android_external_aac-49fa8770b0adce84246d5db3feec09db02eeeaee.tar.bz2
android_external_aac-49fa8770b0adce84246d5db3feec09db02eeeaee.zip
libFDK in libaac: Add conditional definition to switch arm asm forjellybean-stablejellybean
devices that don't support thumb2. Tested on heroc with armv6j. Change-Id: If93892e920097ac7bdfa3f15d2ad1ee6d04bdcc6
Diffstat (limited to 'libFDK/include/arm/clz_arm.h')
-rw-r--r--libFDK/include/arm/clz_arm.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/libFDK/include/arm/clz_arm.h b/libFDK/include/arm/clz_arm.h
index b33b800..7b9d614 100644
--- a/libFDK/include/arm/clz_arm.h
+++ b/libFDK/include/arm/clz_arm.h
@@ -92,6 +92,14 @@ amm-info@iis.fraunhofer.de
#if defined(__GNUC__) && defined(__ARM_ARCH_5TE__) /* cppp replaced: elif */
/* ARM gcc*/
+#if defined(__thumb__) && !defined(__thumb2__)
+# define __SWITCH_TO_ARM \
+ ".align\n" \
+ ".arm\n"
+
+#else
+# define __SWITCH_TO_ARM /* nothing */
+#endif
#define FUNCTION_fixnormz_D
#define FUNCTION_fixnorm_D
@@ -99,7 +107,7 @@ amm-info@iis.fraunhofer.de
inline INT fixnormz_D(LONG value)
{
INT result;
- asm("clz %0, %1 ": "=r"(result) : "r"(value) );
+ asm(__SWITCH_TO_ARM "clz %0, %1 ": "=r"(result) : "r"(value) );
return result;
}