This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: RFA fix conversion of little-byte big-word floats to doublest
On Sat, 04 Dec 2004 11:00:54 EST, Daniel Jacobowitz <drow@false.org>
wrote:
> On Sat, Dec 04, 2004 at 03:46:24PM +0000, Richard Earnshaw wrote:
> > On Sat, 04 Dec 2004 10:44:30 EST, Daniel Jacobowitz <drow@false.org>
> > wrote:
> > > 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.
I suspect it's completely broken.
> The swap-back code only swaps the first two words also.
>
It wouldn't surprise me in the least.
> 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.
Will do.
R.