aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-09-30 20:57:50 +0200
committerTristan Gingold <tgingold@free.fr>2019-09-30 20:57:50 +0200
commitfce1061ee2be3198b7fe323f15092f473ae53919 (patch)
tree3131ce8aee651bbbc105333a5c8b7027ac7c8325 /src
parent5b00e825e9befedcfe0806d380218286ddce42ce (diff)
downloadghdl-fce1061ee2be3198b7fe323f15092f473ae53919.tar.gz
ghdl-fce1061ee2be3198b7fe323f15092f473ae53919.tar.bz2
ghdl-fce1061ee2be3198b7fe323f15092f473ae53919.zip
vhdl: recognize div operators.
Diffstat (limited to 'src')
-rw-r--r--src/vhdl/vhdl-ieee-numeric.adb20
-rw-r--r--src/vhdl/vhdl-nodes.ads7
2 files changed, 27 insertions, 0 deletions
diff --git a/src/vhdl/vhdl-ieee-numeric.adb b/src/vhdl/vhdl-ieee-numeric.adb
index c7b53a38b..c33a2c8e0 100644
--- a/src/vhdl/vhdl-ieee-numeric.adb
+++ b/src/vhdl/vhdl-ieee-numeric.adb
@@ -94,6 +94,24 @@ package body Vhdl.Ieee.Numeric is
(others =>
(others => Iir_Predefined_None)));
+ Div_Patterns : constant Binary_Pattern_Type :=
+ (Pkg_Std =>
+ (Type_Unsigned =>
+ (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Div_Uns_Uns,
+ Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Div_Uns_Nat,
+ Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Div_Nat_Uns,
+ Arg_Vect_Log => Iir_Predefined_None,
+ Arg_Log_Vect => Iir_Predefined_None),
+ Type_Signed =>
+ (Arg_Vect_Vect => Iir_Predefined_Ieee_Numeric_Std_Div_Sgn_Sgn,
+ Arg_Vect_Scal => Iir_Predefined_Ieee_Numeric_Std_Div_Sgn_Int,
+ Arg_Scal_Vect => Iir_Predefined_Ieee_Numeric_Std_Div_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 =>
@@ -590,6 +608,8 @@ package body Vhdl.Ieee.Numeric is
Handle_Binary (Sub_Patterns);
when Name_Op_Mul =>
Handle_Binary (Mul_Patterns);
+ when Name_Op_Div =>
+ Handle_Binary (Div_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 27ec94448..6d0bca05a 100644
--- a/src/vhdl/vhdl-nodes.ads
+++ b/src/vhdl/vhdl-nodes.ads
@@ -4958,6 +4958,13 @@ package Vhdl.Nodes is
Iir_Predefined_Ieee_Numeric_Std_Mul_Sgn_Int,
Iir_Predefined_Ieee_Numeric_Std_Mul_Int_Sgn,
+ Iir_Predefined_Ieee_Numeric_Std_Div_Uns_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Div_Uns_Nat,
+ Iir_Predefined_Ieee_Numeric_Std_Div_Nat_Uns,
+ Iir_Predefined_Ieee_Numeric_Std_Div_Sgn_Sgn,
+ Iir_Predefined_Ieee_Numeric_Std_Div_Sgn_Int,
+ Iir_Predefined_Ieee_Numeric_Std_Div_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,