frno7 wrote:

Nice! @rickgaiser, what are your thoughts on a `-mfix-r5900` option (for the 
[R5900 short loop 
erratum](https://github.com/frno7/linux/wiki/R5900-short-loop-erratum)), 
implied for the R5900, but optional for MIPS I, II and III targets. GCC has it, 
because it allows compiling generic MIPS code (for example the precompiled 
[Gentoo MIPS](https://www.gentoo.org/downloads/#mips) archives made with GCC). 
The R5900 and all other MIPS implementations are otherwise mutually exclusive, 
because no other MIPS implementation can run R5900 code, and the R5900 cannot 
run anything (generic) triggering the erratum (unless `-mfix-r5900` is used).

Does LLVM have the `noreorder` directive for MIPS assembly, like the Gnu 
assembler? It would be nice if it would emit a warning (or error) if the 
erratum is triggered is such code as well. GAS doesn’t warn on this, 
unfortunately, so erratum problems in manual assembly code can slip through 
undetected and crash at runtime.

Regarding the `AFL_EXT_5900` ELF extension, I believe @maciej-w-rozycki had 
some thoughts on the [R5900 processor specific ABI 
(psABI)](https://github.com/frno7/linux/wiki/R5900-processor-specific-ABI-(psABI)).
 A Linux kernel would, for example, switch from emulating the FPU in software 
to running FPU code in hardware. The reason being that the [FPU is not 
compliant](https://github.com/frno7/linux/wiki/R5900-floating-point-unit-(FPU)) 
with the [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754) standard. Would you 
be able to chime in, Maciej?

https://github.com/llvm/llvm-project/pull/176666
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to