mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-27 02:45:29 +08:00
real.h (ieee_extended_intel_96_round_53_format): New.
* real.h (ieee_extended_intel_96_round_53_format): New. * real.c (ieee_extended_intel_96_round_53_format): New. * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Use it for XFmode and TFmode. From-SVN: r68445
This commit is contained in:
parent
c1a6244090
commit
bfa0c51930
@ -1,3 +1,11 @@
|
||||
2003-06-24 Richard Henderson <rth@redhat.com>
|
||||
(blame to: Loren James Rittle <ljrittle@acm.org>)
|
||||
|
||||
* real.h (ieee_extended_intel_96_round_53_format): New.
|
||||
* real.c (ieee_extended_intel_96_round_53_format): New.
|
||||
* config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Use it
|
||||
for XFmode and TFmode.
|
||||
|
||||
2003-06-24 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* config/h8300/h8300.md (4 anonymous patterns): Give internal
|
||||
|
@ -133,3 +133,13 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef DEFAULT_PCC_STRUCT_RETURN
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
/* FreeBSD sets the rounding precision of the FPU to 53 bits. Let the
|
||||
compiler get the contents of <float.h> and std::numeric_limits correct. */
|
||||
#define SUBTARGET_OVERRIDE_OPTIONS \
|
||||
do { \
|
||||
real_format_for_mode[XFmode - QFmode] \
|
||||
= &ieee_extended_intel_96_round_53_format; \
|
||||
real_format_for_mode[TFmode - QFmode] \
|
||||
= &ieee_extended_intel_96_round_53_format; \
|
||||
} while (0)
|
||||
|
19
gcc/real.c
19
gcc/real.c
@ -3326,6 +3326,25 @@ const struct real_format ieee_extended_intel_128_format =
|
||||
true
|
||||
};
|
||||
|
||||
/* The following caters to i386 systems that set the rounding precision
|
||||
to 53 bits instead of 64, e.g. FreeBSD. */
|
||||
const struct real_format ieee_extended_intel_96_round_53_format =
|
||||
{
|
||||
encode_ieee_extended,
|
||||
decode_ieee_extended,
|
||||
2,
|
||||
1,
|
||||
53,
|
||||
53,
|
||||
-16381,
|
||||
16384,
|
||||
79,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
true
|
||||
};
|
||||
|
||||
/* IBM 128-bit extended precision format: a pair of IEEE double precision
|
||||
numbers whose sum is equal to the extended precision value. The number
|
||||
|
@ -234,6 +234,7 @@ extern const struct real_format ieee_double_format;
|
||||
extern const struct real_format mips_double_format;
|
||||
extern const struct real_format ieee_extended_motorola_format;
|
||||
extern const struct real_format ieee_extended_intel_96_format;
|
||||
extern const struct real_format ieee_extended_intel_96_round_53_format;
|
||||
extern const struct real_format ieee_extended_intel_128_format;
|
||||
extern const struct real_format ibm_extended_format;
|
||||
extern const struct real_format mips_extended_format;
|
||||
|
Loading…
Reference in New Issue
Block a user