summaryrefslogtreecommitdiff
path: root/translate/grt/grt-rtis_utils.adb
diff options
context:
space:
mode:
authorTristan Gingold2014-09-11 05:39:42 +0200
committerTristan Gingold2014-09-11 05:39:42 +0200
commit76790ce35751b7db120cbde496782c161d376c60 (patch)
tree368d1bd7202fd68fce7ef0394ac6a60696edb7ce /translate/grt/grt-rtis_utils.adb
parentbc29eec25beb8e337bc7ad8ac38734d9491fbe94 (diff)
downloadghdl-76790ce35751b7db120cbde496782c161d376c60.tar.gz
ghdl-76790ce35751b7db120cbde496782c161d376c60.tar.bz2
ghdl-76790ce35751b7db120cbde496782c161d376c60.zip
vhdl2008: add translation and support for most of implicit operators.
Diffstat (limited to 'translate/grt/grt-rtis_utils.adb')
-rw-r--r--translate/grt/grt-rtis_utils.adb22
1 files changed, 22 insertions, 0 deletions
diff --git a/translate/grt/grt-rtis_utils.adb b/translate/grt/grt-rtis_utils.adb
index 4df5d6f..0d4328e 100644
--- a/translate/grt/grt-rtis_utils.adb
+++ b/translate/grt/grt-rtis_utils.adb
@@ -498,6 +498,28 @@ package body Grt.Rtis_Utils is
end case;
end Get_Physical_Unit_Name;
+ function Get_Physical_Unit_Value (Unit : Ghdl_Rti_Access;
+ Type_Rti : Ghdl_Rti_Access)
+ return Ghdl_I64 is
+ begin
+ case Unit.Kind is
+ when Ghdl_Rtik_Unit64 =>
+ return To_Ghdl_Rtin_Unit64_Acc (Unit).Value;
+ when Ghdl_Rtik_Unitptr =>
+ case Type_Rti.Kind is
+ when Ghdl_Rtik_Type_P64 =>
+ return To_Ghdl_Rtin_Unitptr_Acc (Unit).Addr.I64;
+ when Ghdl_Rtik_Type_P32 =>
+ return Ghdl_I64
+ (To_Ghdl_Rtin_Unitptr_Acc (Unit).Addr.I32);
+ when others =>
+ Internal_Error ("get_physical_unit_value(1)");
+ end case;
+ when others =>
+ Internal_Error ("get_physical_unit_value(2)");
+ end case;
+ end Get_Physical_Unit_Value;
+
procedure Get_Enum_Value
(Rstr : in out Rstring; Rti : Ghdl_Rti_Access; Val : Ghdl_Index_Type)
is