summaryrefslogtreecommitdiff
path: root/frontends/ast
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-11-07 11:25:19 +0100
committerClifford Wolf <clifford@clifford.at>2013-11-07 11:25:19 +0100
commit536621a98ba6fd41bf170f5ad469df17f73ed2c8 (patch)
tree06a3bf184d8fe99f55252ae801ca39d1231bc2cd /frontends/ast
parentf050c405190c50d2c1aed22644a9a207445e6592 (diff)
Fixed at_zero evaluation of dynamic ranges
Diffstat (limited to 'frontends/ast')
-rw-r--r--frontends/ast/simplify.cc9
1 files changed, 2 insertions, 7 deletions
diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc
index d3496048..1bdd6862 100644
--- a/frontends/ast/simplify.cc
+++ b/frontends/ast/simplify.cc
@@ -965,13 +965,8 @@ skip_dynamic_range_lvalue_expansion:;
if (children.size() == 0)
newNode = current_scope[str]->children[0]->clone();
}
- else if (at_zero && current_module->wires.count(str) > 0) {
- assert(current_scope.count(str) > 0 && (current_scope[str]->type == AST_WIRE || current_scope[str]->type == AST_AUTOWIRE));
- if (children.size() != 0 && children[0]->type == AST_RANGE && children[0]->range_valid)
- newNode = mkconst_int(0, false, children[0]->range_left - children[0]->range_right + 1);
- else
- if (children.size() == 0)
- newNode = mkconst_int(0, current_scope[str]->is_signed, current_module->wires[str]->width);
+ else if (at_zero && current_scope.count(str) > 0 && (current_scope[str]->type == AST_WIRE || current_scope[str]->type == AST_AUTOWIRE)) {
+ newNode = mkconst_int(0, sign_hint, width_hint);
}
break;
case AST_BIT_NOT: