diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-09-26 09:11:33 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-09-26 09:11:33 +0200 |
commit | c389c4fc8b65357e8075731323f4ba188817c134 (patch) | |
tree | 58457b56b7bac1da744c5f4ea6c4930ee6032e67 /src/synth/synth-objtypes.adb | |
parent | 8269262a63906c16f4fc2fd3c17fc91216eb7f09 (diff) | |
download | ghdl-c389c4fc8b65357e8075731323f4ba188817c134.tar.gz ghdl-c389c4fc8b65357e8075731323f4ba188817c134.tar.bz2 ghdl-c389c4fc8b65357e8075731323f4ba188817c134.zip |
synth: minor refactoring. Move In_Bounds/In_Range to synth-objtypes.
Diffstat (limited to 'src/synth/synth-objtypes.adb')
-rw-r--r-- | src/synth/synth-objtypes.adb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/synth/synth-objtypes.adb b/src/synth/synth-objtypes.adb index 585605190..25857f065 100644 --- a/src/synth/synth-objtypes.adb +++ b/src/synth/synth-objtypes.adb @@ -156,6 +156,26 @@ package body Synth.Objtypes is return W; end Discrete_Range_Width; + function In_Bounds (Bnd : Bound_Type; V : Int32) return Boolean is + begin + case Bnd.Dir is + when Dir_To => + return V >= Bnd.Left and then V <= Bnd.Right; + when Dir_Downto => + return V <= Bnd.Left and then V >= Bnd.Right; + end case; + end In_Bounds; + + function In_Range (Rng : Discrete_Range_Type; V : Int64) return Boolean is + begin + case Rng.Dir is + when Dir_To => + return V >= Rng.Left and then V <= Rng.Right; + when Dir_Downto => + return V <= Rng.Left and then V >= Rng.Right; + end case; + end In_Range; + function Create_Bit_Type return Type_Acc is subtype Bit_Type_Type is Type_Type (Type_Bit); |