diff options
author | Clifford Wolf <clifford@clifford.at> | 2019-02-13 12:36:47 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2019-02-13 12:36:47 +0100 |
commit | 807b3c769733b8cf07f5b14674df41bd2788e09d (patch) | |
tree | 9348faf4d3db5cbc4e02927084f838af312586d6 /frontends | |
parent | 1f2548a564812d55b8263020d5fe9e92368f818e (diff) | |
download | yosys-807b3c769733b8cf07f5b14674df41bd2788e09d.tar.gz yosys-807b3c769733b8cf07f5b14674df41bd2788e09d.tar.bz2 yosys-807b3c769733b8cf07f5b14674df41bd2788e09d.zip |
Fix sign handling of real constants
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'frontends')
-rw-r--r-- | frontends/ast/genrtlil.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/frontends/ast/genrtlil.cc b/frontends/ast/genrtlil.cc index 9531dd356..e66625228 100644 --- a/frontends/ast/genrtlil.cc +++ b/frontends/ast/genrtlil.cc @@ -942,16 +942,15 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint, bool sign_hint) // simply return the corresponding RTLIL::SigSpec for an AST_CONSTANT node case AST_CONSTANT: + case AST_REALVALUE: { if (width_hint < 0) detectSignWidth(width_hint, sign_hint); - is_signed = sign_hint; - return RTLIL::SigSpec(bitsAsConst()); - } - case AST_REALVALUE: - { + if (type == AST_CONSTANT) + return RTLIL::SigSpec(bitsAsConst()); + RTLIL::SigSpec sig = realAsConst(width_hint); log_file_warning(filename, linenum, "converting real value %e to binary %s.\n", realvalue, log_signal(sig)); return sig; |