diff options
author | Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> | 2017-10-13 15:44:39 -0300 |
---|---|---|
committer | Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> | 2017-10-13 15:44:39 -0300 |
commit | e8dbd6a36d8e4d30e736e28a364f7a4d1404079a (patch) | |
tree | ee545720ca4998dafd23ef68f8869bcdca02957b /sysdeps | |
parent | 179dcdb7af4983fd42824db748ee6cb05f8d71cf (diff) | |
download | glibc-e8dbd6a36d8e4d30e736e28a364f7a4d1404079a.zip glibc-e8dbd6a36d8e4d30e736e28a364f7a4d1404079a.tar.gz glibc-e8dbd6a36d8e4d30e736e28a364f7a4d1404079a.tar.bz2 |
powerpc: Avoid putting floating point values in memory [BZ #22189]
[BZ #22189]
* sysdeps/powerpc/fpu/math_private.h (math_opt_barrier):
(math_force_eval): Add powerpc version.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/powerpc/fpu/math_private.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/powerpc/fpu/math_private.h b/sysdeps/powerpc/fpu/math_private.h index 396fd05..472182d 100644 --- a/sysdeps/powerpc/fpu/math_private.h +++ b/sysdeps/powerpc/fpu/math_private.h @@ -23,6 +23,13 @@ #include <ldsodefs.h> #include <dl-procinfo.h> #include <fenv_private.h> + +/* Avoid putting floating point values in memory. */ +# define math_opt_barrier(x) \ + ({ __typeof (x) __x = (x); __asm ("" : "+dwa" (__x)); __x; }) +# define math_force_eval(x) \ + ({ __typeof (x) __x = (x); __asm __volatile__ ("" : : "dwa" (__x)); }) + #include_next <math_private.h> #if defined _ARCH_PWR9 && __HAVE_DISTINCT_FLOAT128 |