From 749feb5ea572d9d47c689cd66390ab4350732581 Mon Sep 17 00:00:00 2001 From: amodra Date: Sat, 23 Mar 2002 11:57:29 +0000 Subject: [PATCH] * real.h (N): Special case 128 bit doubles. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51229 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 2 ++ gcc/real.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b95a707cdb6..21bc263f7db 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ 2002-03-23 Alan Modra + * real.h (N): Special case 128 bit doubles. + * combine.c (simplify_comparison): When widening modes, ignore sign extension on CONST_INTs. diff --git a/gcc/real.h b/gcc/real.h index d3cf780ef33..5683bbca4f1 100644 --- a/gcc/real.h +++ b/gcc/real.h @@ -77,7 +77,12 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA /* REAL_VALUE_TYPE is an array of the minimum number of HOST_WIDE_INTs required to hold MAX_LONG_DOUBLE_TYPE_SIZE bits. */ +#if MAX_LONG_DOUBLE_TYPE_SIZE == 128 +/* For 128 bit reals, we calculate internally with extra precision. */ +#define N (160 / BITS_PER_UNIT) +#else #define N (MAX_LONG_DOUBLE_TYPE_SIZE / BITS_PER_UNIT) +#endif #define S sizeof (HOST_WIDE_INT) typedef struct { HOST_WIDE_INT r[N/S + (N%S ? 1 : 0)]; /* round up */ -- 2.11.0