diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-02-10 18:36:57 +0100 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-02-10 18:36:57 +0100 |
commit | 2d8a360c5335c4b497670fd27cb2c10d20ff4533 (patch) | |
tree | 0dd57edeaae10e69f94c089fa59309334ce79c31 /src/synth | |
parent | 5eeeb1bbd49c90cb89d1bc9df08e2028143cde01 (diff) | |
download | ghdl-2d8a360c5335c4b497670fd27cb2c10d20ff4533.tar.gz ghdl-2d8a360c5335c4b497670fd27cb2c10d20ff4533.tar.bz2 ghdl-2d8a360c5335c4b497670fd27cb2c10d20ff4533.zip |
synth-static_oper: handle xor.
Diffstat (limited to 'src/synth')
-rw-r--r-- | src/synth/synth-static_oper.adb | 11 |
1 files changed, 11 insertions, 0 deletions
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); |