On Tue, 2020-03-03 at 13:38 -0500, Hans-Peter Nilsson wrote:
> On Sat, 29 Feb 2020, Jeff Law wrote:
> > Wow, I think I wrote the v850 port back in circa 1997 and this bug has been
> > latent all this time.  Vlad's IRA changes twiddled register allocation in
> > just
> > the right way to expose this bug.
> > 
> > I'm not sure what I was thinking, but apparently I made a spectacularly bad
> > choice for the STATIC_CHAIN_REGNUM in choosing a call-saved register (r20).
> > 
> > It's simply wrong to use a call-saved register for the static chain.
> 
> Heh.  I did that mistake too, for CRIS. :/
> 
> A comment from RTH below my (incorrect) comment in cris.c above
> cris_asm_trampoline_template alludes to there being an
> ABI-neutral solution: "??? See the i386 regparm=3 implementation
> that pushes the static chain value to the stack in the
> trampoline, and uses a call-saved register when called
> directly." ... but IIRC it either didn't apply for CRIS or I
> didn't look into it thoroughly enough.  Or that's also buggy.
> 
> brgds, H-P
> PS. Perhaps a doc update with a warning is a suitable penance? :)
That was already the plan.  I took care of the gcc-10 changes.html bit today.

jeff

Reply via email to