aboutsummaryrefslogtreecommitdiffstats
path: root/iirs.adb
diff options
context:
space:
mode:
authorgingold <gingold@b72b5c32-5f01-0410-b925-b5c7b92870f7>2005-11-07 23:18:35 +0000
committergingold <gingold@b72b5c32-5f01-0410-b925-b5c7b92870f7>2005-11-07 23:18:35 +0000
commit004bd818080a8090ea61bfb9cd656b01fe4541e0 (patch)
treea09472ff8de767ccd7f84d64ffc3c3fc4179bb75 /iirs.adb
parentd5888aa28f654fa58ec9f3914932885e36af3d5c (diff)
downloadghdl-004bd818080a8090ea61bfb9cd656b01fe4541e0.tar.gz
ghdl-004bd818080a8090ea61bfb9cd656b01fe4541e0.tar.bz2
ghdl-004bd818080a8090ea61bfb9cd656b01fe4541e0.zip
handle universal real div integer evaluation,
more optimizations added, multi-thread ready grt, bug fixes
Diffstat (limited to 'iirs.adb')
-rw-r--r--iirs.adb29
1 files changed, 29 insertions, 0 deletions
diff --git a/iirs.adb b/iirs.adb
index 588cda1c3..a3893fd7b 100644
--- a/iirs.adb
+++ b/iirs.adb
@@ -5717,6 +5717,35 @@ package body Iirs is
Set_Field2 (Target, Suffix);
end Set_Suffix;
+ procedure Check_Kind_For_Index_Subtype (Target : Iir) is
+ begin
+ case Get_Kind (Target) is
+ when Iir_Kind_Left_Array_Attribute
+ | Iir_Kind_Right_Array_Attribute
+ | Iir_Kind_High_Array_Attribute
+ | Iir_Kind_Low_Array_Attribute
+ | Iir_Kind_Range_Array_Attribute
+ | Iir_Kind_Reverse_Range_Array_Attribute
+ | Iir_Kind_Length_Array_Attribute
+ | Iir_Kind_Ascending_Array_Attribute =>
+ null;
+ when others =>
+ Failed ("Index_Subtype", Target);
+ end case;
+ end Check_Kind_For_Index_Subtype;
+
+ function Get_Index_Subtype (Attr : Iir) return Iir is
+ begin
+ Check_Kind_For_Index_Subtype (Attr);
+ return Get_Field2 (Attr);
+ end Get_Index_Subtype;
+
+ procedure Set_Index_Subtype (Attr : Iir; St : Iir) is
+ begin
+ Check_Kind_For_Index_Subtype (Attr);
+ Set_Field2 (Attr, St);
+ end Set_Index_Subtype;
+
procedure Check_Kind_For_Parameter (Target : Iir) is
begin
case Get_Kind (Target) is