Re: 8-byte register values on a 32-bit machine

Richard Earnshaw
2003-03-03T11:26:16Z

> 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.