summaryrefslogtreecommitdiffstats
path: root/gcc/ada/targparm.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-06 09:14:20 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-04-06 09:14:20 +0000
commitc96ab5bbc9d41a00f786fd718444c01fc38be9e4 (patch)
tree1c0ad1eed890b3c6af73e898c81fb0660ea5bafa /gcc/ada/targparm.ads
parent99037453d9a50d75d88cbe7c9e81f8a3d0e4e357 (diff)
downloadppe42-gcc-c96ab5bbc9d41a00f786fd718444c01fc38be9e4.tar.gz
ppe42-gcc-c96ab5bbc9d41a00f786fd718444c01fc38be9e4.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123539 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/targparm.ads')
-rw-r--r--gcc/ada/targparm.ads40
1 files changed, 0 insertions, 40 deletions
diff --git a/gcc/ada/targparm.ads b/gcc/ada/targparm.ads
index f7406e8c352..465e6b7e098 100644
--- a/gcc/ada/targparm.ads
+++ b/gcc/ada/targparm.ads
@@ -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 --
-----------------
OpenPOWER on IntegriCloud