Don't try to copy results into an FPA register when compiling for Maverick Index: gcc-4.2.4/gcc/config/arm/ieee754-df.S =================================================================== --- gcc-4.2.4.orig/gcc/config/arm/ieee754-df.S 2009-08-09 15:43:45.000000000 +0100 +++ gcc-4.2.4/gcc/config/arm/ieee754-df.S 2009-08-09 15:43:45.000000000 +0100 @@ -451,12 +451,12 @@ ARM_FUNC_ALIAS aeabi_ul2d floatundidf orrs r2, r0, r1 -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) mvfeqd f0, #0.0 #endif RETc(eq) -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) @ For hard FPA code we want to return via the tail below so that @ we can return the result in f0 as well as in r0/r1 for backwards @ compatibility. @@ -473,12 +473,12 @@ ARM_FUNC_ALIAS aeabi_l2d floatdidf orrs r2, r0, r1 -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) mvfeqd f0, #0.0 #endif RETc(eq) -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) @ For hard FPA code we want to return via the tail below so that @ we can return the result in f0 as well as in r0/r1 for backwards @ compatibility. @@ -522,7 +522,7 @@ add r4, r4, r2 b LSYM(Lad_p) -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) @ Legacy code expects the result to be returned in f0. Copy it @ there as well. Index: gcc-4.2.4/gcc/config/arm/ieee754-sf.S =================================================================== --- gcc-4.2.4.orig/gcc/config/arm/ieee754-sf.S 2005-08-06 14:26:35.000000000 +0100 +++ gcc-4.2.4/gcc/config/arm/ieee754-sf.S 2009-08-09 15:43:45.000000000 +0100 @@ -301,7 +301,7 @@ ARM_FUNC_ALIAS aeabi_ul2f floatundisf orrs r2, r0, r1 -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) mvfeqs f0, #0.0 #endif RETc(eq) @@ -313,7 +313,7 @@ ARM_FUNC_ALIAS aeabi_l2f floatdisf orrs r2, r0, r1 -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) mvfeqs f0, #0.0 #endif RETc(eq) @@ -323,7 +323,7 @@ rsbs al, al, #0 rsc ah, ah, #0 1: -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) @ For hard FPA code we want to return via the tail below so that @ we can return the result in f0 as well as in r0 for backwards @ compatibility. @@ -384,7 +384,7 @@ biceq r0, r0, ip, lsr #31 RET -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) LSYM(f0_ret): str r0, [sp, #-4]!