From 1c29fa09e1f71e7fb389f451afab3bd2fb1264ab Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Sat, 7 Sep 2019 16:35:06 +0200 Subject: vhdl: recognize numeric_std mul. --- src/vhdl/vhdl-ieee-numeric.adb | 20 ++++++++++++++++++++ src/vhdl/vhdl-nodes.ads | 7 +++++++ 2 files changed, 27 insertions(+) (limited to 'src') diff --git a/src/vhdl/vhdl-ieee-numeric.adb b/src/vhdl/vhdl-ieee-numeric.adb index cf0f7db26..4d5c0d5e3 100644 --- a/src/vhdl/vhdl-ieee-numeric.adb +++ b/src/vhdl/vhdl-ieee-numeric.adb @@ -73,6 +73,24 @@ package body Vhdl.Ieee.Numeric is (others => (others => Iir_Predefined_None))); + Mul_Patterns : constant Binary_Pattern_Type := + (Pkg_Std => + (Type_Unsigned => + (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Mul_Uns_Uns, + Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Mul_Uns_Nat, + Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Mul_Nat_Uns, + Arg_Vect_Log => Iir_Predefined_None, + Arg_Log_Vect => Iir_Predefined_None), + Type_Signed => + (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Mul_Sgn_Sgn, + Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Mul_Sgn_Int, + Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Mul_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 => @@ -533,6 +551,8 @@ package body Vhdl.Ieee.Numeric is Handle_Binary (Add_Patterns); when Name_Op_Minus => Handle_Binary (Sub_Patterns); + when Name_Op_Mul => + Handle_Binary (Mul_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 64eea3a3c..93407a5df 100644 --- a/src/vhdl/vhdl-nodes.ads +++ b/src/vhdl/vhdl-nodes.ads @@ -4943,6 +4943,13 @@ package Vhdl.Nodes is Iir_Predefined_Ieee_Numeric_Std_Sub_Sgn_Int, Iir_Predefined_Ieee_Numeric_Std_Sub_Int_Sgn, + Iir_Predefined_Ieee_Numeric_Std_Mul_Uns_Uns, + Iir_Predefined_Ieee_Numeric_Std_Mul_Uns_Nat, + Iir_Predefined_Ieee_Numeric_Std_Mul_Nat_Uns, + Iir_Predefined_Ieee_Numeric_Std_Mul_Sgn_Sgn, + Iir_Predefined_Ieee_Numeric_Std_Mul_Sgn_Int, + Iir_Predefined_Ieee_Numeric_Std_Mul_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, -- cgit v1.2.3