aboutsummaryrefslogtreecommitdiffstats
path: root/src/ortho/mcode/ortho_mcode.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2018-10-17 06:18:36 +0200
committerTristan Gingold <tgingold@free.fr>2018-10-21 08:03:37 +0200
commited7ad157dbecc784bb2df44684442e88431db561 (patch)
tree491533354ca2add405e08869f66c1c74622f97d7 /src/ortho/mcode/ortho_mcode.adb
parent13000af67c96c2a3417fa321daa3fbf50165f54f (diff)
downloadghdl-ed7ad157dbecc784bb2df44684442e88431db561.tar.gz
ghdl-ed7ad157dbecc784bb2df44684442e88431db561.tar.bz2
ghdl-ed7ad157dbecc784bb2df44684442e88431db561.zip
Rework translation of unbounded and complex types.
Diffstat (limited to 'src/ortho/mcode/ortho_mcode.adb')
-rw-r--r--src/ortho/mcode/ortho_mcode.adb24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/ortho/mcode/ortho_mcode.adb b/src/ortho/mcode/ortho_mcode.adb
index fac45e438..16638300d 100644
--- a/src/ortho/mcode/ortho_mcode.adb
+++ b/src/ortho/mcode/ortho_mcode.adb
@@ -347,22 +347,36 @@ package body Ortho_Mcode is
(Ortho_Code.O_Dnode (Subprg), Ortho_Code.O_Tnode (Atype)));
end New_Subprogram_Address;
- function New_Global_Address (Decl : O_Dnode; Atype : O_Tnode)
- return O_Cnode is
+ function New_Global_Address (Lvalue : O_Gnode; Atype : O_Tnode)
+ return O_Cnode is
begin
return O_Cnode
(Ortho_Code.Consts.New_Global_Address
- (Ortho_Code.O_Dnode (Decl), Ortho_Code.O_Tnode (Atype)));
+ (Ortho_Code.O_Gnode (Lvalue), Ortho_Code.O_Tnode (Atype)));
end New_Global_Address;
- function New_Global_Unchecked_Address (Decl : O_Dnode; Atype : O_Tnode)
+ function New_Global_Unchecked_Address (Lvalue : O_Gnode; Atype : O_Tnode)
return O_Cnode is
begin
return O_Cnode
(Ortho_Code.Consts.New_Global_Unchecked_Address
- (Ortho_Code.O_Dnode (Decl), Ortho_Code.O_Tnode (Atype)));
+ (Ortho_Code.O_Gnode (Lvalue), Ortho_Code.O_Tnode (Atype)));
end New_Global_Unchecked_Address;
+ function New_Global (Decl : O_Dnode) return O_Gnode is
+ begin
+ return O_Gnode
+ (Ortho_Code.Consts.New_Global (Ortho_Code.O_Dnode (Decl)));
+ end New_Global;
+
+ function New_Global_Selected_Element (Rec : O_Gnode; El : O_Fnode)
+ return O_Gnode is
+ begin
+ return O_Gnode
+ (Ortho_Code.Consts.New_Global_Selected_Element
+ (Ortho_Code.O_Gnode (Rec), Ortho_Code.O_Fnode (El)));
+ end New_Global_Selected_Element;
+
function New_Lit (Lit : O_Cnode) return O_Enode is
begin
return O_Enode (Ortho_Code.Exprs.New_Lit (Ortho_Code.O_Cnode (Lit)));