From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19312 invoked by alias); 4 Dec 2004 16:01:05 -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 19134 invoked from network); 4 Dec 2004 16:00:58 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sourceware.org with SMTP; 4 Dec 2004 16:00:58 -0000 Received: from drow by nevyn.them.org with local (Exim 4.34 #1 (Debian)) id 1CacL8-0000u2-5S; Sat, 04 Dec 2004 11:00:54 -0500 Date: Sat, 04 Dec 2004 16:57:00 -0000 From: Daniel Jacobowitz To: Richard Earnshaw Cc: gdb-patches@sources.redhat.com Subject: Re: RFA fix conversion of little-byte big-word floats to doublest Message-ID: <20041204160054.GA3130@nevyn.them.org> Mail-Followup-To: Richard Earnshaw , gdb-patches@sources.redhat.com References: <20041204154429.GA2764@nevyn.them.org> <200412041438.iB4Ec0cq017568@merlin.buzzard.freeserve.co.uk> <200412041546.iB4FkOnI002858@merlin.buzzard.freeserve.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200412041546.iB4FkOnI002858@merlin.buzzard.freeserve.co.uk> User-Agent: Mutt/1.5.5.1+cvs20040105i X-SW-Source: 2004-12/txt/msg00114.txt.bz2 On Sat, Dec 04, 2004 at 03:46:24PM +0000, Richard Earnshaw wrote: > On Sat, 04 Dec 2004 10:44:30 EST, Daniel Jacobowitz > wrote: > > On Sat, Dec 04, 2004 at 02:38:00PM +0000, Richard Earnshaw wrote: > > > > > > This patch fixes a bug in get_field which meant that we incorrectly > > > converted mixed-endian floats (ARM FPA style) into the internal doublest > > > format. This short change fixes over 300 testsuite failures in a combined > > > arm/thumb testsuite run on arm-elf. > > > > > > * doublest.c (get_field): Correctly extract floatformat_littebyte_bigwo > > rd > > > fields. > > > > > > OK? > > > > Could you summarize for me how this is supposed to work? This means > > that get_field treats littlebyte_bigword exactly the same as little. > > There's another copy of get_field in libiberty (I don't know why there > > are two) which treats it exactly the same as big, instead. I don't > > know how that works either, but it seems the two ought to agree. > > The caller has pre-converted the word order into a pure little-endian > format. See convert_format_to_doublest. > > Similar tricks are played on the reverse conversion. Huh; it looks like the copy in libiberty is just broken for this case. Is the code which does the swapping correct for the 96-bit format? It converts ABCD EFGH IJKL to EFGH ABCD IJKL; I would have guessed that pure little-endian representation would have been IJKL EFGH ABCD. The swap-back code only swaps the first two words also. Meanwhile, patch is OK; I'd appreciate it if you could add a comment in get_field/put_field somewhere explaining what's going on. -- Daniel Jacobowitz