summaryrefslogtreecommitdiff
path: root/frontends/ast
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-08-22 16:09:13 +0200
committerClifford Wolf <clifford@clifford.at>2014-08-22 16:20:22 +0200
commit98442e019d745f1d61983c071decfa3ebc1ff0cf (patch)
treecb7776cfb0916f529042b4ffd2249404a3aaefdb /frontends/ast
parentba83a7bdc641c68344b41f407323c76b8c62c674 (diff)
Added emscripten (emcc) support to build system and some build fixes
Diffstat (limited to 'frontends/ast')
-rw-r--r--frontends/ast/ast.cc4
-rw-r--r--frontends/ast/dpicall.cc14
2 files changed, 17 insertions, 1 deletions
diff --git a/frontends/ast/ast.cc b/frontends/ast/ast.cc
index 2fc8f983..1e43875a 100644
--- a/frontends/ast/ast.cc
+++ b/frontends/ast/ast.cc
@@ -844,7 +844,11 @@ RTLIL::Const AstNode::realAsConst(int width)
{
double v = round(realvalue);
RTLIL::Const result;
+#ifdef EMSCRIPTEN
+ if (!isfinite(v)) {
+#else
if (!std::isfinite(v)) {
+#endif
result.bits = std::vector<RTLIL::State>(width, RTLIL::State::Sx);
} else {
bool is_negative = v < 0;
diff --git a/frontends/ast/dpicall.cc b/frontends/ast/dpicall.cc
index b79bd59e..2eb104fa 100644
--- a/frontends/ast/dpicall.cc
+++ b/frontends/ast/dpicall.cc
@@ -17,9 +17,12 @@
*
*/
+#include "ast.h"
+
+#ifdef YOSYS_ENABLE_PLUGINS
+
#include <dlfcn.h>
#include <ffi.h>
-#include "ast.h"
typedef void (*ffi_fptr) ();
@@ -126,3 +129,12 @@ AST::AstNode *AST::dpi_call(const std::string &rtype, const std::string &fname,
return newNode;
}
+#else /* YOSYS_ENABLE_PLUGINS */
+
+AST::AstNode *AST::dpi_call(const std::string&, const std::string &fname, const std::vector<std::string>&, const std::vector<AstNode*>&)
+{
+ log_error("Can't call DPI function `%s': this version of yosys is built without plugin support\n", fname.c_str());
+}
+
+#endif /* YOSYS_ENABLE_PLUGINS */
+