Re: [PATCH 5/8] MIPS: mipsregs: Parse fp and sp register by name in parse_r

Thomas Bogendoerfer
2023-04-21T12:21:40Z

On Fri, Apr 21, 2023 at 12:38:07PM +0100, Jiaxun Yang wrote:
>
>
> > 2023年4月21日 11:48，Thomas Bogendoerfer <tsbogend@alpha.franken.de> 写道：
> >
> > On Sun, Apr 09, 2023 at 11:43:06AM +0100, Jiaxun Yang wrote:
> >> parse_r helper is used to parse register number from oprand,
> >> it only handles oprand which use number to refer register before.
> >>
> >> However compiler may use $gp and $sp to reference register 29 and
> >> 30. Handle this situation by adding relevant match name.
> >
> > are you sure the compiler is doing that ? Which compiler is this ?
> > To me this feels more like missing #defines from asm/regdef.h for
> > some inline assembly stuff...
>
> Yes, clang is doing that, see[1].
>
> There is no inline assembly mentioning $fp for cfcmsa but clang is still generating $fp for
> cfcmsa.
>
> I was able to reproduce this by dumping assembly generated by clang, but I’m
> unable to reproduce it for now, it seems like clang will only allocate $fp in rare cases.

so is this clang miss-behaviour ? If yes fix should be done there.

Thomas.

--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]