aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2023-01-27 22:07:50 +0100
committerTristan Gingold <tgingold@free.fr>2023-01-27 22:07:50 +0100
commitb878e8b41bafd21df4179a223f551236fc782707 (patch)
treedbfb54784726fd2565b17a765c81baf416032b30 /src/synth
parent06e94bd1ac1331b82a371cc0e91097aa7d9d8bbe (diff)
downloadghdl-b878e8b41bafd21df4179a223f551236fc782707.tar.gz
ghdl-b878e8b41bafd21df4179a223f551236fc782707.tar.bz2
ghdl-b878e8b41bafd21df4179a223f551236fc782707.zip
synth-vhdl_oper: add bit-vect and vect-bit operations.
Fix #2327
Diffstat (limited to 'src/synth')
-rw-r--r--src/synth/synth-vhdl_oper.adb36
1 files changed, 24 insertions, 12 deletions
diff --git a/src/synth/synth-vhdl_oper.adb b/src/synth/synth-vhdl_oper.adb
index 206faf1a6..d811d01f0 100644
--- a/src/synth/synth-vhdl_oper.adb
+++ b/src/synth/synth-vhdl_oper.adb
@@ -1060,51 +1060,63 @@ package body Synth.Vhdl_Oper is
| Iir_Predefined_Ieee_Numeric_Std_Xnor_Sgn_Sgn =>
return Synth_Vec_Dyadic (Id_Xnor);
- when Iir_Predefined_Ieee_1164_And_Suv_Log
+ when Iir_Predefined_TF_Array_Element_And
+ | Iir_Predefined_Ieee_1164_And_Suv_Log
| Iir_Predefined_Ieee_Numeric_Std_And_Uns_Log
| Iir_Predefined_Ieee_Numeric_Std_And_Sgn_Log =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_And, L, R, Expr);
- when Iir_Predefined_Ieee_1164_And_Log_Suv
+ when Iir_Predefined_TF_Element_Array_And
+ | Iir_Predefined_Ieee_1164_And_Log_Suv
| Iir_Predefined_Ieee_Numeric_Std_And_Log_Uns
| Iir_Predefined_Ieee_Numeric_Std_And_Log_Sgn =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_And, R, L, Expr);
- when Iir_Predefined_Ieee_1164_Nand_Suv_Log
+ when Iir_Predefined_TF_Array_Element_Nand
+ | Iir_Predefined_Ieee_1164_Nand_Suv_Log
| Iir_Predefined_Ieee_Numeric_Std_Nand_Uns_Log
| Iir_Predefined_Ieee_Numeric_Std_Nand_Sgn_Log =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_Nand, L, R, Expr);
- when Iir_Predefined_Ieee_1164_Nand_Log_Suv
+ when Iir_Predefined_TF_Element_Array_Nand
+ | Iir_Predefined_Ieee_1164_Nand_Log_Suv
| Iir_Predefined_Ieee_Numeric_Std_Nand_Log_Uns
| Iir_Predefined_Ieee_Numeric_Std_Nand_Log_Sgn =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_Nand, R, L, Expr);
- when Iir_Predefined_Ieee_1164_Or_Suv_Log
+ when Iir_Predefined_TF_Array_Element_Or
+ | Iir_Predefined_Ieee_1164_Or_Suv_Log
| Iir_Predefined_Ieee_Numeric_Std_Or_Uns_Log
| Iir_Predefined_Ieee_Numeric_Std_Or_Sgn_Log =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_Or, L, R, Expr);
- when Iir_Predefined_Ieee_1164_Or_Log_Suv
+ when Iir_Predefined_TF_Element_Array_Or
+ | Iir_Predefined_Ieee_1164_Or_Log_Suv
| Iir_Predefined_Ieee_Numeric_Std_Or_Log_Uns
| Iir_Predefined_Ieee_Numeric_Std_Or_Log_Sgn =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_Or, R, L, Expr);
- when Iir_Predefined_Ieee_1164_Nor_Suv_Log
+ when Iir_Predefined_TF_Array_Element_Nor
+ | Iir_Predefined_Ieee_1164_Nor_Suv_Log
| Iir_Predefined_Ieee_Numeric_Std_Nor_Uns_Log
| Iir_Predefined_Ieee_Numeric_Std_Nor_Sgn_Log =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_Nor, L, R, Expr);
- when Iir_Predefined_Ieee_1164_Nor_Log_Suv
+ when Iir_Predefined_TF_Element_Array_Nor
+ | Iir_Predefined_Ieee_1164_Nor_Log_Suv
| Iir_Predefined_Ieee_Numeric_Std_Nor_Log_Uns
| Iir_Predefined_Ieee_Numeric_Std_Nor_Log_Sgn =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_Nor, R, L, Expr);
- when Iir_Predefined_Ieee_1164_Xor_Suv_Log
+ when Iir_Predefined_TF_Array_Element_Xor
+ | Iir_Predefined_Ieee_1164_Xor_Suv_Log
| Iir_Predefined_Ieee_Numeric_Std_Xor_Uns_Log
| Iir_Predefined_Ieee_Numeric_Std_Xor_Sgn_Log =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_Xor, L, R, Expr);
- when Iir_Predefined_Ieee_1164_Xor_Log_Suv
+ when Iir_Predefined_TF_Element_Array_Xor
+ | Iir_Predefined_Ieee_1164_Xor_Log_Suv
| Iir_Predefined_Ieee_Numeric_Std_Xor_Log_Uns
| Iir_Predefined_Ieee_Numeric_Std_Xor_Log_Sgn =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_Xor, R, L, Expr);
- when Iir_Predefined_Ieee_1164_Xnor_Suv_Log
+ when Iir_Predefined_TF_Array_Element_Xnor
+ | Iir_Predefined_Ieee_1164_Xnor_Suv_Log
| Iir_Predefined_Ieee_Numeric_Std_Xnor_Uns_Log
| Iir_Predefined_Ieee_Numeric_Std_Xnor_Sgn_Log =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_Xnor, L, R, Expr);
- when Iir_Predefined_Ieee_1164_Xnor_Log_Suv
+ when Iir_Predefined_TF_Element_Array_Xnor
+ | Iir_Predefined_Ieee_1164_Xnor_Log_Suv
| Iir_Predefined_Ieee_Numeric_Std_Xnor_Log_Uns
| Iir_Predefined_Ieee_Numeric_Std_Xnor_Log_Sgn =>
return Synth_Dyadic_Vec_Log (Ctxt, Id_Xnor, R, L, Expr);