MIPS: Correct MIPS I FP sigcontext layout
authorMaciej W. Rozycki <macro@imgtec.com>
Mon, 31 Oct 2016 16:27:40 +0000 (16:27 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 4 Nov 2016 00:39:23 +0000 (01:39 +0100)
commitf92722dc4545ebfa0f99a2f986fd88c112a22a42
tree162847b9f1d0907db59eaecf607dd257193321e8
parent758ef0a939d4c003381d2a97d9fb51b2d6d7e162
MIPS: Correct MIPS I FP sigcontext layout

Complement commit 80cbfad79096 ("MIPS: Correct MIPS I FP context
layout") and correct the way Floating Point General registers are stored
in a signal context with MIPS I hardware.

Use the S.D and L.D assembly macros to have pairs of SWC1 instructions
and pairs of LWC1 instructions produced, respectively, in an arrangement
which makes the memory representation of floating-point data passed
compatible with that used by hardware SDC1 and LDC1 instructions, where
available, regardless of the hardware endianness used.  This matches the
layout used by r4k_fpu.S, ensuring run-time compatibility for MIPS I
software across all o32 hardware platforms.

Define an EX2 macro to handle exceptions from both hardware instructions
implicitly produced from S.D and L.D assembly macros.

Signed-off-by: Maciej W. Rozycki <macro@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/14477/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/r2300_fpu.S