diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-11-30 11:49:27 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-11-30 11:49:27 +0100 |
commit | 94855a14a1d3fa593aa672791db273dc7c814aa8 (patch) | |
tree | 28edc682daeb16578d18925d91b620d23bc17180 /gcc | |
parent | 196b199369f3e1f24c391891fcf9ab90de2a2739 (diff) | |
download | gcc-94855a14a1d3fa593aa672791db273dc7c814aa8.zip gcc-94855a14a1d3fa593aa672791db273dc7c814aa8.tar.gz gcc-94855a14a1d3fa593aa672791db273dc7c814aa8.tar.bz2 |
[multiple changes]
2009-11-30 Arnaud Charlet <charlet@adacore.com>
* s-tassta.adb: Update comment.
2009-11-30 Robert Dewar <dewar@adacore.com>
* a-ngelfu.adb: Minor code reorganization.
From-SVN: r154780
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/ada/a-ngelfu.adb | 36 | ||||
-rw-r--r-- | gcc/ada/s-tassta.adb | 4 |
3 files changed, 34 insertions, 14 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index e07b4fa..ff2bbb2 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,11 @@ +2009-11-30 Arnaud Charlet <charlet@adacore.com> + + * s-tassta.adb: Update comment. + +2009-11-30 Robert Dewar <dewar@adacore.com> + + * a-ngelfu.adb: Minor code reorganization. + 2009-11-30 Robert Dewar <dewar@adacore.com> * osint.ads, prj.adb, prj.ads: Minor reformatting diff --git a/gcc/ada/a-ngelfu.adb b/gcc/ada/a-ngelfu.adb index 55d14e7..aa06c98 100644 --- a/gcc/ada/a-ngelfu.adb +++ b/gcc/ada/a-ngelfu.adb @@ -68,9 +68,8 @@ package body Ada.Numerics.Generic_Elementary_Functions is -- FP type. function Local_Atan - (Y : Float_Type'Base; - X : Float_Type'Base := 1.0) - return Float_Type'Base; + (Y : Float_Type'Base; + X : Float_Type'Base := 1.0) return Float_Type'Base; -- Common code for arc tangent after cycle reduction ---------- @@ -721,20 +720,35 @@ package body Ada.Numerics.Generic_Elementary_Functions is ---------------- function Local_Atan - (Y : Float_Type'Base; - X : Float_Type'Base := 1.0) - return Float_Type'Base + (Y : Float_Type'Base; + X : Float_Type'Base := 1.0) return Float_Type'Base is Z : Float_Type'Base; Raw_Atan : Float_Type'Base; begin - Z := (if abs Y > abs X then abs (X / Y) else abs (Y / X)); + -- Z := (if abs Y > abs X then abs (X / Y) else abs (Y / X)); + + -- Raw_Atan := + -- (if Z < Sqrt_Epsilon then Z + -- elsif Z = 1.0 then Pi / 4.0 + -- else Float_Type'Base (Aux.Atan (Double (Z)))); + + -- Replace above with IF statements for now (ASIS gnatelim problem???) - Raw_Atan := - (if Z < Sqrt_Epsilon then Z - elsif Z = 1.0 then Pi / 4.0 - else Float_Type'Base (Aux.Atan (Double (Z)))); + if abs Y > abs X then + Z := abs (X / Y); + else + Z := abs (Y / X); + end if; + + if Z < Sqrt_Epsilon then + Raw_Atan := Z; + elsif Z = 1.0 then + Raw_Atan := Pi / 4.0; + else + Raw_Atan := Float_Type'Base (Aux.Atan (Double (Z))); + end if; if abs Y > abs X then Raw_Atan := Half_Pi - Raw_Atan; diff --git a/gcc/ada/s-tassta.adb b/gcc/ada/s-tassta.adb index f56614c..a78b0d8 100644 --- a/gcc/ada/s-tassta.adb +++ b/gcc/ada/s-tassta.adb @@ -743,9 +743,7 @@ package body System.Tasking.Stages is function State (Int : System.Interrupt_Management.Interrupt_ID) return Character; pragma Import (C, State, "__gnat_get_interrupt_state"); - -- Get interrupt state. Defined in a-init.c - -- The input argument is the interrupt number, - -- and the result is one of the following: + -- Get interrupt state for interrupt number Int. Defined in init.c Default : constant Character := 's'; -- 's' Interrupt_State pragma set state to System (use "default" |