aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-vhdl_eval.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-06-04 07:43:49 +0200
committerTristan Gingold <tgingold@free.fr>2022-06-04 16:27:47 +0200
commit90ae71139bc39dc158f54e0337ed73f15033e77f (patch)
tree3be01f01b58f9a5ff82f2c8fa31187c6ba19a4a6 /src/synth/synth-vhdl_eval.adb
parentadfe96ecbe5795f65f8214ce30073385de37bbc6 (diff)
downloadghdl-90ae71139bc39dc158f54e0337ed73f15033e77f.tar.gz
ghdl-90ae71139bc39dc158f54e0337ed73f15033e77f.tar.bz2
ghdl-90ae71139bc39dc158f54e0337ed73f15033e77f.zip
synth-vhdl_eval: handle rotations
Diffstat (limited to 'src/synth/synth-vhdl_eval.adb')
-rw-r--r--src/synth/synth-vhdl_eval.adb9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/synth/synth-vhdl_eval.adb b/src/synth/synth-vhdl_eval.adb
index 6eaf035e8..5baced201 100644
--- a/src/synth/synth-vhdl_eval.adb
+++ b/src/synth/synth-vhdl_eval.adb
@@ -1881,6 +1881,14 @@ package body Synth.Vhdl_Eval is
return Shift_Vec
(Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)),
False, False);
+ when Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Uns_Nat
+ | Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Sgn_Nat =>
+ return Rotate_Vec
+ (Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)), False);
+ when Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Uns_Nat
+ | Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Sgn_Nat =>
+ return Rotate_Vec
+ (Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)), True);
when Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Uns_Nat =>
return Shift_Vec
(Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)),
@@ -1889,6 +1897,7 @@ package body Synth.Vhdl_Eval is
return Shift_Vec
(Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)),
True, True);
+
when Iir_Predefined_Ieee_Numeric_Std_Resize_Sgn_Nat =>
return Resize_Vec
(Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)), True);