aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-vhdl_eval.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-06-04 08:54:14 +0200
committerTristan Gingold <tgingold@free.fr>2022-06-04 16:27:48 +0200
commit067cbd4ad02a724bcbe5cec50a7229787c1ae74c (patch)
treebc12acc3696afc64d616afec4fb16a24102013ad /src/synth/synth-vhdl_eval.adb
parentb36bdd7e0dc9988cd930631419c4ea53898ed7fd (diff)
downloadghdl-067cbd4ad02a724bcbe5cec50a7229787c1ae74c.tar.gz
ghdl-067cbd4ad02a724bcbe5cec50a7229787c1ae74c.tar.bz2
ghdl-067cbd4ad02a724bcbe5cec50a7229787c1ae74c.zip
synth-vhdl_eval: handle more operators (nand, nor, xnor)
Diffstat (limited to 'src/synth/synth-vhdl_eval.adb')
-rw-r--r--src/synth/synth-vhdl_eval.adb15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/synth/synth-vhdl_eval.adb b/src/synth/synth-vhdl_eval.adb
index b14656b9e..d7a0c5694 100644
--- a/src/synth/synth-vhdl_eval.adb
+++ b/src/synth/synth-vhdl_eval.adb
@@ -762,16 +762,31 @@ package body Synth.Vhdl_Eval is
| Iir_Predefined_Ieee_Numeric_Std_And_Sgn_Sgn =>
return Eval_Vector_Dyadic (Left, Right, And_Table, Expr);
+ when Iir_Predefined_Ieee_1164_Vector_Nand
+ | Iir_Predefined_Ieee_Numeric_Std_Nand_Uns_Uns
+ | Iir_Predefined_Ieee_Numeric_Std_Nand_Sgn_Sgn =>
+ return Eval_Vector_Dyadic (Left, Right, Nand_Table, Expr);
+
when Iir_Predefined_Ieee_1164_Vector_Or
| Iir_Predefined_Ieee_Numeric_Std_Or_Uns_Uns
| Iir_Predefined_Ieee_Numeric_Std_Or_Sgn_Sgn =>
return Eval_Vector_Dyadic (Left, Right, Or_Table, Expr);
+ when Iir_Predefined_Ieee_1164_Vector_Nor
+ | Iir_Predefined_Ieee_Numeric_Std_Nor_Uns_Uns
+ | Iir_Predefined_Ieee_Numeric_Std_Nor_Sgn_Sgn =>
+ return Eval_Vector_Dyadic (Left, Right, Nor_Table, Expr);
+
when Iir_Predefined_Ieee_1164_Vector_Xor
| Iir_Predefined_Ieee_Numeric_Std_Xor_Uns_Uns
| Iir_Predefined_Ieee_Numeric_Std_Xor_Sgn_Sgn =>
return Eval_Vector_Dyadic (Left, Right, Xor_Table, Expr);
+ when Iir_Predefined_Ieee_1164_Vector_Xnor
+ | Iir_Predefined_Ieee_Numeric_Std_Xnor_Uns_Uns
+ | Iir_Predefined_Ieee_Numeric_Std_Xnor_Sgn_Sgn =>
+ return Eval_Vector_Dyadic (Left, Right, Xnor_Table, Expr);
+
when Iir_Predefined_Ieee_1164_Scalar_And =>
return Eval_Logic_Scalar (Left, Right, And_Table);
when Iir_Predefined_Ieee_1164_Scalar_Or =>