aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-values.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-09-08 08:54:41 +0200
committerTristan Gingold <tgingold@free.fr>2019-09-11 06:37:27 +0200
commit42c6c8b8d96d781dbe9173a647d17b3f25da32c2 (patch)
tree7c7c5e29b6fabd59d16723f190e1337dfa148bb8 /src/synth/synth-values.ads
parent419d542accc0a0bd5f3daa833f202043ce6f480c (diff)
downloadghdl-42c6c8b8d96d781dbe9173a647d17b3f25da32c2.tar.gz
ghdl-42c6c8b8d96d781dbe9173a647d17b3f25da32c2.tar.bz2
ghdl-42c6c8b8d96d781dbe9173a647d17b3f25da32c2.zip
synth: introduce slice type.
Diffstat (limited to 'src/synth/synth-values.ads')
-rw-r--r--src/synth/synth-values.ads7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/synth/synth-values.ads b/src/synth/synth-values.ads
index fa6f0908f..9d2026270 100644
--- a/src/synth/synth-values.ads
+++ b/src/synth/synth-values.ads
@@ -76,6 +76,10 @@ package Synth.Values is
Type_Discrete,
Type_Float,
Type_Vector,
+
+ -- A slice is for a slice of vector with dynamic bounds. So the bounds
+ -- of the result aren't known, but its width is.
+ Type_Slice,
Type_Array,
Type_Unbounded_Array,
Type_Record
@@ -108,6 +112,8 @@ package Synth.Values is
when Type_Vector =>
Vbound : Bound_Type;
Vec_El : Type_Acc;
+ when Type_Slice =>
+ Slice_El : Type_Acc;
when Type_Array =>
Abounds : Bound_Array_Acc;
Arr_El : Type_Acc;
@@ -219,6 +225,7 @@ package Synth.Values is
return Type_Acc;
function Create_Vector_Type (Bnd : Bound_Type; El_Type : Type_Acc)
return Type_Acc;
+ function Create_Slice_Type (W : Width; El_Type : Type_Acc) return Type_Acc;
function Create_Bound_Array (Ndims : Iir_Index32) return Bound_Array_Acc;
function Create_Array_Type (Bnd : Bound_Array_Acc; El_Type : Type_Acc)
return Type_Acc;