diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-06-04 07:43:49 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-06-04 16:27:47 +0200 |
commit | 90ae71139bc39dc158f54e0337ed73f15033e77f (patch) | |
tree | 3be01f01b58f9a5ff82f2c8fa31187c6ba19a4a6 /src/synth/synth-vhdl_eval.adb | |
parent | adfe96ecbe5795f65f8214ce30073385de37bbc6 (diff) | |
download | ghdl-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.adb | 9 |
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); |