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

Keith Walker
2003-03-03T11:52:58Z

At 11:25 03/03/2003 +0000, Richard Earnshaw wrote:
> > On Sat, Mar 01, 2003 at 06:42:58PM -0500, Andrew Cagney wrote:
> >
> > 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.

Actually it is the implementation of the DW_OP_piece operator (rather than
location lists) which allows the location of an object to be split into
multiple sub-locations.

Location lists allows, for any given PC value, for you to describe zero
(optimized out) or more locations for an object. These locations can
then be broken down into sub-locations if the resulting expression
evaluated then contains a DW_OP_piece operator.

Keith