aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2016-02-23 06:55:52 +0100
committerTristan Gingold <tgingold@free.fr>2016-02-23 18:52:23 +0100
commitf8181550a62857bf2d73710b0952af16726eba6c (patch)
treecbdc7df3a25e6c727c9b203cc61cd0512837081b /src/vhdl/translate/trans.ads
parent7969ec4835be2e8745b648bf47cd97c30ae71ade (diff)
downloadghdl-f8181550a62857bf2d73710b0952af16726eba6c.tar.gz
ghdl-f8181550a62857bf2d73710b0952af16726eba6c.tar.bz2
ghdl-f8181550a62857bf2d73710b0952af16726eba6c.zip
translate: separate decl and stmt elab subprograms.
Diffstat (limited to 'src/vhdl/translate/trans.ads')
-rw-r--r--src/vhdl/translate/trans.ads9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/vhdl/translate/trans.ads b/src/vhdl/translate/trans.ads
index 63db84bd8..e97d6a0c3 100644
--- a/src/vhdl/translate/trans.ads
+++ b/src/vhdl/translate/trans.ads
@@ -192,6 +192,9 @@ package Trans is
function Add_Pointer
(Ptr : O_Enode; Offset : O_Enode; Res_Ptr : O_Tnode) return O_Enode;
+ type Elab_Kind is (Elab_Decls, Elab_Stmts);
+ type O_Dnode_Elab is array (Elab_Kind) of O_Dnode;
+
package Chap10 is
-- There are three data storage kind: global, local or instance.
-- For example, a constant can have:
@@ -349,6 +352,9 @@ package Trans is
-- Create a prefixed identifier from a string.
function Create_Identifier (Str : String) return O_Ident;
+ -- Create an identifier for an elaboration procedure.
+ function Create_Elab_Identifier (Kind : Elab_Kind) return O_Ident;
+
-- Create an identifier for a variable.
-- IE, if the variable is global, prepend the prefix,
-- if the variable belong to an instance, no prefix is added.
@@ -1380,7 +1386,8 @@ package Trans is
Block_Id : Nat32;
-- Subprogram which elaborates the block (for entity or arch).
- Block_Elab_Subprg : O_Dnode;
+ Block_Elab_Subprg : O_Dnode_Elab;
+
-- Size of the block instance.
Block_Instance_Size : O_Dnode;