aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-06-23 15:46:27 +0200
committerTristan Gingold <tgingold@free.fr>2019-06-23 15:46:27 +0200
commitdd995fd0ba617cf8ba7588cc06329227a35dd7e8 (patch)
tree37c9d5cd79729d60eed86d21105263c534814a95 /src
parent59e3f7f5f3bea335eaaa95cb855de32ad38b1a59 (diff)
downloadghdl-dd995fd0ba617cf8ba7588cc06329227a35dd7e8.tar.gz
ghdl-dd995fd0ba617cf8ba7588cc06329227a35dd7e8.tar.bz2
ghdl-dd995fd0ba617cf8ba7588cc06329227a35dd7e8.zip
vhdl: recognize more numeric_std predefined functions.
Diffstat (limited to 'src')
-rw-r--r--src/vhdl/vhdl-ieee-numeric.adb20
-rw-r--r--src/vhdl/vhdl-nodes.ads35
2 files changed, 55 insertions, 0 deletions
diff --git a/src/vhdl/vhdl-ieee-numeric.adb b/src/vhdl/vhdl-ieee-numeric.adb
index e01eb8ec7..2abb92940 100644
--- a/src/vhdl/vhdl-ieee-numeric.adb
+++ b/src/vhdl/vhdl-ieee-numeric.adb
@@ -91,6 +91,24 @@ package body Vhdl.Ieee.Numeric is
(others =>
(others => Iir_Predefined_None)));
+ Lt_Patterns : constant Binary_Pattern_Type :=
+ (Pkg_Std =>
+ (Type_Unsigned =>
+ (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Lt_Uns_Uns,
+ Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Lt_Uns_Nat,
+ Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Lt_Nat_Uns,
+ Arg_Vect_Log => Iir_Predefined_None,
+ Arg_Log_Vect => Iir_Predefined_None),
+ Type_Signed =>
+ (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Lt_Sgn_Sgn,
+ Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Lt_Sgn_Int,
+ Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Lt_Int_Sgn,
+ Arg_Vect_Log => Iir_Predefined_None,
+ Arg_Log_Vect => Iir_Predefined_None)),
+ Pkg_Bit =>
+ (others =>
+ (others => Iir_Predefined_None)));
+
Neg_Patterns : constant Unary_Pattern_Type :=
(Pkg_Std =>
(Type_Unsigned => Iir_Predefined_Ieee_Numeric_Std_Neg_Uns,
@@ -305,6 +323,8 @@ package body Vhdl.Ieee.Numeric is
Handle_Binary (Sub_Patterns);
when Name_Op_Equality =>
Handle_Binary (Eq_Patterns);
+ when Name_Op_Less =>
+ Handle_Binary (Lt_Patterns);
when Name_To_Bstring
| Name_To_Ostring
| Name_To_Hstring =>
diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads
index f86047f93..807069d2e 100644
--- a/src/vhdl/vhdl-nodes.ads
+++ b/src/vhdl/vhdl-nodes.ads
@@ -4829,6 +4829,34 @@ 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_Gt_Uns_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Gt_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Gt_Nat_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Gt_Sgn_Sgn,
+ Iir_Predefined_Ieee_Numeric_Std_Gt_Sgn_Int,
+ Iir_Predefined_Ieee_Numeric_Std_Gt_Int_Sgn,
+
+ Iir_Predefined_Ieee_Numeric_Std_Lt_Uns_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Lt_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Lt_Nat_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Lt_Sgn_Sgn,
+ Iir_Predefined_Ieee_Numeric_Std_Lt_Sgn_Int,
+ Iir_Predefined_Ieee_Numeric_Std_Lt_Int_Sgn,
+
+ Iir_Predefined_Ieee_Numeric_Std_Le_Uns_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Le_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Le_Nat_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Le_Sgn_Sgn,
+ Iir_Predefined_Ieee_Numeric_Std_Le_Sgn_Int,
+ Iir_Predefined_Ieee_Numeric_Std_Le_Int_Sgn,
+
+ Iir_Predefined_Ieee_Numeric_Std_Ge_Uns_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Ge_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Ge_Nat_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Ge_Sgn_Sgn,
+ Iir_Predefined_Ieee_Numeric_Std_Ge_Sgn_Int,
+ Iir_Predefined_Ieee_Numeric_Std_Ge_Int_Sgn,
+
Iir_Predefined_Ieee_Numeric_Std_Eq_Uns_Uns,
Iir_Predefined_Ieee_Numeric_Std_Eq_Uns_Nat,
Iir_Predefined_Ieee_Numeric_Std_Eq_Nat_Uns,
@@ -4836,6 +4864,13 @@ package Vhdl.Nodes is
Iir_Predefined_Ieee_Numeric_Std_Eq_Sgn_Int,
Iir_Predefined_Ieee_Numeric_Std_Eq_Int_Sgn,
+ Iir_Predefined_Ieee_Numeric_Std_Ne_Uns_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Ne_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Ne_Nat_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Ne_Sgn_Sgn,
+ Iir_Predefined_Ieee_Numeric_Std_Ne_Sgn_Int,
+ Iir_Predefined_Ieee_Numeric_Std_Ne_Int_Sgn,
+
-- Unary functions for numeric_std
Iir_Predefined_Ieee_Numeric_Std_Neg_Uns,
Iir_Predefined_Ieee_Numeric_Std_Neg_Sgn