diff options
author | Tristan Gingold <tgingold@free.fr> | 2014-11-04 20:14:19 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2014-11-04 20:14:19 +0100 |
commit | 9c195bf5d86d67ea5eb419ccf6e48dc153e57c68 (patch) | |
tree | 575346e529b99e26382b4a06f6ff2caa0b391ab2 /ortho/mcode/ortho_code-decls.ads | |
parent | 184a123f91e07c927292d67462561dc84f3a920d (diff) | |
download | ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.tar.gz ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.tar.bz2 ghdl-9c195bf5d86d67ea5eb419ccf6e48dc153e57c68.zip |
Move sources to src/ subdirectory.
Diffstat (limited to 'ortho/mcode/ortho_code-decls.ads')
-rw-r--r-- | ortho/mcode/ortho_code-decls.ads | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/ortho/mcode/ortho_code-decls.ads b/ortho/mcode/ortho_code-decls.ads deleted file mode 100644 index ad18892fe..000000000 --- a/ortho/mcode/ortho_code-decls.ads +++ /dev/null @@ -1,209 +0,0 @@ --- Mcode back-end for ortho - Declarations handling. --- Copyright (C) 2006 Tristan Gingold --- --- GHDL is free software; you can redistribute it and/or modify it under --- the terms of the GNU General Public License as published by the Free --- Software Foundation; either version 2, or (at your option) any later --- version. --- --- GHDL is distributed in the hope that it will be useful, but WITHOUT ANY --- WARRANTY; without even the implied warranty of MERCHANTABILITY or --- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --- for more details. --- --- You should have received a copy of the GNU General Public License --- along with GCC; see the file COPYING. If not, write to the Free --- Software Foundation, 59 Temple Place - Suite 330, Boston, MA --- 02111-1307, USA. -with Ortho_Code.Abi; - -package Ortho_Code.Decls is - -- Kind of a declaration. - type OD_Kind is (OD_Type, - OD_Const, OD_Const_Val, - - -- Global and local variables. - OD_Var, OD_Local, - - -- Subprograms. - OD_Function, OD_Procedure, - - -- Additional node for a subprogram. Internal use only. - OD_Subprg_Ext, - - OD_Interface, - OD_Body, - OD_Block); - - -- Return the kind of declaration DECL. - function Get_Decl_Kind (Decl : O_Dnode) return OD_Kind; - - -- Return the type of a declaration. - function Get_Decl_Type (Decl : O_Dnode) return O_Tnode; - - -- Return the identifier of a declaration. - function Get_Decl_Ident (Decl : O_Dnode) return O_Ident; - - -- Return the storage of a declaration. - function Get_Decl_Storage (Decl : O_Dnode) return O_Storage; - - -- Return the depth of a declaration. - function Get_Decl_Depth (Decl : O_Dnode) return O_Depth; - - -- Register for the declaration. - function Get_Decl_Reg (Decl : O_Dnode) return O_Reg; - procedure Set_Decl_Reg (Decl : O_Dnode; Reg : O_Reg); - - -- Return the next decl (in the same scope) after DECL. - -- This skips declarations in an inner block. - function Get_Decl_Chain (Decl : O_Dnode) return O_Dnode; - - -- Get the last declaration. - function Get_Decl_Last return O_Dnode; - - -- Return the subprogram declaration correspondig to body BOD. - function Get_Body_Decl (Bod : O_Dnode) return O_Dnode; - - -- Return the parent of a body. - function Get_Body_Parent (Bod : O_Dnode) return O_Dnode; - - -- Get the entry statement of body DECL. - function Get_Body_Stmt (Bod : O_Dnode) return O_Enode; - - -- Get/Set the info field of a body. - function Get_Body_Info (Bod : O_Dnode) return Int32; - procedure Set_Body_Info (Bod : O_Dnode; Info : Int32); - - -- Get the last declaration of block BLK. - function Get_Block_Last (Blk : O_Dnode) return O_Dnode; - - -- Get/Set the block max stack offset. - function Get_Block_Max_Stack (Blk : O_Dnode) return Uns32; - procedure Set_Block_Max_Stack (Blk : O_Dnode; Max : Uns32); - - -- Info on blocks. - function Get_Block_Info1 (Blk : O_Dnode) return Int32; - procedure Set_Block_Info1 (Blk : O_Dnode; Info : Int32); - function Get_Block_Info2 (Blk : O_Dnode) return Int32; - procedure Set_Block_Info2 (Blk : O_Dnode; Info : Int32); - - -- Get the declaration and the value associated with a constant value. - function Get_Val_Decl (Decl : O_Dnode) return O_Dnode; - function Get_Val_Val (Decl : O_Dnode) return O_Cnode; - - -- Declare a type. - -- This simply gives a name to a type. - procedure New_Type_Decl (Ident : O_Ident; Atype : O_Tnode); - - -- If Flag_Type_Name is set, a map from type to name is maintained. - function Get_Type_Decl (Atype : O_Tnode) return O_Dnode; - - -- Set/Get the offset (or register) of interface or local DECL. - -- To be used by ABI. - procedure Set_Local_Offset (Decl : O_Dnode; Off : Int32); - function Get_Local_Offset (Decl : O_Dnode) return Int32; - - -- Get/Set user info on subprogram, variable, constant declaration. - procedure Set_Decl_Info (Decl : O_Dnode; Ref : Int32); - function Get_Decl_Info (Decl : O_Dnode) return Int32; - - -- Get/Set the stack size of subprogram arguments. - procedure Set_Subprg_Stack (Decl : O_Dnode; Val : Int32); - function Get_Subprg_Stack (Decl : O_Dnode) return Int32; - - -- Get the first interface of a subprogram declaration. - function Get_Subprg_Interfaces (Decl : O_Dnode) return O_Dnode; - - -- Get the next interface. - -- End of interface chain when result is O_Dnode_Null. - function Get_Interface_Chain (Decl : O_Dnode) return O_Dnode; - - -- Declare a constant. - -- This simply gives a name to a constant value or aggregate. - -- A constant cannot be modified and its storage cannot be local. - -- ATYPE must be constrained. - procedure New_Const_Decl - (Res : out O_Dnode; - Ident : O_Ident; - Storage : O_Storage; - Atype : O_Tnode); - - -- Set the value to CST. - procedure New_Const_Value (Cst : O_Dnode; Val : O_Cnode); - - -- Create a variable declaration. - -- A variable can be local only inside a function. - -- ATYPE must be constrained. - procedure New_Var_Decl - (Res : out O_Dnode; - Ident : O_Ident; - Storage : O_Storage; - Atype : O_Tnode); - - type O_Inter_List is limited private; - - -- Start a subprogram declaration. - -- Note: nested subprograms are allowed, ie o_storage_local subprograms can - -- be declared inside a subprograms. It is not allowed to declare - -- o_storage_external subprograms inside a subprograms. - -- Return type and interfaces cannot be a composite type. - procedure Start_Function_Decl - (Interfaces : out O_Inter_List; - Ident : O_Ident; - Storage : O_Storage; - Rtype : O_Tnode); - -- For a subprogram without return value. - procedure Start_Procedure_Decl - (Interfaces : out O_Inter_List; - Ident : O_Ident; - Storage : O_Storage); - - -- Add an interface declaration to INTERFACES. - procedure New_Interface_Decl - (Interfaces : in out O_Inter_List; - Res : out O_Dnode; - Ident : O_Ident; - Atype : O_Tnode); - -- Finish the function declaration, get the node and a statement list. - procedure Finish_Subprogram_Decl - (Interfaces : in out O_Inter_List; Res : out O_Dnode); - - -- Start subprogram body of DECL. STMT is the corresponding statement. - -- Return the declaration for the body. - function Start_Subprogram_Body (Decl : O_Dnode; Stmt : O_Enode) - return O_Dnode; - procedure Finish_Subprogram_Body; - - -- Start a declarative region. - function Start_Declare_Stmt return O_Dnode; - procedure Finish_Declare_Stmt (Parent : O_Dnode); - - procedure Disp_All_Decls; - procedure Disp_Block (Indent : Natural; Start : O_Dnode); - procedure Disp_Decl_Name (Decl : O_Dnode); - procedure Disp_Decl (Indent : Natural; Decl : O_Dnode); - procedure Disp_Stats; - - type Mark_Type is limited private; - procedure Mark (M : out Mark_Type); - procedure Release (M : Mark_Type); - - procedure Finish; -private - type O_Inter_List is record - -- The declaration of the subprogram. - Decl : O_Dnode; - - -- Last declared parameter. - Last_Param : O_Dnode; - - -- Data for ABI. - Abi : Ortho_Code.Abi.O_Abi_Subprg; - end record; - - type Mark_Type is record - Dnode : O_Dnode; - TDnode : O_Tnode; - end record; - -end Ortho_Code.Decls; |