]> sourceware.org Git - newlib-cygwin.git/commitdiff
include:
authorJoseph Myers <joseph@codesourcery.com>
Thu, 8 Nov 2007 00:08:48 +0000 (00:08 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 8 Nov 2007 00:08:48 +0000 (00:08 +0000)
2007-11-07  Joseph Myers  <joseph@codesourcery.com>
    Daniel Jacobowitz  <dan@codesourcery.com>

* floatformat.h (struct floatformat): Add split_half field.
(floatformat_ibm_long_double): New.

libiberty:
2007-11-07  Joseph Myers  <joseph@codesourcery.com>
    Daniel Jacobowitz  <dan@codesourcery.com>

* floatformat.c (mant_bits_set): New.
(floatformat_to_double): Use it.  Note no special handling of
split formats.
(floatformat_from_double): Note no special handing of split
formats.
(floatformat_ibm_long_double_is_valid,
floatformat_ibm_long_double): New.
(floatformat_ieee_single_big, floatformat_ieee_single_little,
floatformat_ieee_double_big, floatformat_ieee_double_little,
floatformat_ieee_double_littlebyte_bigword, floatformat_vax_f,
floatformat_vax_d, floatformat_vax_g, floatformat_i387_ext,
floatformat_m68881_ext, floatformat_i960_ext,
floatformat_m88110_ext, floatformat_m88110_harris_ext,
floatformat_arm_ext_big, floatformat_arm_ext_littlebyte_bigword,
floatformat_ia64_spill_big, floatformat_ia64_spill_little,
floatformat_ia64_quad_big, floatformat_ia64_quad_little): Update
for addition of split_half field.

gdb:
2007-11-07  Joseph Myers  <joseph@codesourcery.com>
    Daniel Jacobowitz  <dan@codesourcery.com>

* gdbtypes.c (floatformats_ibm_long_double): New.
* gdbtypes.h (floatformats_ibm_long_double): Declare.
* ia64-tdep.c (floatformat_ia64_ext): Update for addition of
split_half field.
* mips-tdep.c (n32n64_floatformat_always_valid,
floatformat_n32n64_long_double_big, floatformats_n32n64_long):
Remove.
(mips_gdbarch_init): Use floatformats_ibm_long_double instead of
floatformats_n32n64_long.
* ppc-linux-tdep.c (ppc_linux_init_abi): Use 128-bit IBM long
double.
* doublest.c (convert_floatformat_to_doublest,
convert_doublest_to_floatformat): Handle split floating-point
formats.
* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Handle IBM long
double arguments.
(ppc64_sysv_abi_push_dummy_call): Likewise.
(do_ppc_sysv_return_value): Handle IBM long double return.

include/ChangeLog
include/floatformat.h

index f3dc433342842cac10a6fe394f9c6746ceaf955b..1bde4c5b6f674b09a5a3549720c916740fa75397 100644 (file)
@@ -1,3 +1,9 @@
+2007-11-07  Joseph Myers  <joseph@codesourcery.com>
+           Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * floatformat.h (struct floatformat): Add split_half field.
+       (floatformat_ibm_long_double): New.
+
 2007-11-05  Danny Smith  <dannysmith@users.sourceforge.net>
 
        * coff/pe.h (COFF_ENCODE_ALIGNMENT) Define.
index f1bd7f601f536716b1e3cf6e8dc4d1e7dd0e7577..c5f60a3cd93a285dfb8d3e063a614bd196a7a125 100644 (file)
@@ -85,6 +85,13 @@ struct floatformat
 
   /* Validator method.  */
   int (*is_valid) (const struct floatformat *fmt, const void *from);
+
+  /* Is the format actually the sum of two smaller floating point
+     formats (IBM long double, as described in
+     gcc/config/rs6000/darwin-ldouble-format)?  If so, this is the
+     smaller format in question, and the fields sign_start through
+     intbit describe the first half.  If not, this is NULL.  */
+  const struct floatformat *split_half;
 };
 
 /* floatformats for IEEE single and double, big and little endian.  */
@@ -118,6 +125,8 @@ extern const struct floatformat floatformat_ia64_spill_big;
 extern const struct floatformat floatformat_ia64_spill_little;
 extern const struct floatformat floatformat_ia64_quad_big;
 extern const struct floatformat floatformat_ia64_quad_little;
+/* IBM long double (double+double).  */
+extern const struct floatformat floatformat_ibm_long_double;
 
 /* Convert from FMT to a double.
    FROM is the address of the extended float.
This page took 0.034609 seconds and 5 git commands to generate.