From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1181 invoked by alias); 10 Mar 2002 20:45:19 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 1115 invoked from network); 10 Mar 2002 20:45:17 -0000 Received: from unknown (HELO localhost.redhat.com) (24.112.135.44) by sources.redhat.com with SMTP; 10 Mar 2002 20:45:17 -0000 Received: from cygnus.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id BD5613CA9; Sun, 10 Mar 2002 15:45:15 -0500 (EST) Message-ID: <3C8BC5DB.3040102@cygnus.com> Date: Sun, 10 Mar 2002 12:45:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:0.9.8) Gecko/20020210 X-Accept-Language: en-us MIME-Version: 1.0 To: Daniel Jacobowitz Cc: Don Howard , gdb-patches@sources.redhat.com Subject: Re: [RFA] mips: Fix "info registers" output References: <20010619225007.A10141@nevyn.them.org> <20020307165956.A22042@nevyn.them.org> <3C8ABF59.7080908@cygnus.com> <20020310015637.A13373@nevyn.them.org> <3C8B8A11.8070609@cygnus.com> <20020310120037.A29124@nevyn.them.org> <3C8B9C06.9020506@cygnus.com> <20020310143027.A3933@nevyn.them.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2002-03/txt/msg00146.txt.bz2 > Have a look at GCC's -fshort-double option. I'm not sure how MIPS would >> respond to it but I suspect it would make everyones head hurt. :-) > > > I suspect the stabs reader would go insane :) You'd have two floating > point types with different names but the same size... all sorts of > assumptions would probably get confused. It works for the d10v! That has: float 32 double 32 long double 64 by default. The poor d10v gets confused when ``double 64'' is specifed but that is only because the corresponding gdb code pre-dates multi-arch and so code to handle this is simply missing. > That wouldn't affect builtin_type_double, though, which we define in > terms of the 64 bits. Are you saying that should be updated based on > the type of 'double' in the objfile? I don't really think so, since > 'the type associated with the word "double"' isn't necessarily tied to > "what this architecture would normally call a double" and > builtin_type_double is the latter. MIPS would normally call a 64-bit > FP quantity a double, whatever GCC is up to. Now I'm confused :-). The type builtin_type_double is determined by the ABI, its value/behavour is influenced by TARGET_DOUBLE_BIT, TARGET_BYTE_ORDER and TARGET_DOUBLE_FORMAT. They are all attributes of the ABI and their values can be determined from the object file. Separate to this is the real register format and that is determined by the ISA. Consider the PPC which has strictly 64 bit FP registers but supports the 32 bit ``float'' type. If you print the register it is 64 bit, if you print a 32 bit float stored in the register than the 64 bit value is first converted to 32 bit. Other examples are Arm, m68k and i386. As soon as those targets stopped trying to use type_double et.al. bugs mysteriously disappeared and the code became simpler :-) The mips hasn't yet done this. > > Right; the way registers are acquired is both ISA and ABI dependent. I > don't know that the way they are interpreted afterwards is ABI > dependent... Their interpretation is ISA dependant so they should be using things like type_ieee_double et.al. enjoy, Andrew