diff options
author | Tristan Gingold <tgingold@free.fr> | 2019-07-28 20:44:40 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2019-07-28 20:44:40 +0200 |
commit | 2068fb5a9eba5da625d2dd73fdcb47755487d9f3 (patch) | |
tree | 4e0d0be6b65e6e5f73b6db3243f802e137cab6f2 /src/synth | |
parent | 81e426a6d34e71c9f171673d33fcf16c250f060e (diff) | |
download | ghdl-2068fb5a9eba5da625d2dd73fdcb47755487d9f3.tar.gz ghdl-2068fb5a9eba5da625d2dd73fdcb47755487d9f3.tar.bz2 ghdl-2068fb5a9eba5da625d2dd73fdcb47755487d9f3.zip |
synth: remove extract_bound (trivial).
Diffstat (limited to 'src/synth')
-rw-r--r-- | src/synth/synth-decls.adb | 2 | ||||
-rw-r--r-- | src/synth/synth-expr.adb | 10 | ||||
-rw-r--r-- | src/synth/synth-stmts.adb | 2 | ||||
-rw-r--r-- | src/synth/synth-values.adb | 5 | ||||
-rw-r--r-- | src/synth/synth-values.ads | 2 |
5 files changed, 6 insertions, 15 deletions
diff --git a/src/synth/synth-decls.adb b/src/synth/synth-decls.adb index 7f3afb623..ee9f49fa4 100644 --- a/src/synth/synth-decls.adb +++ b/src/synth/synth-decls.adb @@ -165,6 +165,8 @@ package body Synth.Decls is Typ := Create_Float_Type (Rng); Create_Object (Syn_Inst, Def, Create_Value_Subtype (Typ)); end; + when Iir_Kind_Array_Type_Definition => + Synth_Array_Type_Definition (Syn_Inst, Def); when others => Error_Kind ("synth_anonymous_type_definition", Def); end case; diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb index 21511e615..37e9a8a44 100644 --- a/src/synth/synth-expr.adb +++ b/src/synth/synth-expr.adb @@ -1120,9 +1120,8 @@ package body Synth.Expr is function Index_To_Offset (Pfx : Value_Acc; Idx : Int64; Loc : Node) return Uns32 is - Rng : Type_Acc; + Rng : constant Type_Acc := Pfx.Typ; begin - Rng := Extract_Bound (Pfx); if not In_Bounds (Rng.Vbound, Int32 (Idx)) then Error_Msg_Synth (+Loc, "index not within bounds"); return 0; @@ -1140,12 +1139,10 @@ package body Synth.Expr is function Dyn_Index_To_Offset (Pfx : Value_Acc; Idx : Net; Loc : Node) return Net is - Bnd : Type_Acc; + Bnd : constant Type_Acc := Pfx.Typ; Off : Net; Right : Net; begin - Bnd := Extract_Bound (Pfx); - -- TODO: handle width. Right := Build_Const_UB32 (Build_Context, To_Uns32 (Bnd.Vbound.Right), 32); @@ -1444,7 +1441,7 @@ package body Synth.Expr is is Pfx_Node : constant Node := Get_Prefix (Name); Pfx : constant Value_Acc := Synth_Expression (Syn_Inst, Pfx_Node); - Bnd : Type_Acc; + Bnd : constant Type_Acc := Pfx.Typ; Res_Bnd : Type_Acc; Inp : Net; Step : Uns32; @@ -1452,7 +1449,6 @@ package body Synth.Expr is Wd : Uns32; N : Net; begin - Bnd := Extract_Bound (Pfx); Synth_Slice_Suffix (Syn_Inst, Name, Bnd, Res_Bnd, Inp, Step, Off, Wd); if Inp /= No_Net then N := Build_Dyn_Extract (Build_Context, Get_Net (Pfx), diff --git a/src/synth/synth-stmts.adb b/src/synth/synth-stmts.adb index f9494725d..3d779f54c 100644 --- a/src/synth/synth-stmts.adb +++ b/src/synth/synth-stmts.adb @@ -174,7 +174,7 @@ package body Synth.Stmts is -- Only support assignment of vector. raise Internal_Error; end if; - Synth_Slice_Suffix (Syn_Inst, Target, Extract_Bound (Targ), + Synth_Slice_Suffix (Syn_Inst, Target, Targ.Typ, Res_Bnd, Inp, Step, Off, Wd); Targ_Net := Get_Last_Assigned_Value (Targ.W); V := Get_Net (Val); diff --git a/src/synth/synth-values.adb b/src/synth/synth-values.adb index c10afaf73..699705977 100644 --- a/src/synth/synth-values.adb +++ b/src/synth/synth-values.adb @@ -328,11 +328,6 @@ package body Synth.Values is return Res; end Unshare; - function Extract_Bound (Val : Value_Acc) return Type_Acc is - begin - return Val.Typ; - end Extract_Bound; - function Get_Type_Width (Atype : Type_Acc) return Width is begin case Atype.Kind is diff --git a/src/synth/synth-values.ads b/src/synth/synth-values.ads index 1a7e5df48..f754c73be 100644 --- a/src/synth/synth-values.ads +++ b/src/synth/synth-values.ads @@ -237,8 +237,6 @@ package Synth.Values is function Unshare (Src : Value_Acc; Pool : Areapool_Acc) return Value_Acc; - function Extract_Bound (Val : Value_Acc) return Type_Acc; - function Get_Type_Width (Atype : Type_Acc) return Width; procedure Init; |