This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]