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