mirror of https://github.com/YosysHQ/yosys.git
Added Verilog $rtoi and $itor support
This commit is contained in:
parent
81bb952e5d
commit
dfb461fe52
|
@ -1864,7 +1864,8 @@ skip_dynamic_range_lvalue_expansion:;
|
|||
if (str == "\\$ln" || str == "\\$log10" || str == "\\$exp" || str == "\\$sqrt" || str == "\\$pow" ||
|
||||
str == "\\$floor" || str == "\\$ceil" || str == "\\$sin" || str == "\\$cos" || str == "\\$tan" ||
|
||||
str == "\\$asin" || str == "\\$acos" || str == "\\$atan" || str == "\\$atan2" || str == "\\$hypot" ||
|
||||
str == "\\$sinh" || str == "\\$cosh" || str == "\\$tanh" || str == "\\$asinh" || str == "\\$acosh" || str == "\\$atanh")
|
||||
str == "\\$sinh" || str == "\\$cosh" || str == "\\$tanh" || str == "\\$asinh" || str == "\\$acosh" || str == "\\$atanh" ||
|
||||
str == "\\$rtoi" || str == "\\$itor")
|
||||
{
|
||||
bool func_with_two_arguments = str == "\\$pow" || str == "\\$atan2" || str == "\\$hypot";
|
||||
double x = 0, y = 0;
|
||||
|
@ -1901,6 +1902,9 @@ skip_dynamic_range_lvalue_expansion:;
|
|||
y = children[1]->asReal(child_sign_hint);
|
||||
}
|
||||
|
||||
if (str == "\\$rtoi") {
|
||||
newNode = AstNode::mkconst_int(x, true);
|
||||
} else {
|
||||
newNode = new AstNode(AST_REALVALUE);
|
||||
if (str == "\\$ln") newNode->realvalue = ::log(x);
|
||||
else if (str == "\\$log10") newNode->realvalue = ::log10(x);
|
||||
|
@ -1923,7 +1927,9 @@ skip_dynamic_range_lvalue_expansion:;
|
|||
else if (str == "\\$asinh") newNode->realvalue = ::asinh(x);
|
||||
else if (str == "\\$acosh") newNode->realvalue = ::acosh(x);
|
||||
else if (str == "\\$atanh") newNode->realvalue = ::atanh(x);
|
||||
else if (str == "\\$itor") newNode->realvalue = x;
|
||||
else log_abort();
|
||||
}
|
||||
goto apply_newNode;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue