From 2d8a360c5335c4b497670fd27cb2c10d20ff4533 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Mon, 10 Feb 2020 18:36:57 +0100 Subject: synth-static_oper: handle xor. --- src/synth/synth-static_oper.adb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/synth/synth-static_oper.adb b/src/synth/synth-static_oper.adb index 6db92757c..02cd54d3d 100644 --- a/src/synth/synth-static_oper.adb +++ b/src/synth/synth-static_oper.adb @@ -487,6 +487,17 @@ package body Synth.Static_Oper is | Iir_Predefined_Ieee_Numeric_Std_Or_Sgn_Sgn => return Synth_Vector_Dyadic (Left, Right, Or_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 Synth_Vector_Dyadic (Left, Right, Xor_Table, Expr); + + when Iir_Predefined_Ieee_1164_Scalar_Xor => + return Create_Value_Discrete + (Std_Ulogic'Pos (Xor_Table (Std_Ulogic'Val (Left.Scal), + Std_Ulogic'Val (Right.Scal))), + Res_Typ); + when Iir_Predefined_Ieee_Numeric_Std_Add_Uns_Uns => return Synth_Add_Uns_Uns (Left, Right, Expr); -- cgit v1.2.3