summaryrefslogtreecommitdiff
path: root/simulate/execution.adb
diff options
context:
space:
mode:
Diffstat (limited to 'simulate/execution.adb')
-rw-r--r--simulate/execution.adb14
1 files changed, 8 insertions, 6 deletions
diff --git a/simulate/execution.adb b/simulate/execution.adb
index d82f32f..af34e96 100644
--- a/simulate/execution.adb
+++ b/simulate/execution.adb
@@ -2968,6 +2968,9 @@ package body Execution is
Error_Msg_Constraint (Expr);
return null;
+ when Iir_Kind_Parenthesis_Expression =>
+ return Execute_Expression (Block, Get_Expression (Expr));
+
when Iir_Kind_Type_Conversion =>
return Execute_Type_Conversion
(Block, Expr,
@@ -4297,7 +4300,8 @@ package body Execution is
Stmt : Iir)
is
begin
- Destroy_Iterator_Declaration (Instance, Get_Iterator_Scheme (Stmt));
+ Destroy_Iterator_Declaration
+ (Instance, Get_Parameter_Specification (Stmt));
end Finalize_For_Loop_Statement;
procedure Finalize_Loop_Statement (Instance : Block_Instance_Acc;
@@ -4313,15 +4317,13 @@ package body Execution is
is
Instance : constant Block_Instance_Acc := Proc.Instance;
Stmt : constant Iir_For_Loop_Statement := Instance.Stmt;
+ Iterator : constant Iir := Get_Parameter_Specification (Stmt);
Bounds : Iir_Value_Literal_Acc;
- Iterator : Iir;
Index : Iir_Value_Literal_Acc;
Stmt_Chain : Iir;
Is_Nul : Boolean;
Marker : Mark_Type;
begin
- Iterator := Get_Iterator_Scheme (Stmt);
-
-- Elaborate the iterator (and its type).
Elaborate_Declaration (Instance, Iterator);
@@ -4355,7 +4357,7 @@ package body Execution is
function Finish_For_Loop_Statement (Instance : Block_Instance_Acc)
return Boolean
is
- Iterator : constant Iir := Get_Iterator_Scheme (Instance.Stmt);
+ Iterator : constant Iir := Get_Parameter_Specification (Instance.Stmt);
Bounds : Iir_Value_Literal_Acc;
Index : Iir_Value_Literal_Acc;
Marker : Mark_Type;
@@ -4459,7 +4461,7 @@ package body Execution is
is
Instance : constant Block_Instance_Acc := Proc.Instance;
Stmt : constant Iir := Instance.Stmt;
- Label : constant Iir := Get_Loop (Stmt);
+ Label : constant Iir := Get_Named_Entity (Get_Loop_Label (Stmt));
Cond : Boolean;
Parent : Iir;
begin