aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-10-19 05:24:42 +0200
committerTristan Gingold <tgingold@free.fr>2022-10-19 05:24:42 +0200
commit693466dceafbbca9cf060e4ee8e43b8abf1173cd (patch)
tree193b657a417e899f049c1c904c5d95f571cac489
parentfa0f97b6416f1015823f574f52c1343eb9058e16 (diff)
downloadghdl-693466dceafbbca9cf060e4ee8e43b8abf1173cd.tar.gz
ghdl-693466dceafbbca9cf060e4ee8e43b8abf1173cd.tar.bz2
ghdl-693466dceafbbca9cf060e4ee8e43b8abf1173cd.zip
synth-vhdl_oper: handle and_reduce. Fix #2224
-rw-r--r--src/synth/synth-vhdl_oper.adb11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/synth/synth-vhdl_oper.adb b/src/synth/synth-vhdl_oper.adb
index 1bbfbb133..960747266 100644
--- a/src/synth/synth-vhdl_oper.adb
+++ b/src/synth/synth-vhdl_oper.adb
@@ -2129,7 +2129,7 @@ package body Synth.Vhdl_Oper is
return Synth_Dyadic_Int_Sgn (Ctxt, Id_Smax, L, R, Expr);
when Iir_Predefined_Ieee_Std_Logic_Misc_Or_Reduce_Slv
- | Iir_Predefined_Ieee_Std_Logic_Misc_Or_Reduce_Suv =>
+ | Iir_Predefined_Ieee_Std_Logic_Misc_Or_Reduce_Suv =>
declare
N : Net;
begin
@@ -2137,6 +2137,15 @@ package body Synth.Vhdl_Oper is
Set_Location (N, Expr);
return Create_Value_Net (N, Res_Typ);
end;
+ when Iir_Predefined_Ieee_Std_Logic_Misc_And_Reduce_Slv
+ | Iir_Predefined_Ieee_Std_Logic_Misc_And_Reduce_Suv =>
+ declare
+ N : Net;
+ begin
+ N := Build_Reduce (Ctxt, Id_Red_And, Get_Net (Ctxt, L));
+ Set_Location (N, Expr);
+ return Create_Value_Net (N, Res_Typ);
+ end;
when Iir_Predefined_Ieee_Numeric_Std_Match_Suv
| Iir_Predefined_Ieee_Numeric_Std_Match_Slv =>