> Matthew Fortune <matthew.fort...@imgtec.com> writes:
> > I'm still interested in how successfully the MIPS backend is managing
> > to avoid floating point but I am also convinced there are bugs in
> > ld.so entry points for MIPS.
> 
> It uses the standard mechanism to avoid it, which is marking uses of FP
> registers for integer moves, loads and stores with "*".  This tells the 
> register
> allocator to ignore those alternatives.  AFAIK it is effective and I think any
> cases where it doesn't work would be fair bug reports.

I understand that '*' has no effect on whether reload/LRA will use the 
alternative though so I take that to mean they could still allocate FP regs as 
part of an integer move?

> It becomes a lot more difficult to define with things like the Loongson
> extensions though, since some of those are also useful as scalar integer
> operations.  And of course the same goes for MSA.

Indeed.

Avoiding FP registers 99.9% of time is fine for performance, it's the potential 
0.1% I'm concerned about for correctness. I'm tending towards accounting for 
potential FPU usage even from integer only source just to be safe. I don't want 
to ever be the one debugging something like ld.so in the face of this kind of 
bug.

I'll move the discussion to glibc regarding ld.so.

Regards,
Matthew

Reply via email to