aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-expr.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth/synth-expr.adb')
-rw-r--r--src/synth/synth-expr.adb18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb
index 0c7b636b4..4dfa7225e 100644
--- a/src/synth/synth-expr.adb
+++ b/src/synth/synth-expr.adb
@@ -1021,7 +1021,7 @@ package body Synth.Expr is
Right : Net;
Inp : out Net;
Step : out Uns32;
- Off : out Uns32;
+ Off : out Int32;
Width : out Uns32)
is
L_Inp, R_Inp : Net;
@@ -1047,7 +1047,7 @@ package body Synth.Expr is
if L_Inp /= R_Inp then
Error_Msg_Synth
- (+Loc, "cannot extract same variable factor for dynamic slice");
+ (+Loc, "cannot extract same variable part for dynamic slice");
return;
end if;
Inp := L_Inp;
@@ -1062,10 +1062,10 @@ package body Synth.Expr is
case Pfx_Bnd.Dir is
when Iir_To =>
- Off := Uns32 (L_Add - Pfx_Bnd.Left);
+ Off := L_Add - Pfx_Bnd.Left;
Width := Uns32 (R_Add - L_Add + 1);
when Iir_Downto =>
- Off := Uns32 (R_Add - Pfx_Bnd.Right);
+ Off := R_Add - Pfx_Bnd.Right;
Width := Uns32 (L_Add - R_Add + 1);
end case;
end Synth_Extract_Dyn_Suffix;
@@ -1076,7 +1076,7 @@ package body Synth.Expr is
Res_Bnd : out Value_Bound_Acc;
Inp : out Net;
Step : out Uns32;
- Off : out Uns32;
+ Off : out Int32;
Wd : out Uns32)
is
Expr : constant Node := Get_Suffix (Name);
@@ -1133,7 +1133,7 @@ package body Synth.Expr is
Len => Wd,
Left => Int32 (Left.Scal),
Right => Int32 (Right.Scal)));
- Off := Uns32 (Pfx_Bnd.Right - Res_Bnd.Right);
+ Off := Pfx_Bnd.Right - Res_Bnd.Right;
when Iir_Downto =>
Wd := Width (Left.Scal - Right.Scal + 1);
Res_Bnd := Create_Value_Bound
@@ -1141,7 +1141,7 @@ package body Synth.Expr is
Len => Wd,
Left => Int32 (Left.Scal),
Right => Int32 (Right.Scal)));
- Off := Uns32 (Res_Bnd.Right - Pfx_Bnd.Right);
+ Off := Res_Bnd.Right - Pfx_Bnd.Right;
end case;
end if;
end Synth_Slice_Suffix;
@@ -1155,7 +1155,7 @@ package body Synth.Expr is
Res_Bnd : Value_Bound_Acc;
Inp : Net;
Step : Uns32;
- Off : Uns32;
+ Off : Int32;
Wd : Uns32;
begin
Bnd := Extract_Bound (Pfx);
@@ -1170,7 +1170,7 @@ package body Synth.Expr is
return Create_Value_Net
(Build_Extract (Build_Context,
Get_Net (Pfx, Get_Type (Pfx_Node)),
- Off, Wd),
+ Uns32 (Off), Wd),
Res_Bnd);
end if;
end Synth_Slice_Name;