diff options
Diffstat (limited to 'src/vhdl')
-rw-r--r-- | src/vhdl/vhdl-ieee-numeric.adb | 40 | ||||
-rw-r--r-- | src/vhdl/vhdl-nodes.ads | 14 |
2 files changed, 54 insertions, 0 deletions
diff --git a/src/vhdl/vhdl-ieee-numeric.adb b/src/vhdl/vhdl-ieee-numeric.adb index 990f74b5e..f03ac61d4 100644 --- a/src/vhdl/vhdl-ieee-numeric.adb +++ b/src/vhdl/vhdl-ieee-numeric.adb @@ -112,6 +112,42 @@ package body Vhdl.Ieee.Numeric is (others => (others => Iir_Predefined_None))); + Rem_Patterns : constant Binary_Pattern_Type := + (Pkg_Std => + (Type_Unsigned => + (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Rem_Uns_Uns, + Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Rem_Uns_Nat, + Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Rem_Nat_Uns, + Arg_Vect_Log => Iir_Predefined_None, + Arg_Log_Vect => Iir_Predefined_None), + Type_Signed => + (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Rem_Sgn_Sgn, + Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Rem_Sgn_Int, + Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Rem_Int_Sgn, + Arg_Vect_Log => Iir_Predefined_None, + Arg_Log_Vect => Iir_Predefined_None)), + Pkg_Bit => + (others => + (others => Iir_Predefined_None))); + + Mod_Patterns : constant Binary_Pattern_Type := + (Pkg_Std => + (Type_Unsigned => + (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Mod_Uns_Uns, + Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Mod_Uns_Nat, + Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Mod_Nat_Uns, + Arg_Vect_Log => Iir_Predefined_None, + Arg_Log_Vect => Iir_Predefined_None), + Type_Signed => + (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Mod_Sgn_Sgn, + Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Mod_Sgn_Int, + Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Mod_Int_Sgn, + Arg_Vect_Log => Iir_Predefined_None, + Arg_Log_Vect => Iir_Predefined_None)), + Pkg_Bit => + (others => + (others => Iir_Predefined_None))); + Eq_Patterns : constant Binary_Pattern_Type := (Pkg_Std => (Type_Unsigned => @@ -741,6 +777,10 @@ package body Vhdl.Ieee.Numeric is Handle_Binary (Mul_Patterns); when Name_Op_Div => Handle_Binary (Div_Patterns); + when Name_Mod => + Handle_Binary (Mod_Patterns); + when Name_Rem => + Handle_Binary (Rem_Patterns); when Name_Op_Equality => Handle_Binary (Eq_Patterns); when Name_Op_Inequality => diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads index a9ba20275..54fba3db2 100644 --- a/src/vhdl/vhdl-nodes.ads +++ b/src/vhdl/vhdl-nodes.ads @@ -5527,6 +5527,20 @@ package Vhdl.Nodes is Iir_Predefined_Ieee_Numeric_Std_Div_Sgn_Int, Iir_Predefined_Ieee_Numeric_Std_Div_Int_Sgn, + Iir_Predefined_Ieee_Numeric_Std_Rem_Uns_Uns, + Iir_Predefined_Ieee_Numeric_Std_Rem_Uns_Nat, + Iir_Predefined_Ieee_Numeric_Std_Rem_Nat_Uns, + Iir_Predefined_Ieee_Numeric_Std_Rem_Sgn_Sgn, + Iir_Predefined_Ieee_Numeric_Std_Rem_Sgn_Int, + Iir_Predefined_Ieee_Numeric_Std_Rem_Int_Sgn, + + Iir_Predefined_Ieee_Numeric_Std_Mod_Uns_Uns, + Iir_Predefined_Ieee_Numeric_Std_Mod_Uns_Nat, + Iir_Predefined_Ieee_Numeric_Std_Mod_Nat_Uns, + Iir_Predefined_Ieee_Numeric_Std_Mod_Sgn_Sgn, + Iir_Predefined_Ieee_Numeric_Std_Mod_Sgn_Int, + Iir_Predefined_Ieee_Numeric_Std_Mod_Int_Sgn, + Iir_Predefined_Ieee_Numeric_Std_Gt_Uns_Uns, Iir_Predefined_Ieee_Numeric_Std_Gt_Uns_Nat, Iir_Predefined_Ieee_Numeric_Std_Gt_Nat_Uns, |