mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
Add a barrier in the double fma implementation.
This commit is contained in:
parent
29bcce7ce4
commit
efb734887e
@ -1,3 +1,8 @@
|
||||
2012-06-01 Aurelien Jarno <aurelien@aurel32.net>
|
||||
|
||||
* sysdeps/ieee754/dbl-64/s_fma.c (__fma): Ensure a1 + u.d
|
||||
computation is not scheduled after fetestexcept.
|
||||
|
||||
2012-06-01 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
[BZ #14117]
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Compute x * y + z as ternary operation.
|
||||
Copyright (C) 2010, 2011 Free Software Foundation, Inc.
|
||||
Copyright (C) 2010-2012 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
|
||||
|
||||
@ -158,6 +158,8 @@ __fma (double x, double y, double z)
|
||||
if ((u.ieee.mantissa1 & 1) == 0)
|
||||
u.ieee.mantissa1 |= libc_fetestexcept (FE_INEXACT) != 0;
|
||||
v.d = a1 + u.d;
|
||||
/* Ensure the addition is not scheduled after fetestexcept call. */
|
||||
math_force_eval (v.d);
|
||||
}
|
||||
|
||||
/* Reset rounding mode and test for inexact simultaneously. */
|
||||
|
Loading…
Reference in New Issue
Block a user