system-linux-ia64.ads, [...] (Functions_Return_By_DSP_On_Target): Removed
authorRobert Dewar <dewar@adacore.com>
Fri, 6 Apr 2007 09:14:20 +0000 (11:14 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 6 Apr 2007 09:14:20 +0000 (11:14 +0200)
2007-04-06  Robert Dewar  <dewar@adacore.com>

* system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
        system-hpux-ia64.ads, targparm.adb,
targparm.ads (Functions_Return_By_DSP_On_Target): Removed

* system.ads: Move Functions_Return_By_DSP to obsolete section,
kept for bootstrap purposes only.

From-SVN: r123539

31 files changed:
gcc/ada/system-darwin-ppc.ads
gcc/ada/system-freebsd-x86.ads
gcc/ada/system-hpux-ia64.ads
gcc/ada/system-hpux.ads
gcc/ada/system-interix.ads
gcc/ada/system-irix-n32.ads
gcc/ada/system-irix-o32.ads
gcc/ada/system-linux-hppa.ads
gcc/ada/system-linux-ia64.ads
gcc/ada/system-linux-ppc.ads
gcc/ada/system-linux-x86.ads
gcc/ada/system-linux-x86_64.ads
gcc/ada/system-lynxos-ppc.ads
gcc/ada/system-lynxos-x86.ads
gcc/ada/system-mingw.ads
gcc/ada/system-solaris-sparc.ads
gcc/ada/system-solaris-sparcv9.ads
gcc/ada/system-solaris-x86.ads
gcc/ada/system-tru64.ads
gcc/ada/system-vms-zcx.ads
gcc/ada/system-vms.ads
gcc/ada/system-vms_64.ads
gcc/ada/system-vxworks-alpha.ads
gcc/ada/system-vxworks-m68k.ads
gcc/ada/system-vxworks-mips.ads
gcc/ada/system-vxworks-ppc.ads
gcc/ada/system-vxworks-sparcv9.ads
gcc/ada/system-vxworks-x86.ads
gcc/ada/system.ads
gcc/ada/targparm.adb
gcc/ada/targparm.ads

index a6de518..7c2151b 100644 (file)
@@ -153,7 +153,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index a924580..a4c3137 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 5cdd000..48d5c86 100644 (file)
@@ -127,14 +127,13 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
    Preallocated_Stacks       : constant Boolean := False;
    Signed_Zeros              : constant Boolean := True;
    Stack_Check_Default       : constant Boolean := False;
-   Stack_Check_Probes        : constant Boolean := False;
+   Stack_Check_Probes        : constant Boolean := True;
    Support_64_Bit_Divides    : constant Boolean := True;
    Support_Aggregates        : constant Boolean := True;
    Support_Composite_Assign  : constant Boolean := True;
index 3468886..6a60624 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index b60736b..8e579ae 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 77ab89a..0a45ef4 100644 (file)
@@ -139,7 +139,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 83db77d..5f77622 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index c22e532..21151cc 100644 (file)
@@ -126,7 +126,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 105264e..b306f54 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index d33c335..d2c5e19 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 62b5441..4ed89de 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index c4916ee..6da89d2 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index d380eb1..34070ec 100644 (file)
@@ -141,7 +141,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 659163e..6bd28ca 100644 (file)
@@ -141,7 +141,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index fa39919..ee701df 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index d5d4516..1058bb9 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 60ec782..75c1acc 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index d4c7128..3dd0f6d 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 4db734c..bbd2a96 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 8e1c104..e731520 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := True;
index e922b32..72e02ce 100644 (file)
@@ -127,7 +127,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := True;
index e91e842..5ea93c7 100644 (file)
@@ -146,7 +146,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := True;
index bd9a25f..b555ce2 100644 (file)
@@ -135,7 +135,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 4f906ce..bd864f3 100644 (file)
@@ -135,7 +135,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 40fe69a..059acd7 100644 (file)
@@ -135,7 +135,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 73b8186..6b89e6b 100644 (file)
@@ -135,7 +135,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index e099bba..7020740 100644 (file)
@@ -137,7 +137,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index 5915b81..511212f 100644 (file)
@@ -135,7 +135,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
index fb4e0da..0272a04 100644 (file)
@@ -139,7 +139,6 @@ private
    Exit_Status_Supported     : constant Boolean := True;
    Fractional_Fixed_Ops      : constant Boolean := False;
    Frontend_Layout           : constant Boolean := False;
-   Functions_Return_By_DSP   : constant Boolean := False;
    Machine_Overflows         : constant Boolean := False;
    Machine_Rounds            : constant Boolean := True;
    OpenVMS                   : constant Boolean := False;
@@ -162,5 +161,6 @@ private
 
    High_Integrity_Mode       : constant Boolean := False;
    Long_Shifts_Inlined       : constant Boolean := True;
+   Functions_Return_By_DSP   : constant Boolean := False;
 
 end System;
index 3aa3cc3..6f3ffe3 100644 (file)
@@ -48,7 +48,6 @@ package body Targparm is
       CSV,  --   Compiler_System_Version
       D32,  --   Duration_32_Bits
       DEN,  --   Denorm
-      DSP,  --   Functions_Return_By_DSP
       EXS,  --   Exit_Status_Supported
       FEL,  --   Frontend_Layout
       FFO,  --   Fractional_Fixed_Ops
@@ -85,7 +84,6 @@ package body Targparm is
    CSV_Str : aliased constant Source_Buffer := "Compiler_System_Version";
    D32_Str : aliased constant Source_Buffer := "Duration_32_Bits";
    DEN_Str : aliased constant Source_Buffer := "Denorm";
-   DSP_Str : aliased constant Source_Buffer := "Functions_Return_By_DSP";
    EXS_Str : aliased constant Source_Buffer := "Exit_Status_Supported";
    FEL_Str : aliased constant Source_Buffer := "Frontend_Layout";
    FFO_Str : aliased constant Source_Buffer := "Fractional_Fixed_Ops";
@@ -119,7 +117,6 @@ package body Targparm is
       CSV_Str'Access,
       D32_Str'Access,
       DEN_Str'Access,
-      DSP_Str'Access,
       EXS_Str'Access,
       FEL_Str'Access,
       FFO_Str'Access,
@@ -556,7 +553,6 @@ package body Targparm is
                      when CSV => Compiler_System_Version             := Result;
                      when D32 => Duration_32_Bits_On_Target          := Result;
                      when DEN => Denorm_On_Target                    := Result;
-                     when DSP => Functions_Return_By_DSP_On_Target   := Result;
                      when EXS => Exit_Status_Supported_On_Target     := Result;
                      when FEL => Frontend_Layout_On_Target           := Result;
                      when FFO => Fractional_Fixed_Ops_On_Target      := Result;
index f7406e8..465e6b7 100644 (file)
@@ -553,46 +553,6 @@ package Targparm is
    --  2 ** (-(T'Object_Size - 1)) and whose values have an absolute
    --  value less than 1.0.
 
-   --------------------------------------------------------------
-   -- Handling of Unconstrained Values Returned from Functions --
-   --------------------------------------------------------------
-
-   --  Functions that return variable length objects, notably unconstrained
-   --  arrays are a special case, because there is no simple obvious way of
-   --  implementing this feature. Furthermore, this capability is not present
-   --  in C++ or C, so typically the system ABI does not handle this case.
-
-   --  GNAT uses two different approaches
-
-   --    The Secondary Stack
-
-   --      The secondary stack is a special storage pool that is used for
-   --      this purpose. The called function places the result on the
-   --      secondary stack, and the caller uses or copies the value from
-   --      the secondary stack, and pops the secondary stack after the
-   --      value is consumed. The secondary stack is outside the system
-   --      ABI, and the important point is that although generally it is
-   --      handled in a stack like manner corresponding to the subprogram
-   --      call structure, a return from a function does NOT pop the stack.
-
-   --    DSP (Depressed Stack Pointer)
-
-   --      Some targets permit the implementation of a function call/return
-   --      protocol in which the function does not pop the main stack pointer
-   --      on return, but rather returns with the stack pointer depressed.
-   --      This is not generally permitted by any ABI, but for at least some
-   --      targets, the implementation of alloca provides a model for this
-   --      approach. If return-with-DSP is implemented, then functions that
-   --      return variable length objects do it by returning with the stack
-   --      pointer depressed, and the returned object is a pointer to the
-   --      area within the stack frame of the called procedure that contains
-   --      the returned value. The caller must then pop the main stack when
-   --      this value is consumed.
-
-   Functions_Return_By_DSP_On_Target : Boolean := False;
-   --  Set to True if target permits functions to return with using the
-   --  DSP (depressed stack pointer) approach.
-
    -----------------
    -- Data Layout --
    -----------------