diff options
author | Clifford Wolf <clifford@clifford.at> | 2013-11-02 21:13:01 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2013-11-02 21:13:01 +0100 |
commit | ada80545faf6a0c0d871909f9e50e0f426b46ed8 (patch) | |
tree | 758f79c33cb0cfa3bfbc1212555fb9ba39d65853 /frontends | |
parent | f912e029de64b17316c2d285bf728151e6bd6de3 (diff) | |
download | yosys-ada80545faf6a0c0d871909f9e50e0f426b46ed8.tar.gz yosys-ada80545faf6a0c0d871909f9e50e0f426b46ed8.tar.bz2 yosys-ada80545faf6a0c0d871909f9e50e0f426b46ed8.zip |
Behavior should be identical now to rev. 0b4a64ac6adbd6 (next: testing before constfold fixes)
Diffstat (limited to 'frontends')
-rw-r--r-- | frontends/ast/genrtlil.cc | 2 | ||||
-rw-r--r-- | frontends/ast/simplify.cc | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/frontends/ast/genrtlil.cc b/frontends/ast/genrtlil.cc index a4e01899c..ff4841ec4 100644 --- a/frontends/ast/genrtlil.cc +++ b/frontends/ast/genrtlil.cc @@ -570,6 +570,8 @@ void AstNode::detectSignWidthWorker(int &width_hint, bool &sign_hint) this_width = range->range_left - range->range_right + 1; } else width_hint = std::max(width_hint, this_width); + if (!id2ast->is_signed) + sign_hint = false; break; case AST_TO_SIGNED: diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc index 3acbb57d2..960f12075 100644 --- a/frontends/ast/simplify.cc +++ b/frontends/ast/simplify.cc @@ -920,8 +920,10 @@ skip_dynamic_range_lvalue_expansion:; if (0) { case AST_POS: const_func = RTLIL::const_pos; } if (0) { case AST_NEG: const_func = RTLIL::const_neg; } if (children[0]->type == AST_CONSTANT) { - RTLIL::Const y = const_func(children[0]->bitsAsConst(width_hint), dummy_arg, sign_hint, false, width_hint); - newNode = mkconst_bits(y.bits, sign_hint); + RTLIL::Const y = const_func(RTLIL::Const(children[0]->bits), dummy_arg, children[0]->is_signed, false, -1); + newNode = mkconst_bits(y.bits, children[0]->is_signed); + // RTLIL::Const y = const_func(children[0]->bitsAsConst(width_hint), dummy_arg, sign_hint, false, width_hint); + // newNode = mkconst_bits(y.bits, sign_hint); } break; case AST_TERNARY: |