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

Daniel Jacobowitz
2003-03-03T04:50:56Z

On Sun, Mar 02, 2003 at 10:35:01AM +0100, Stephane Carrez wrote:
> Hi!
>
> Michael Elizabeth Chastain wrote:
>
> >[...]
> >Anyways, I think there are two problems here:
> >
> >(1) dwarf2_evaluate_loc_desc is getting called with ctx->in_reg=true
> > and size=8. I need to provide an actual test executable to show
> > this happening. When this happens, dwarf2_evaluate_loc_desc just
> > reads *1* register. This is definitely wrong (if my description
> > of gdb's behavior is accurate).
> >
>
>
> clap! clap! clap!
>
> FYI, I have this problem too with HC11 and it is *critical* for me as
> this platform being a 16-bit register target, it uses multiple registers
> quite intensively (up to 4 for long long). It was working very very well
> before...

OK, so we need to do something about this before the next release.
It's a problem I hadn't anticipated. I have several ideas on how to
progress, particularly:
- Making a call to the LOC_COMPUTED functions return a LOC_REGISTER
so that the logic in read_var_value can go back to handling this case.
- Implement the get-next-register mechanism that Mark K. designed.

Hmm, for the former I'm not sure I know what I want it to look like
yet; but some logic definitely needs to be pushed higher than it is
(i.e. out of the evaluator).

--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer