3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-07-31 00:13:18 +00:00

More fixes for bugs found using xsthammer

This commit is contained in:
Clifford Wolf 2013-06-13 11:18:45 +02:00
parent b1d39aa865
commit 0c6ffc4c65
5 changed files with 24 additions and 16 deletions

View file

@ -752,7 +752,7 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint)
RTLIL::SigSpec arg = children[0]->genRTLIL(width_hint);
is_signed = type == AST_NEG || (type == AST_POS && children[0]->is_signed);
int width = type == AST_NEG && arg.width < width_hint ? arg.width+1 : arg.width;
if (width > width_hint && width_hint > 0)
if (width_hint > 0)
width = width_hint;
return uniop2rtlil(this, type_name, width, arg);
}
@ -766,9 +766,7 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint)
RTLIL::SigSpec left = children[0]->genRTLIL(width_hint);
RTLIL::SigSpec right = children[1]->genRTLIL(width_hint);
int width = std::max(left.width, right.width);
if (width > width_hint && width_hint > 0)
width = width_hint;
if (width < width_hint)
if (width_hint > 0)
width = width_hint;
return binop2rtlil(this, type_name, width, left, right);
}