Don't try to copy results into an FPA register when compiling for Maverick diff -urN gcc-4.3.0/gcc/config/arm-original/arm/ieee754-df.S gcc-4.3.0/gcc/config/arm/ieee754-df.S --- gcc-4.3.0/gcc/config/arm-original/arm/ieee754-df.S 2008-02-19 14:32:15.000000000 +1000 +++ gcc-4.3.0/gcc/config/arm/ieee754-df.S 2008-04-10 16:38:45.000000000 +1000 @@ -500,7 +500,7 @@ ARM_FUNC_ALIAS aeabi_ul2d floatundidf orrs r2, r0, r1 -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) do_it eq, t mvfeqd f0, #0.0 #else @@ -508,7 +508,7 @@ #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. @@ -526,7 +526,7 @@ ARM_FUNC_ALIAS aeabi_l2d floatdidf orrs r2, r0, r1 -#if !defined (__VFP_FP__) && !defined(__SOFTFP__) +#if !defined (__VFP_FP__) && !defined (__MAVERICK__) && !defined(__SOFTFP__) do_it eq, t mvfeqd f0, #0.0 #else @@ -534,7 +534,7 @@ #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. @@ -586,7 +586,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. diff -urN gcc-4.3.0/gcc/config/arm-original/arm/ieee754-sf.S gcc-4.3.0/gcc/config/arm/ieee754-sf.S --- gcc-4.3.0/gcc/config/arm-original/arm/ieee754-sf.S 2008-02-19 14:32:15.000000000 +1000 +++ gcc-4.3.0/gcc/config/arm/ieee754-sf.S 2008-04-10 16:39:15.000000000 +1000 @@ -330,7 +330,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__) do_it eq, t mvfeqs f0, #0.0 #else @@ -345,7 +345,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__) do_it eq, t mvfeqs f0, #0.0 #else @@ -363,7 +363,7 @@ rsc ah, ah, #0 #endif 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. @@ -432,7 +432,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]!