Hi,

The soft(-float) requirement means that the program being loaded has no
FPU dependency at all (i.e. it has no FPU instructions).
https://elixir.bootlin.com/linux/v6.13.6/source/arch/mips/kernel/elf.c#L34

When -msoft-float is used, the processor does not use hardware
floating-point instructions but relies on software emulation for
floating-point arithmetic. In that case, a NaN mode (such as NaN2008)
in the hardware FPU has no effect because the hardware FPU is not
active and all floating-point expressions and operations are handled by
functions from software libraries, such as those within glibc or other
emulation libraries. How NaN values ​​are handled in software emulation
depends on the implementation of those libraries and is not related to
FPU registers.

If the processor uses -msingle-float, NaN2008 mode can affect the way
NaN values ​​are encoded and interpreted. When -msoft-float is active,
the emulation ignores the hardware FPU and the NaN mode is not relevant
because floating-point processing is left to the software
implementation, not the hardware.

Kind regards,
Aleksandar Rakic

Reply via email to