diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2007-09-10 10:10:58 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2007-09-10 10:10:58 +0000 |
commit | a56955b1d7db685acd6917656ee2f54caa9778f8 (patch) | |
tree | 527a7b15c1476ce476c76cf60562d2af1c298ff1 /gcc | |
parent | f8568ac02af9be51ab5cb267fcc7a5e839f23e62 (diff) | |
download | gcc-a56955b1d7db685acd6917656ee2f54caa9778f8.zip gcc-a56955b1d7db685acd6917656ee2f54caa9778f8.tar.gz gcc-a56955b1d7db685acd6917656ee2f54caa9778f8.tar.bz2 |
a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber x87 registers.
* a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
x87 registers.
From-SVN: r128329
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/a-numaux-x86.adb | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index b4824a9..e2b0849 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,10 @@ 2007-09-10 Eric Botcazou <ebotcazou@adacore.com> + * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber + x87 registers. + +2007-09-10 Eric Botcazou <ebotcazou@adacore.com> + * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for a debug renaming declaration specially. diff --git a/gcc/ada/a-numaux-x86.adb b/gcc/ada/a-numaux-x86.adb index 5c85661..77a1acc 100644 --- a/gcc/ada/a-numaux-x86.adb +++ b/gcc/ada/a-numaux-x86.adb @@ -302,15 +302,14 @@ package body Ada.Numerics.Aux is begin Asm (Template => "" -- X : Y & "fyl2x " & NL -- Y * Log2 (X) - & "fst %%st(1) " & NL -- Y * Log2 (X) : Y * Log2 (X) + & "fld %%st(0) " & NL -- Y * Log2 (X) : Y * Log2 (X) & "frndint " & NL -- Int (...) : Y * Log2 (X) & "fsubr %%st, %%st(1)" & NL -- Int (...) : Fract (...) & "fxch " & NL -- Fract (...) : Int (...) & "f2xm1 " & NL -- 2**Fract (...) - 1 : Int (...) & "fld1 " & NL -- 1 : 2**Fract (...) - 1 : Int (...) & "faddp %%st, %%st(1)" & NL -- 2**Fract (...) : Int (...) - & "fscale " & NL -- 2**(Fract (...) + Int (...)) - & "fstp %%st(1) ", + & "fscale ", -- 2**(Fract (...) + Int (...)) Outputs => Double'Asm_Output ("=t", Result), Inputs => (Double'Asm_Input ("0", X), |