Commit 7b1fbf29 authored by Catalin Marinas's avatar Catalin Marinas Committed by Russell King

[PATCH] ARM: 2841/1: Fix VFP +/-0 case for doubles addition

Patch from Catalin Marinas

The IEEE 754 standard specifies that the result of (x - x), where x is
a valid number, should be -0 if the rounding mode is towards minus
infinity or +0 otherwise.
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 85829750
...@@ -770,6 +770,9 @@ vfp_double_add(struct vfp_double *vdd, struct vfp_double *vdn, ...@@ -770,6 +770,9 @@ vfp_double_add(struct vfp_double *vdd, struct vfp_double *vdn,
if ((s64)m_sig < 0) { if ((s64)m_sig < 0) {
vdd->sign = vfp_sign_negate(vdd->sign); vdd->sign = vfp_sign_negate(vdd->sign);
m_sig = -m_sig; m_sig = -m_sig;
} else if (m_sig == 0) {
vdd->sign = (fpscr & FPSCR_RMODE_MASK) ==
FPSCR_ROUND_MINUSINF ? 0x8000 : 0;
} }
} else { } else {
m_sig += vdn->significand; m_sig += vdn->significand;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment