diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/synth/synth-decls.adb | 1 | ||||
| -rw-r--r-- | src/synth/synth-expr.adb | 15 | ||||
| -rw-r--r-- | src/synth/synth-expr.ads | 3 | ||||
| -rw-r--r-- | src/synth/synth-insts.adb | 1 | ||||
| -rw-r--r-- | src/synth/synth-oper.adb | 4 | ||||
| -rw-r--r-- | src/synth/synth-source.adb | 21 | ||||
| -rw-r--r-- | src/synth/synth-source.ads | 3 | ||||
| -rw-r--r-- | src/synth/synth-stmts.adb | 3 | 
8 files changed, 34 insertions, 17 deletions
| diff --git a/src/synth/synth-decls.adb b/src/synth/synth-decls.adb index 408e8ecc6..99e6d3d9b 100644 --- a/src/synth/synth-decls.adb +++ b/src/synth/synth-decls.adb @@ -31,6 +31,7 @@ with Vhdl.Ieee.Std_Logic_1164;  with Synth.Environment; use Synth.Environment;  with Synth.Expr; use Synth.Expr;  with Synth.Stmts; +with Synth.Source; use Synth.Source;  package body Synth.Decls is     procedure Synth_Anonymous_Subtype_Indication diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb index d534b5d87..564ce3420 100644 --- a/src/synth/synth-expr.adb +++ b/src/synth/synth-expr.adb @@ -33,7 +33,6 @@ with Vhdl.Annotations; use Vhdl.Annotations;  with Netlists.Gates; use Netlists.Gates;  with Netlists.Builders; use Netlists.Builders; -with Netlists.Locations; use Netlists.Locations;  with Synth.Types; use Synth.Types;  with Synth.Errors; use Synth.Errors; @@ -46,18 +45,8 @@ package body Synth.Expr is     function Synth_Name (Syn_Inst : Synth_Instance_Acc; Name : Node)                         return Value_Acc; -   procedure Set_Location2 (N : Net; Loc : Node) is -   begin -      Set_Location (Get_Net_Parent (N), Get_Location (Loc)); -   end Set_Location2; - -   procedure Set_Location (N : Net; Loc : Node) is -   begin -      --  Short and compact code as it is inlined. -      if Flag_Locations then -         Set_Location2 (N, Loc); -      end if; -   end Set_Location; +   procedure Set_Location (N : Net; Loc : Node) +     renames Synth.Source.Set_Location;     function Get_Const_Discrete (V : Value_Acc) return Int64     is diff --git a/src/synth/synth-expr.ads b/src/synth/synth-expr.ads index f04e0630b..0fc4eb697 100644 --- a/src/synth/synth-expr.ads +++ b/src/synth/synth-expr.ads @@ -29,9 +29,6 @@ with Synth.Context; use Synth.Context;  with Vhdl.Nodes; use Vhdl.Nodes;  package Synth.Expr is -   procedure Set_Location (N : Net; Loc : Node); -   pragma Inline (Set_Location); -     --  Perform a subtype conversion.  Check constraints.     function Synth_Subtype_Conversion (Val : Value_Acc;                                        Dtype : Type_Acc; diff --git a/src/synth/synth-insts.adb b/src/synth/synth-insts.adb index 9d450eda0..f29ecea07 100644 --- a/src/synth/synth-insts.adb +++ b/src/synth/synth-insts.adb @@ -38,6 +38,7 @@ with Synth.Environment; use Synth.Environment;  with Synth.Stmts; use Synth.Stmts;  with Synth.Decls; use Synth.Decls;  with Synth.Expr; use Synth.Expr; +with Synth.Source; use Synth.Source;  package body Synth.Insts is     Root_Instance : Synth_Instance_Acc; diff --git a/src/synth/synth-oper.adb b/src/synth/synth-oper.adb index 50449dac6..82a23f310 100644 --- a/src/synth/synth-oper.adb +++ b/src/synth/synth-oper.adb @@ -36,12 +36,16 @@ with Synth.Errors; use Synth.Errors;  with Synth.Types; use Synth.Types;  with Synth.Stmts; use Synth.Stmts;  with Synth.Expr; use Synth.Expr; +with Synth.Source;  package body Synth.Oper is     --  As log2(3m) is directly referenced, the program must be linked with -lm     --  (math library) on unix systems.     pragma Linker_Options ("-lm"); +   procedure Set_Location (N : Net; Loc : Node) +     renames Synth.Source.Set_Location; +     function Synth_Uresize (N : Net; W : Width; Loc : Node) return Net     is        Wn : constant Width := Get_Width (N); diff --git a/src/synth/synth-source.adb b/src/synth/synth-source.adb index 0ccbf0d90..4f6230723 100644 --- a/src/synth/synth-source.adb +++ b/src/synth/synth-source.adb @@ -22,10 +22,29 @@ with Netlists; use Netlists;  with Netlists.Locations; use Netlists.Locations;  package body Synth.Source is +   procedure Set_Location2 (N : Net; Loc : Node) is +   begin +      Set_Location (Get_Net_Parent (N), Get_Location (Loc)); +   end Set_Location2; + +   procedure Set_Location2 (Inst : Instance; Loc : Node) is +   begin +      Set_Location (Inst, Get_Location (Loc)); +   end Set_Location2; +     procedure Set_Location (N : Net; Src : Syn_Src) is     begin +      --  Short and compact code as it is inlined. +      if Flag_Locations then +         Set_Location2 (N, Src); +      end if; +   end Set_Location; + +   procedure Set_Location (Inst : Instance; Src : Syn_Src) is +   begin +      --  Short and compact code as it is inlined.        if Flag_Locations then -         Set_Location (Get_Net_Parent (N), Get_Location (Src)); +         Set_Location2 (Inst, Src);        end if;     end Set_Location;  end Synth.Source; diff --git a/src/synth/synth-source.ads b/src/synth/synth-source.ads index ed640463d..8962d86b1 100644 --- a/src/synth/synth-source.ads +++ b/src/synth/synth-source.ads @@ -35,4 +35,7 @@ package Synth.Source is     procedure Set_Location (N : Netlists.Net; Src : Syn_Src);     pragma Inline (Set_Location); + +   procedure Set_Location (Inst : Netlists.Instance; Src : Syn_Src); +   pragma Inline (Set_Location);  end Synth.Source; diff --git a/src/synth/synth-stmts.adb b/src/synth/synth-stmts.adb index 7b25a456e..e153a7cd4 100644 --- a/src/synth/synth-stmts.adb +++ b/src/synth/synth-stmts.adb @@ -52,6 +52,9 @@ package body Synth.Stmts is     procedure Synth_Sequential_Statements       (C : in out Seq_Context; Stmts : Node); +   procedure Set_Location (N : Net; Loc : Node) +     renames Synth.Source.Set_Location; +     function Synth_Waveform (Syn_Inst : Synth_Instance_Acc;                              Wf : Node;                              Targ_Type : Type_Acc) return Value_Acc is | 
