This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: 8-byte register values on a 32-bit machine
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: Andrew Cagney <ac131313 at redhat dot com>, Mark Kettenis <kettenis at chello dot nl>, brobecker at gnat dot com, mec at shout dot net, gdb at sources dot redhat dot com, Richard dot Earnshaw at arm dot com
- Date: Mon, 03 Mar 2003 11:25:20 +0000
- Subject: Re: 8-byte register values on a 32-bit machine
- Organization: ARM Ltd.
- Reply-to: Richard dot Earnshaw at arm dot com
> On Sat, Mar 01, 2003 at 06:42:58PM -0500, Andrew Cagney wrote:
> > Mark,
> >
> > Now that there is this loc_computed stuff, it is probably possible to
> > modify stabs to, for the case in question, implement a loc_computed symbol.
>
> Hmm, I'm not sure that's the right way to go. DWARF-2 also will say
> that an eight byte value is in one register. Why put the hacks in
> both readers?
>
> By the way, assuming I can find the time (ugh) I'm not done with
> LOC_COMPUTED yet. On my list so far:
> - Location lists
> - Turning locations into better defined objects
> - Thus, allowing LOC_COMPUTED to return a non-computed "location"
> - Allowing more complex locations, namely DW_OP_piece style.
> - Eventually turning on more uses of DW_OP_piece in GCC.
The main reason gcc allocates objects to contiguous register ranges is
because gdb can't handle anything else. Fixing gdb to allow location
lists would be a major step forward, since then gcc would be able to split
double-register objects before register allocation and allocate each part
individually. That could be a major win on register starved machines.
R.