This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
ppc e500: no spe disables 128 bit long doubles
- From: Aldy Hernandez <aldyh at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Zack Weinberg <zack at codesourcery dot com>
- Date: Mon, 21 Apr 2003 17:56:50 -0400
- Subject: ppc e500: no spe disables 128 bit long doubles
Specifying no SPE should disable 128 bit long doubles if they are
enabled; unless the user specifically asked for them.
I'm actually planning on adding emulation bits for 128 bit long
doubles; mainly because ABI incompatability is driving me nuts.
Zack, it's up to you to enable 128 bit long double "unspport" on
eabispe.h on the branch.
Committed to mainline and e500 branch.
Aldy
2003-04-21 Aldy Hernandez <aldyh at redhat dot com>
* config/rs6000/rs6000.c (rs6000_override_options): No SPE means
64-bit long doubles.
Index: config/rs6000/rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.458
diff -c -p -r1.458 rs6000.c
*** config/rs6000/rs6000.c 14 Apr 2003 22:54:35 -0000 1.458
--- config/rs6000/rs6000.c 21 Apr 2003 21:39:12 -0000
*************** rs6000_override_options (default_cpu)
*** 731,736 ****
--- 731,741 ----
MASK_STRING above when optimizing for size. */
if ((target_flags & MASK_STRING) != 0)
target_flags = target_flags & ~MASK_STRING;
+
+ /* No SPE means 64-bit long doubles, even if an E500. */
+ if (rs6000_spe_string != 0
+ && !strcmp (rs6000_spe_string, "no"))
+ rs6000_long_double_type_size = 64;
}
else if (rs6000_select[1].string != NULL)
{
*************** rs6000_override_options (default_cpu)
*** 745,750 ****
--- 750,757 ----
rs6000_float_gprs = 0;
if (rs6000_isel_string == 0)
rs6000_isel = 0;
+ if (rs6000_long_double_size_string == 0)
+ rs6000_long_double_type_size = 64;
}
/* Handle -m(no-)longcall option. This is a bit of a cheap hack,