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
This commit is contained in:
parent
f8568ac02a
commit
a56955b1d7
@ -1,3 +1,8 @@
|
||||
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
|
||||
|
@ -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),
|
||||
|
Loading…
x
Reference in New Issue
Block a user