powerpc targets, long double implementation, and c++ programs
Edmar Wienskoski
edmar@freescale.com
Fri Sep 8 20:15:00 GMT 2006
Ok. I am starting to see the whole picture now.
So the whole thing appears to work with --disable-shared, just because
the way the linker
loads symbols in presence of libgcc_s.so versus libgcc.a.
Follow up question:
The e500 abi actualy defines long double to be 128bits floats.
On rs6000.c, rs6000_init_libfuncs links to __gcc_qadd becasue of
TARGET_HARD_FLOAT
shouldn't that be TARGET_HARD_FLOAT && TARGET_FPRS
and also have:
diff -u t-fprules-softfp~ t-fprules-softfp
--- t-fprules-softfp~ 2006-08-09 14:20:24.000000000 -0500
+++ t-fprules-softfp 2006-09-06 12:39:17.000000000 -0500
@@ -1,4 +1,4 @@
-softfp_float_modes := sf df
+softfp_float_modes := sf df tf
softfp_int_modes := si di
softfp_extensions := sfdf
softfp_truncations := dfsf
Would that be right ?
Thanks
Edmar
David Edelsohn wrote:
> Soft-float implementation of long double support is in development
>but not complete. Long double requires double precision registers, so it
>only will work with e500 double. It also requires floating point
>multiply-subtract (fmsub), which e500 double does not appear to
>implement. This is why long double has been disabled for e500 by testing
>for __NO_FPRS__. The soft-float support requires emulating fmsub, so it
>might work on e500 as well at that point.
>
> http://gcc.gnu.org/ml/gcc-patches/2006-03/msg01298.html is the
>patch that disabled this. This was in response to PR 26607 reported by
>you.
>
> The __lttf2 references occur similarly because the cmptf2 pattern
>checks for TARGET_FPRS. That could be relaxed for e500 double.
>
>David
>
>
>
>
More information about the Gcc
mailing list