sh: fcnvds fix with denormalized numbers on SH-4 FPU.

This fixes a bug in the FPU exception handler for the FCNVDS instruction.
To get the register number the instruction is shifted right by 9,
though it should be shifted right by 8.

More information at ST Linux bugzilla:

	https://bugzilla.stlinux.com/show_bug.cgi?id=4892

Signed-off-by: Giuseppe Di Giore <[email protected]>
Signed-off-by: Carmelo Amoroso <[email protected]>
Signed-off-by: Stuart Menefy <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
This commit is contained in:
Carmelo AMOROSO 2008-10-15 16:48:16 +01:00 • committed by Paul Mundt
commit 0f6dee232f

View file

@ -423,7 +423,7 @@ static int ieee_fpe_handler(struct pt_regs *regs)
int m;
unsigned int hx;
m = (finsn >> 9) & 0x7;
m = (finsn >> 8) & 0x7;
hx = tsk->thread.fpu.hard.fp_regs[m];
if ((tsk->thread.fpu.hard.fpscr & FPSCR_CAUSE_ERROR)