mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-11 16:41:06 +08:00
targparm.ads, [...] (Targparm_Tags): Add PAS value corresponding to the Preallocated_Stacks flags in System.
2004-10-04 Jose Ruiz <ruiz@act-europe.fr> * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value corresponding to the Preallocated_Stacks flags in System. (Get_Target_Parameters): Including the processing for Preallocated_Stacks. * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads, system-vms_64.ads, system-unixware.ads, 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-aix.ads, system-vxworks-sparcv9.ads, system-vxworks-xscale.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-os2.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: Add the flag Preallocated_Stacks, that is used to signal whether the compiler creates the required stacks and descriptors for the different tasks (when True) or it is done by the underlying operating system at run time (when False). It is initially set to False in all targets. * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack if it is supported by the target. (Make_Task_Create_Call): Pass the stack address if it has been previously created. Otherwise pass a Null_Address. * snames.adb: Add _stack. * snames.ads: Add Name_uStack. Required to allow the expander to statically allocated task stacks. * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add Stack_Address argument. Check that its value is equal to Null_Address because this target does not support the static stack allocation. From-SVN: r88488
This commit is contained in:
parent
6fd459bb94
commit
b23e28d55e
@ -1,3 +1,41 @@
|
||||
2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
|
||||
|
||||
* targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
|
||||
corresponding to the Preallocated_Stacks flags in System.
|
||||
(Get_Target_Parameters): Including the processing for
|
||||
Preallocated_Stacks.
|
||||
|
||||
* system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
|
||||
system-vms_64.ads, system-unixware.ads, 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-aix.ads,
|
||||
system-vxworks-sparcv9.ads, system-vxworks-xscale.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-os2.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: Add the flag Preallocated_Stacks, that is
|
||||
used to signal whether the compiler creates the required stacks and
|
||||
descriptors for the different tasks (when True) or it is done by the
|
||||
underlying operating system at run time (when False).
|
||||
It is initially set to False in all targets.
|
||||
|
||||
* exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
|
||||
if it is supported by the target.
|
||||
(Make_Task_Create_Call): Pass the stack address if it has been
|
||||
previously created. Otherwise pass a Null_Address.
|
||||
|
||||
* snames.adb: Add _stack.
|
||||
|
||||
* snames.ads: Add Name_uStack. Required to allow the expander to
|
||||
statically allocated task stacks.
|
||||
|
||||
* s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
|
||||
Stack_Address argument.
|
||||
Check that its value is equal to Null_Address because this target does
|
||||
not support the static stack allocation.
|
||||
|
||||
2004-10-04 Thomas Quinot <quinot@act-europe.fr>
|
||||
|
||||
* usage.adb: Change "pragma inline" to "pragma Inline" in information
|
||||
|
@ -55,10 +55,10 @@ with Sem_Util; use Sem_Util;
|
||||
with Sinfo; use Sinfo;
|
||||
with Snames; use Snames;
|
||||
with Stand; use Stand;
|
||||
with Targparm; use Targparm;
|
||||
with Tbuild; use Tbuild;
|
||||
with Types; use Types;
|
||||
with Uintp; use Uintp;
|
||||
with Opt;
|
||||
|
||||
package body Exp_Ch9 is
|
||||
|
||||
@ -7141,13 +7141,16 @@ package body Exp_Ch9 is
|
||||
Tasknm : constant Name_Id := Chars (Tasktyp);
|
||||
Taskdef : constant Node_Id := Task_Definition (N);
|
||||
|
||||
Proc_Spec : Node_Id;
|
||||
Rec_Decl : Node_Id;
|
||||
Rec_Ent : Entity_Id;
|
||||
Cdecls : List_Id;
|
||||
Elab_Decl : Node_Id;
|
||||
Size_Decl : Node_Id;
|
||||
Body_Decl : Node_Id;
|
||||
Proc_Spec : Node_Id;
|
||||
Rec_Decl : Node_Id;
|
||||
Rec_Ent : Entity_Id;
|
||||
Cdecls : List_Id;
|
||||
Elab_Decl : Node_Id;
|
||||
Size_Decl : Node_Id;
|
||||
Body_Decl : Node_Id;
|
||||
Task_Size : Node_Id;
|
||||
Ent_Stack : Entity_Id;
|
||||
Decl_Stack : Node_Id;
|
||||
|
||||
begin
|
||||
-- If already expanded, nothing to do
|
||||
@ -7249,6 +7252,51 @@ package body Exp_Ch9 is
|
||||
|
||||
end if;
|
||||
|
||||
-- Declare static stack (that is, created by the expander) if we
|
||||
-- are using the Restricted run time on a bare board configuration.
|
||||
|
||||
if Restricted_Profile
|
||||
and then Preallocated_Stacks_On_Target
|
||||
then
|
||||
-- First we need to extract the appropriate stack size
|
||||
|
||||
Ent_Stack := Make_Defining_Identifier (Loc, Name_uStack);
|
||||
|
||||
if Present (Taskdef) and then Has_Storage_Size_Pragma (Taskdef) then
|
||||
Task_Size := Relocate_Node (
|
||||
Expression (First (
|
||||
Pragma_Argument_Associations (
|
||||
Find_Task_Or_Protected_Pragma
|
||||
(Taskdef, Name_Storage_Size)))));
|
||||
else
|
||||
Task_Size :=
|
||||
New_Reference_To (RTE (RE_Default_Stack_Size), Loc);
|
||||
end if;
|
||||
|
||||
Decl_Stack := Make_Component_Declaration (Loc,
|
||||
Defining_Identifier => Ent_Stack,
|
||||
|
||||
Component_Definition =>
|
||||
Make_Component_Definition (Loc,
|
||||
Aliased_Present => True,
|
||||
Subtype_Indication => Make_Subtype_Indication (Loc,
|
||||
Subtype_Mark =>
|
||||
New_Occurrence_Of (RTE (RE_Storage_Array), Loc),
|
||||
|
||||
Constraint =>
|
||||
Make_Index_Or_Discriminant_Constraint (Loc,
|
||||
Constraints => New_List (Make_Range (Loc,
|
||||
Low_Bound => Make_Integer_Literal (Loc, 1),
|
||||
High_Bound => Convert_To (RTE (RE_Storage_Offset),
|
||||
Task_Size)))))));
|
||||
|
||||
Append_To (Cdecls, Decl_Stack);
|
||||
|
||||
-- The appropriate alignment for the stack is ensured by the
|
||||
-- run-time code in charge of task creation.
|
||||
|
||||
end if;
|
||||
|
||||
-- Add components for entry families
|
||||
|
||||
Collect_Entry_Families (Loc, Cdecls, Size_Decl, Tasktyp);
|
||||
@ -8381,19 +8429,38 @@ package body Exp_Ch9 is
|
||||
-- Priority parameter. Set to Unspecified_Priority unless there is a
|
||||
-- priority pragma, in which case we take the value from the pragma.
|
||||
|
||||
if Present (Tdef)
|
||||
and then Has_Priority_Pragma (Tdef)
|
||||
then
|
||||
if Present (Tdef) and then Has_Priority_Pragma (Tdef) then
|
||||
Append_To (Args,
|
||||
Make_Selected_Component (Loc,
|
||||
Prefix => Make_Identifier (Loc, Name_uInit),
|
||||
Selector_Name => Make_Identifier (Loc, Name_uPriority)));
|
||||
|
||||
else
|
||||
Append_To (Args,
|
||||
New_Reference_To (RTE (RE_Unspecified_Priority), Loc));
|
||||
end if;
|
||||
|
||||
-- Optional Stack parameter
|
||||
|
||||
if Restricted_Profile then
|
||||
|
||||
-- If the stack has been preallocated by the expander then
|
||||
-- pass its address. Otherwise, pass a null address.
|
||||
|
||||
if Preallocated_Stacks_On_Target then
|
||||
Append_To (Args,
|
||||
Make_Attribute_Reference (Loc,
|
||||
Prefix => Make_Selected_Component (Loc,
|
||||
Prefix => Make_Identifier (Loc, Name_uInit),
|
||||
Selector_Name =>
|
||||
Make_Identifier (Loc, Name_uStack)),
|
||||
Attribute_Name => Name_Address));
|
||||
|
||||
else
|
||||
Append_To (Args,
|
||||
New_Reference_To (RTE (RE_Null_Address), Loc));
|
||||
end if;
|
||||
end if;
|
||||
|
||||
-- Size parameter. If no Storage_Size pragma is present, then
|
||||
-- the size is taken from the taskZ variable for the type, which
|
||||
-- is either Unspecified_Size, or has been reset by the use of
|
||||
|
@ -376,6 +376,7 @@ package body System.Tasking.Restricted.Stages is
|
||||
|
||||
procedure Create_Restricted_Task
|
||||
(Priority : Integer;
|
||||
Stack_Address : System.Address;
|
||||
Size : System.Parameters.Size_Type;
|
||||
Task_Info : System.Task_Info.Task_Info_Type;
|
||||
State : Task_Procedure_Access;
|
||||
@ -390,6 +391,11 @@ package body System.Tasking.Restricted.Stages is
|
||||
Success : Boolean;
|
||||
|
||||
begin
|
||||
-- Stack is not preallocated on this target, so that
|
||||
-- Stack_Address must be null.
|
||||
|
||||
pragma Assert (Stack_Address = Null_Address);
|
||||
|
||||
if Priority = Unspecified_Priority then
|
||||
Base_Priority := Self_ID.Common.Base_Priority;
|
||||
else
|
||||
|
@ -129,6 +129,7 @@ package System.Tasking.Restricted.Stages is
|
||||
|
||||
procedure Create_Restricted_Task
|
||||
(Priority : Integer;
|
||||
Stack_Address : System.Address;
|
||||
Size : System.Parameters.Size_Type;
|
||||
Task_Info : System.Task_Info.Task_Info_Type;
|
||||
State : Task_Procedure_Access;
|
||||
@ -141,26 +142,39 @@ package System.Tasking.Restricted.Stages is
|
||||
-- This must be called to create a new task.
|
||||
--
|
||||
-- Priority is the task's priority (assumed to be in the
|
||||
-- System.Any_Priority'Range)
|
||||
-- System.Any_Priority'Range)
|
||||
--
|
||||
-- Stack_Address is the start address of the stack associated to the
|
||||
-- task, in case it has been preallocated by the compiler; it is equal
|
||||
-- to Null_Address when the stack needs to be allocated by the
|
||||
-- underlying operating system.
|
||||
--
|
||||
-- Size is the stack size of the task to create
|
||||
--
|
||||
-- Task_Info is the task info associated with the created task, or
|
||||
-- Unspecified_Task_Info if none.
|
||||
-- Unspecified_Task_Info if none.
|
||||
--
|
||||
-- State is the compiler generated task's procedure body
|
||||
--
|
||||
-- Discriminants is a pointer to a limited record whose discriminants
|
||||
-- are those of the task to create. This parameter should be passed as
|
||||
-- the single argument to State.
|
||||
-- are those of the task to create. This parameter should be passed as
|
||||
-- the single argument to State.
|
||||
--
|
||||
-- Elaborated is a pointer to a Boolean that must be set to true on exit
|
||||
-- if the task could be sucessfully elaborated.
|
||||
-- if the task could be sucessfully elaborated.
|
||||
--
|
||||
-- Chain is a linked list of task that needs to be created. On exit,
|
||||
-- Created_Task.Activation_Link will be Chain.T_ID, and Chain.T_ID
|
||||
-- will be Created_Task (e.g the created task will be linked at the front
|
||||
-- of Chain).
|
||||
-- Created_Task.Activation_Link will be Chain.T_ID, and Chain.T_ID
|
||||
-- will be Created_Task (e.g the created task will be linked at the front
|
||||
-- of Chain).
|
||||
--
|
||||
-- Task_Image is a string created by the compiler that the
|
||||
-- run time can store to ease the debugging and the
|
||||
-- Ada.Task_Identification facility.
|
||||
-- run time can store to ease the debugging and the
|
||||
-- Ada.Task_Identification facility.
|
||||
--
|
||||
-- Created_Task is the resulting task.
|
||||
--
|
||||
-- This procedure can raise Storage_Error if the task creation failed.
|
||||
-- This procedure can raise Storage_Error if the task creation fails
|
||||
|
||||
procedure Activate_Restricted_Tasks
|
||||
(Chain_Access : Activation_Chain_Access);
|
||||
|
@ -82,6 +82,7 @@ package body Snames is
|
||||
"_secondary_stack#" &
|
||||
"_service#" &
|
||||
"_size#" &
|
||||
"_stack#" &
|
||||
"_tags#" &
|
||||
"_task#" &
|
||||
"_task_id#" &
|
||||
|
1249
gcc/ada/snames.ads
1249
gcc/ada/snames.ads
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (AIX/PPC Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -154,6 +154,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (FreeBSD/x86 Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (HP-UX Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
Machine_Overflows : constant Boolean := False;
|
||||
Machine_Rounds : constant Boolean := True;
|
||||
OpenVMS : constant Boolean := False;
|
||||
Preallocated_Stacks : constant Boolean := False;
|
||||
Signed_Zeros : constant Boolean := False;
|
||||
Stack_Check_Default : constant Boolean := False;
|
||||
Stack_Check_Probes : constant Boolean := False;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (OpenNT/Interix Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -140,6 +140,7 @@ private
|
||||
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 := True;
|
||||
|
@ -128,6 +128,7 @@ private
|
||||
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 := True;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (GNU-Linux/ia64 Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (GNU-Linux/x86 Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (GNU-Linux/x86-64 Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (LynxOS PPC Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (LynxOS x86 Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (NT Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (OS/2 Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (SUN Solaris Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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 := True;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (Solaris Sparcv9 Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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 := True;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (x86 Solaris Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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 := True;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (DEC Unix Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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 := True;
|
||||
Stack_Check_Probes : constant Boolean := True;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (SCO UnixWare Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -128,6 +128,7 @@ private
|
||||
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;
|
||||
|
@ -128,6 +128,7 @@ private
|
||||
Machine_Overflows : constant Boolean := False;
|
||||
Machine_Rounds : constant Boolean := True;
|
||||
OpenVMS : constant Boolean := True;
|
||||
Preallocated_Stacks : constant Boolean := False;
|
||||
Signed_Zeros : constant Boolean := True;
|
||||
Stack_Check_Default : constant Boolean := True;
|
||||
Stack_Check_Probes : constant Boolean := True;
|
||||
|
@ -128,6 +128,7 @@ private
|
||||
Machine_Overflows : constant Boolean := False;
|
||||
Machine_Rounds : constant Boolean := True;
|
||||
OpenVMS : constant Boolean := True;
|
||||
Preallocated_Stacks : constant Boolean := False;
|
||||
Signed_Zeros : constant Boolean := True;
|
||||
Stack_Check_Default : constant Boolean := True;
|
||||
Stack_Check_Probes : constant Boolean := True;
|
||||
|
@ -147,6 +147,7 @@ private
|
||||
Machine_Overflows : constant Boolean := False;
|
||||
Machine_Rounds : constant Boolean := True;
|
||||
OpenVMS : constant Boolean := True;
|
||||
Preallocated_Stacks : constant Boolean := False;
|
||||
Signed_Zeros : constant Boolean := True;
|
||||
Stack_Check_Default : constant Boolean := True;
|
||||
Stack_Check_Probes : constant Boolean := True;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (VxWorks Version Alpha) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -136,6 +136,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (VxWorks version M68K) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -136,6 +136,7 @@ private
|
||||
Machine_Overflows : constant Boolean := False;
|
||||
Machine_Rounds : constant Boolean := True;
|
||||
OpenVMS : constant Boolean := False;
|
||||
Preallocated_Stacks : constant Boolean := False;
|
||||
Signed_Zeros : constant Boolean := False;
|
||||
Stack_Check_Default : constant Boolean := False;
|
||||
Stack_Check_Probes : constant Boolean := False;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (VxWorks Version Mips) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -136,6 +136,7 @@ private
|
||||
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;
|
||||
|
@ -136,6 +136,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (VxWorks Version Sparc/64) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -138,6 +138,7 @@ private
|
||||
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;
|
||||
|
@ -136,6 +136,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (VxWorks Version Xscale) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -136,6 +136,7 @@ private
|
||||
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;
|
||||
|
@ -7,7 +7,7 @@
|
||||
-- S p e c --
|
||||
-- (Compiler Version) --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2003 Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2004 Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- This specification is derived from the Ada Reference Manual for use with --
|
||||
-- GNAT. The copyright notice above, and the license provisions that follow --
|
||||
@ -141,6 +141,7 @@ private
|
||||
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;
|
||||
|
@ -53,6 +53,7 @@ package body Targparm is
|
||||
FFO, -- Fractional_Fixed_Ops
|
||||
MOV, -- Machine_Overflows
|
||||
MRN, -- Machine_Rounds
|
||||
PAS, -- Preallocated_Stacks
|
||||
S64, -- Support_64_Bit_Divides
|
||||
SAG, -- Support_Aggregates
|
||||
SCA, -- Support_Composite_Assign
|
||||
@ -94,6 +95,7 @@ package body Targparm is
|
||||
FFO_Str : aliased constant Source_Buffer := "Fractional_Fixed_Ops";
|
||||
MOV_Str : aliased constant Source_Buffer := "Machine_Overflows";
|
||||
MRN_Str : aliased constant Source_Buffer := "Machine_Rounds";
|
||||
PAS_Str : aliased constant Source_Buffer := "Preallocated_Stacks";
|
||||
S64_Str : aliased constant Source_Buffer := "Support_64_Bit_Divides";
|
||||
SAG_Str : aliased constant Source_Buffer := "Support_Aggregates";
|
||||
SCA_Str : aliased constant Source_Buffer := "Support_Composite_Assign";
|
||||
@ -132,6 +134,7 @@ package body Targparm is
|
||||
FFO_Str'Access,
|
||||
MOV_Str'Access,
|
||||
MRN_Str'Access,
|
||||
PAS_Str'Access,
|
||||
S64_Str'Access,
|
||||
SAG_Str'Access,
|
||||
SCA_Str'Access,
|
||||
@ -557,6 +560,7 @@ package body Targparm is
|
||||
when FFO => Fractional_Fixed_Ops_On_Target := Result;
|
||||
when MOV => Machine_Overflows_On_Target := Result;
|
||||
when MRN => Machine_Rounds_On_Target := Result;
|
||||
when PAS => Preallocated_Stacks_On_Target := Result;
|
||||
when S64 => Support_64_Bit_Divides_On_Target := Result;
|
||||
when SAG => Support_Aggregates_On_Target := Result;
|
||||
when SCA => Support_Composite_Assign_On_Target := Result;
|
||||
|
@ -345,6 +345,13 @@ package Targparm is
|
||||
--
|
||||
-- The routine __gnat_handler_installed is not imported
|
||||
|
||||
Preallocated_Stacks_On_Target : Boolean;
|
||||
-- If this flag is True, then the expander preallocates all task stacks
|
||||
-- at compile time. If the flag is False, then task stacks are not pre-
|
||||
-- allocated, and task stack allocation is the responsibility of the
|
||||
-- run-time (which typically delegates the task to the underlying
|
||||
-- operating system environment).
|
||||
|
||||
---------------------
|
||||
-- Duration Format --
|
||||
---------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user