Re: [PATCH] m32c-tdep.c: Add virtual_frame_pointer function

Daniel Jacobowitz
2006-06-29T02:34:09Z

On Wed, Jun 28, 2006 at 11:29:41PM +0200, Mark Kettenis wrote:
> > Date: Wed, 28 Jun 2006 15:29:18 +0200
> > From: Corinna Vinschen <vinschen@redhat.com>
> >
> > Hi,
> >
> > the below patch adds a virtual_frame_pointer function to m32c-tdep.c,
> > to avoid that legacy_virtual_frame_pointer is called from tracepoint.c,
> > function encode_actions(). The legacy function either expects a
> > DEPRECATED_FP_REGNUM function, or it expects SP_REGNUM <= NUM_REGS,
> > which is not the case for the m32c code which includes serious
> > register banking. The patch avoids all GDB internal errors in the
> > gdb.trace testsuite and allows to return PASSes for all these testcases,
> > except a single one (FAIL: gdb.trace/packetlen.exp: setup collect actions).
> >
> > Ok to apply?
>
> You probably should change legacy_virtual_frame_pointer to check for
> SP_REGNUM < NUM_REGS + NUM_PSEUDO_REGS instead.

Neither, I don't think! Did this just turn up in a testsuite run, or
did you actually try it with tracepoints, Corinna?

The assertion seems correct to me. The frame register number is going
to get sent to the remote target system. We shouldn't ever do that for
pseudo registers, because the target probably doesn't know how to
generate their contents... otherwise they'd be real registers.

--
Daniel Jacobowitz
CodeSourcery