From: Clifford Wolf Date: Thu, 6 Mar 2014 10:53:37 +0000 (+0100) Subject: Strictly zero-extend unsigned A-inputs of shift operations X-Git-Tag: yosys-0.3.0~90 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a1bfde8c5ea0d5c9778579bf78165637ac6c9b25;p=yosys.git Strictly zero-extend unsigned A-inputs of shift operations --- diff --git a/kernel/calc.cc b/kernel/calc.cc index a56db93aa..749589f20 100644 --- a/kernel/calc.cc +++ b/kernel/calc.cc @@ -305,14 +305,14 @@ static RTLIL::Const const_shift(const RTLIL::Const &arg1, const RTLIL::Const &ar RTLIL::Const RTLIL::const_shl(const RTLIL::Const &arg1, const RTLIL::Const &arg2, bool signed1, bool, int result_len) { RTLIL::Const arg1_ext = arg1; - extend(arg1_ext, result_len, signed1); + extend_u0(arg1_ext, result_len, signed1); return const_shift(arg1_ext, arg2, false, -1, result_len); } RTLIL::Const RTLIL::const_shr(const RTLIL::Const &arg1, const RTLIL::Const &arg2, bool signed1, bool, int result_len) { RTLIL::Const arg1_ext = arg1; - extend(arg1_ext, result_len, signed1); + extend_u0(arg1_ext, result_len, signed1); return const_shift(arg1_ext, arg2, false, +1, result_len); } diff --git a/kernel/satgen.h b/kernel/satgen.h index d9bcb4250..3ae9502f8 100644 --- a/kernel/satgen.h +++ b/kernel/satgen.h @@ -634,7 +634,7 @@ struct SatGen while (undef_y.size() < undef_a.size()) undef_y.push_back(ez->literal()); while (undef_y.size() > undef_a.size()) - undef_a.push_back(undef_a.back()); + undef_a.push_back(cell->parameters["\\A_SIGNED"].as_bool() ? undef_a.back() : ez->FALSE); tmp = undef_a; for (size_t i = 0; i < b.size(); i++)