mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 22:02:02 +00:00
[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: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
8582975095
commit
7b1fbf292b
1 changed files with 3 additions and 0 deletions
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue