aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-environment.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth/synth-environment.adb')
-rw-r--r--src/synth/synth-environment.adb35
1 files changed, 18 insertions, 17 deletions
diff --git a/src/synth/synth-environment.adb b/src/synth/synth-environment.adb
index 18133594e..7f552f352 100644
--- a/src/synth/synth-environment.adb
+++ b/src/synth/synth-environment.adb
@@ -1036,7 +1036,7 @@ package body Synth.Environment is
-- If no seq assign, return current value.
if First_Seq = No_Seq_Assign then
- return Build2_Extract (Ctxt, Wire_Rec.Gate, Off, Wd);
+ return Build2_Extract_Push (Ctxt, Wire_Rec.Gate, Off, Wd);
end if;
-- If the current value is static, just return it.
@@ -1096,8 +1096,9 @@ package body Synth.Environment is
Cur_Wd := Width'Min
(Cur_Wd, Pw - (Cur_Off - Pr.Offset));
Append
- (Vec, Build_Extract (Ctxt, Pr.Value,
- Cur_Off - Pr.Offset, Cur_Wd));
+ (Vec,
+ Build2_Extract_Push (Ctxt, Pr.Value,
+ Cur_Off - Pr.Offset, Cur_Wd));
end if;
exit;
end if;
@@ -1122,8 +1123,8 @@ package body Synth.Environment is
Seq := Get_Assign_Prev (Seq);
if Seq = No_Seq_Assign then
-- Extract from gate.
- Append (Vec, Build_Extract (Ctxt, Wire_Rec.Gate,
- Cur_Off, Cur_Wd));
+ Append (Vec, Build2_Extract_Push (Ctxt, Wire_Rec.Gate,
+ Cur_Off, Cur_Wd));
exit;
end if;
if Get_Assign_Is_Static (Seq) then
@@ -1702,9 +1703,9 @@ package body Synth.Environment is
-- |----------||
-- P.Off P.Next
-- Shrink EL.
- P.Value := Build_Extract (Ctxt, P.Value,
- Off => V_Next - P.Offset,
- W => P_Next - V_Next);
+ P.Value := Build2_Extract_Push (Ctxt, P.Value,
+ Off => V_Next - P.Offset,
+ W => P_Next - V_Next);
P.Offset := V_Next;
if not Inserted then
if Last_El /= No_Partial_Assign then
@@ -1724,9 +1725,9 @@ package body Synth.Environment is
-- |----------||
-- P.Off P.Next
-- Shrink EL.
- P.Value := Build_Extract (Ctxt, P.Value,
- Off => 0,
- W => V.Offset - P.Offset);
+ P.Value := Build2_Extract_Push (Ctxt, P.Value,
+ Off => 0,
+ W => V.Offset - P.Offset);
pragma Assert (not Inserted);
V.Next := P.Next;
P.Next := Asgn;
@@ -1742,14 +1743,14 @@ package body Synth.Environment is
pragma Assert (not Inserted);
Partial_Assign_Table.Append
((Next => P.Next,
- Value => Build_Extract (Ctxt, P.Value,
- Off => V_Next - P.Offset,
- W => P_Next - V_Next),
+ Value => Build2_Extract_Push (Ctxt, P.Value,
+ Off => V_Next - P.Offset,
+ W => P_Next - V_Next),
Offset => V_Next));
V.Next := Partial_Assign_Table.Last;
- P.Value := Build_Extract (Ctxt, P.Value,
- Off => 0,
- W => V.Offset - P.Offset);
+ P.Value := Build2_Extract_Push (Ctxt, P.Value,
+ Off => 0,
+ W => V.Offset - P.Offset);
P.Next := Asgn;
Inserted := True;
-- No more possible overlaps.