diff -ru gcc/libffi/src/arm/sysv.S gcc+iPhone/libffi/src/arm/sysv.S --- gcc/libffi/src/arm/sysv.S 2007-09-04 17:52:45.000000000 +0000 +++ gcc+iPhone/libffi/src/arm/sysv.S 2008-09-07 12:59:53.000000000 +0000 @@ -188,7 +188,7 @@ @ return INT cmp r3, #FFI_TYPE_INT -#ifdef __SOFTFP__ +#if defined(__SOFTFP__) || defined(__VFP_FP__) cmpne r3, #FFI_TYPE_FLOAT #endif streq r0, [r2] @@ -196,12 +196,12 @@ @ return INT64 cmp r3, #FFI_TYPE_SINT64 -#ifdef __SOFTFP__ +#if defined(__SOFTFP__) || defined(__VFP_FP__) cmpne r3, #FFI_TYPE_DOUBLE #endif stmeqia r2, {r0, r1} -#ifndef __SOFTFP__ +#if !defined(__SOFTFP__) && !defined(__VFP_FP__) beq LSYM(Lepilogue) @ return FLOAT @@ -244,21 +244,21 @@ beq .Lretint cmp r0, #FFI_TYPE_FLOAT -#ifdef __SOFTFP__ +#if defined(__SOFTFP__) || defined(__VFP_FP__) beq .Lretint #else beq .Lretfloat #endif cmp r0, #FFI_TYPE_DOUBLE -#ifdef __SOFTFP__ +#if defined(__SOFTFP__) || defined(__VFP_FP__) beq .Lretlonglong #else beq .Lretdouble #endif cmp r0, #FFI_TYPE_LONGDOUBLE -#ifdef __SOFTFP__ +#if defined(__SOFTFP__) || defined(__VFP_FP__) beq .Lretlonglong #else beq .Lretlongdouble @@ -277,7 +277,7 @@ ldr r1, [sp, #4] b .Lclosure_epilogue -#ifndef __SOFTFP__ +#if !defined(__SOFTFP__) && !defined(__VFP_FP__) .Lretfloat: ldfs f0, [sp] b .Lclosure_epilogue