From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26589 invoked by alias); 7 Jan 2003 22:16:06 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 26553 invoked from network); 7 Jan 2003 22:16:05 -0000 Received: from unknown (HELO mx2.redhat.com) (12.150.115.133) by 209.249.29.67 with SMTP; 7 Jan 2003 22:16:05 -0000 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.11.6/8.11.6) with ESMTP id h07MB5105394; Tue, 7 Jan 2003 17:11:05 -0500 Received: from potter.sfbay.redhat.com (potter.sfbay.redhat.com [172.16.27.15]) by int-mx2.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h07MFnn09342; Tue, 7 Jan 2003 17:15:49 -0500 Received: from localhost.localdomain (frothingslosh.sfbay.redhat.com [172.16.24.27]) by potter.sfbay.redhat.com (8.11.6/8.11.6) with ESMTP id h07MFnn21490; Tue, 7 Jan 2003 14:15:49 -0800 Received: (from rth@localhost) by localhost.localdomain (8.11.6/8.11.6) id h07MFnD23723; Tue, 7 Jan 2003 14:15:49 -0800 X-Authentication-Warning: localhost.localdomain: rth set sender to rth@redhat.com using -f Date: Tue, 07 Jan 2003 22:57:00 -0000 From: Richard Henderson To: Alexandre Oliva Cc: "Kaveh R. Ghazi" , gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org, gcc@gcc.gnu.org, libstdc++@gcc.gnu.org, oldham@codesourcery.com, ro@TechFak.Uni-Bielefeld.DE Subject: Re: Irix6 long doubles implemented wrong? (27_io/ostream_inserter_arith) Message-ID: <20030107221549.GR12992@redhat.com> Mail-Followup-To: Richard Henderson , Alexandre Oliva , "Kaveh R. Ghazi" , gcc-bugs@gcc.gnu.org, gcc-patches@gcc.gnu.org, gcc@gcc.gnu.org, libstdc++@gcc.gnu.org, oldham@codesourcery.com, ro@TechFak.Uni-Bielefeld.DE References: <200212142145.QAA25890@caip.rutgers.edu> <200212170531.AAA15561@caip.rutgers.edu> <200212241434.JAA22361@caip.rutgers.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i X-SW-Source: 2003-01/txt/msg00385.txt.bz2 This should have been split into several smaller patches. On Fri, Dec 27, 2002 at 11:47:15AM -0200, Alexandre Oliva wrote: > * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf. > (DBBIT_FUNCS): Added _df_to_tf. > (TPBIT_FUNCS): New. > (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down. > (LIBGCC_DEPS): Added TPBIT. > * mklibgcc.in: Support TPBIT and TPBIT_FUNCS. Ok. > * fp-bit.h: Define macros for TFmode floating-point constants > in IEEE and IBM-extended TFmode types. Declare functions > according to L_ macros. > (TMODES): Define if __LDBL_MANT_DIG__ has one of > the newly-supported widths. > (TFtype, TItype, UTItype): Define if TMODES is defined. > (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise. > (F_T_BITOFF, D_T_BITOFF): Define. > (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are > guaranteed to be wide enough. > * config/fp-bit.c: Check for L_ macros for tf functions. > (__thenan_tf): New. > (nan): Adjust. > (pack_d, unpack_d): Support IEEE 854 and IBM-extended TFmode > types. > (_fpmul_parts): Support TFmode. Compute exponent adjustment > from FRAC_NBITS, FRAC_BITS and NGARDS. > (usi_to_float): Cast constants to be shifted to fractype > instead of assuming long long is wide enough. > (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New. Ok, I guess. I'd kinda prefer that we use different names for the routines than __addtf etc for the IBM format. This would allow the IBM double-double format and the IEEE quad format routines to co-exist on one platform, which would allow non-Irix to use a more sensible format unambiguously. I won't insist on this though. > * print-rtl.c (print_rtx): Don't print MEM details in > GENERATOR_FILEs. Ok. > * rtl.c (get_mode_alignment): Moved to... > * stor-layout.c: ... here. Ok. > * calls.c (emit_library_call_value_1): Handle return values > in a PARALLEL. Ok. Yet another clue that these routines should be removed, and replaced with the generic call functions. > * expr.c (emit_group_store): Initialize dst with CONST0_RTX > for the appropriate mode. Ok. > * optabs.c (expand_binop) : Return xtarget if we haven't > been able to move the result to target. Ok, I guess. How does this come up? > * real.h (struct real_format): Add denorm_p, remove has_denorm. > * real.c: Adjust all formats and references to has_denorm. > * c-common.c (builtin_define_float_constants): Use denorm_p to > define DENORM_MIN. This one's sticky. Strictly speaking, the double-double format isn't LIA-1 compliant (too few denormal bits), and so libstdc++ ought to be setting denorm_min to zero. On the other hand, I can see that this value might still be useful for some people. Run it by the libstdc++ language lawyers. r~