2008-01-16 09:11:42

by Ivan Kokshaysky

[permalink] [raw]
Subject: [PATCH] alpha: fix conversion from denormal float to double

The trap handler does properly update the fraction,
but not the exponent...

Thanks to Paolo Bonzini <[email protected]> for the bug report
and the testcase.

Signed-off-by: Ivan Kokshaysky <[email protected]>
---
arch/alpha/math-emu/math.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/alpha/math-emu/math.c b/arch/alpha/math-emu/math.c
index ae79dd9..58c2669 100644
--- a/arch/alpha/math-emu/math.c
+++ b/arch/alpha/math-emu/math.c
@@ -225,7 +225,7 @@ alpha_fp_emul (unsigned long pc)
FP_UNPACK_SP(SB, &vb);
DR_c = DB_c;
DR_s = DB_s;
- DR_e = DB_e;
+ DR_e = DB_e + (1024 - 128);
DR_f = SB_f << (52 - 23);
goto pack_d;
}