Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: 8195/1: vfp: Bounce undefined instructions in vectored mode

Certain ARM CPU implementations (e.g. Cortex-A15) may not raise a
floating- point exception whenever deprecated short-vector VFP
instructions are executed. Instead these instructions are treated
as UNALLOCATED. Change the VFP exception handling code to emulate
short-vector instructions even if FPEXC exception bits are not
set.

Signed-off-by: Stepan Moskovchenko <stepanm@codeaurora.org>
Tested-by: Will Deacon <will.deacon@arm.com>
Tested-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Stepan Moskovchenko and committed by
Russell King
1ca8bf6f 09415fa2

+6
+6
arch/arm/vfp/vfphw.S
··· 197 197 tst r5, #FPSCR_IXE 198 198 bne process_exception 199 199 200 + tst r5, #FPSCR_LENGTH_MASK 201 + beq skip 202 + orr r1, r1, #FPEXC_DEX 203 + b process_exception 204 + skip: 205 + 200 206 @ Fall into hand on to next handler - appropriate coproc instr 201 207 @ not recognised by VFP 202 208