MIPS: Add IEEE Std 754 conformance mode selection
authorMaciej W. Rozycki <macro@imgtec.com>
Fri, 13 Nov 2015 00:48:29 +0000 (00:48 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Tue, 19 Jan 2016 23:39:20 +0000 (00:39 +0100)
commit503943e0e52bd3fbf014aa1d838ced37adb43121
treec38c3f702cc313d40c27caa9531370b24943aaeb
parent93adeaf6dadcaed943a51ad9ea2d77e24e6d70a7
MIPS: Add IEEE Std 754 conformance mode selection

Add an `ieee754=' kernel parameter to control IEEE Std 754 conformance
mode.

Use separate flags copied from the respective CPU feature flags, and
adjusted according to the conformance mode selected, to make binaries
requesting individual NaN encoding modes accepted or rejected as needed.
Update the initial setting for FCSR and, in the full FPU emulation mode,
its read-only mask accordingly.  Accept the mode selection requested for
legacy processors as well.

As with the EF_MIPS_NAN2008 ELF file header flag adjust both ABS2008 and
NAN2008 bits at the same time, to match the choice made for hardware
currently implemented.

Signed-off-by: Maciej W. Rozycki <macro@imgtec.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Matthew Fortune <Matthew.Fortune@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/11481/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Documentation/kernel-parameters.txt
arch/mips/include/asm/elf.h
arch/mips/kernel/cpu-probe.c
arch/mips/kernel/elf.c