From b2354de2756c4b51acebcbf90df1c81069d0c7b7 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 19 May 2020 05:36:56 +0200 Subject: vhdl-nodes: Rename and move shift/rotate predefined functions. Fix #1325 --- src/synth/synth-oper.adb | 12 ++++++------ src/synth/synth-static_oper.adb | 11 ++++------- src/vhdl/vhdl-ieee-numeric.adb | 16 ++++++++-------- src/vhdl/vhdl-nodes.ads | 18 +++++++++--------- 4 files changed, 27 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/synth/synth-oper.adb b/src/synth/synth-oper.adb index c34ec4875..22e455b55 100644 --- a/src/synth/synth-oper.adb +++ b/src/synth/synth-oper.adb @@ -1638,16 +1638,16 @@ package body Synth.Oper is W, Get_Location (Expr)), Create_Vec_Type_By_Length (W, Logic_Type)); end; - when Iir_Predefined_Ieee_Numeric_Std_Shl_Uns_Nat - | Iir_Predefined_Ieee_Numeric_Std_Shl_Sgn_Nat => + when Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Uns_Nat + | Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Sgn_Nat => return Synth_Shift_Rotate (Ctxt, Id_Lsl, L, R, Expr); - when Iir_Predefined_Ieee_Numeric_Std_Shr_Uns_Nat => + when Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Uns_Nat => return Synth_Shift_Rotate (Ctxt, Id_Lsr, L, R, Expr); - when Iir_Predefined_Ieee_Numeric_Std_Shr_Sgn_Nat => + when Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Sgn_Nat => return Synth_Shift_Rotate (Ctxt, Id_Asr, L, R, Expr); - when Iir_Predefined_Ieee_Numeric_Std_Rol_Uns_Nat => + when Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Uns_Nat => return Synth_Shift_Rotate (Ctxt, Id_Rol, L, R, Expr); - when Iir_Predefined_Ieee_Numeric_Std_Ror_Uns_Nat => + when Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Uns_Nat => return Synth_Shift_Rotate (Ctxt, Id_Ror, L, R, Expr); when Iir_Predefined_Ieee_Numeric_Std_Min_Uns_Uns => diff --git a/src/synth/synth-static_oper.adb b/src/synth/synth-static_oper.adb index b2c56aa8d..ade651703 100644 --- a/src/synth/synth-static_oper.adb +++ b/src/synth/synth-static_oper.adb @@ -847,19 +847,16 @@ package body Synth.Static_Oper is return Create_Memory_Discrete (Eval_Signed_To_Integer (Get_Memtyp (Param1), Expr), Res_Typ); - when Iir_Predefined_Ieee_Numeric_Std_Shl_Uns_Nat => + when Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Uns_Nat + | Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Sgn_Nat => return Shift_Vec (Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)), False, False); - when Iir_Predefined_Ieee_Numeric_Std_Shl_Sgn_Nat => - return Shift_Vec - (Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)), - False, False); - when Iir_Predefined_Ieee_Numeric_Std_Shr_Uns_Nat => + when Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Uns_Nat => return Shift_Vec (Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)), True, False); - when Iir_Predefined_Ieee_Numeric_Std_Shr_Sgn_Nat => + when Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Sgn_Nat => return Shift_Vec (Get_Memtyp (Param1), Uns32 (Read_Discrete (Param2)), True, True); diff --git a/src/vhdl/vhdl-ieee-numeric.adb b/src/vhdl/vhdl-ieee-numeric.adb index 7be77ac8f..db368c380 100644 --- a/src/vhdl/vhdl-ieee-numeric.adb +++ b/src/vhdl/vhdl-ieee-numeric.adb @@ -494,20 +494,20 @@ package body Vhdl.Ieee.Numeric is (others => Iir_Predefined_None))); Shl_Patterns : constant Shift_Pattern_Type := - (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Shl_Sgn_Nat, - Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Shl_Uns_Nat); + (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Sgn_Nat, + Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Uns_Nat); Shr_Patterns : constant Shift_Pattern_Type := - (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Shr_Sgn_Nat, - Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Shr_Uns_Nat); + (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Sgn_Nat, + Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Uns_Nat); Rol_Patterns : constant Shift_Pattern_Type := - (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Rol_Sgn_Nat, - Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Rol_Uns_Nat); + (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Sgn_Nat, + Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Uns_Nat); Ror_Patterns : constant Shift_Pattern_Type := - (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Ror_Sgn_Nat, - Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Ror_Uns_Nat); + (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Sgn_Nat, + Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Uns_Nat); Sll_Patterns : constant Shift_Pattern_Type := (Type_Signed => Iir_Predefined_Ieee_Numeric_Std_Sll_Sgn_Int, diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads index 50ffbfcb0..bc37733d6 100644 --- a/src/vhdl/vhdl-nodes.ads +++ b/src/vhdl/vhdl-nodes.ads @@ -5642,11 +5642,6 @@ package Vhdl.Nodes is Iir_Predefined_Ieee_Numeric_Std_Sra_Uns_Int, Iir_Predefined_Ieee_Numeric_Std_Sra_Sgn_Int, - Iir_Predefined_Ieee_Numeric_Std_Rol_Uns_Nat, - Iir_Predefined_Ieee_Numeric_Std_Ror_Uns_Nat, - Iir_Predefined_Ieee_Numeric_Std_Rol_Sgn_Nat, - Iir_Predefined_Ieee_Numeric_Std_Ror_Sgn_Nat, - Iir_Predefined_Ieee_Numeric_Std_And_Uns_Uns, Iir_Predefined_Ieee_Numeric_Std_And_Sgn_Sgn, @@ -5691,10 +5686,15 @@ package Vhdl.Nodes is Iir_Predefined_Ieee_Numeric_Std_Max_Int_Sgn, -- Shift and rotate functions. - Iir_Predefined_Ieee_Numeric_Std_Shl_Uns_Nat, - Iir_Predefined_Ieee_Numeric_Std_Shr_Uns_Nat, - Iir_Predefined_Ieee_Numeric_Std_Shl_Sgn_Nat, - Iir_Predefined_Ieee_Numeric_Std_Shr_Sgn_Nat, + Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Uns_Nat, + Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Uns_Nat, + Iir_Predefined_Ieee_Numeric_Std_Shf_Left_Sgn_Nat, + Iir_Predefined_Ieee_Numeric_Std_Shf_Right_Sgn_Nat, + + Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Uns_Nat, + Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Uns_Nat, + Iir_Predefined_Ieee_Numeric_Std_Rot_Left_Sgn_Nat, + Iir_Predefined_Ieee_Numeric_Std_Rot_Right_Sgn_Nat, -- Std_Match functions. Iir_Predefined_Ieee_Numeric_Std_Match_Log, -- cgit v1.2.3