summaryrefslogtreecommitdiff
path: root/src/binaryen-c.cpp
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2019-03-20 15:52:19 -0700
committerAlon Zakai <azakai@google.com>2019-03-20 15:52:19 -0700
commit1690311955c5add86d634ecc47e937315b3b6c41 (patch)
tree429a0df2e87d41f46ed2408c90657b221294e22f /src/binaryen-c.cpp
parentfec88b85e44b49ac3273b0b7d4e06fba060df36f (diff)
parentfe0b16aa222318588f3bfd84e549b4a1528be296 (diff)
downloadbinaryen-1690311955c5add86d634ecc47e937315b3b6c41.tar.gz
binaryen-1690311955c5add86d634ecc47e937315b3b6c41.tar.bz2
binaryen-1690311955c5add86d634ecc47e937315b3b6c41.zip
Merge remote-tracking branch 'origin/master' into nans
Diffstat (limited to 'src/binaryen-c.cpp')
-rw-r--r--src/binaryen-c.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index c554b0a23..71cd92da4 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -1616,6 +1616,15 @@ double BinaryenConstGetValueF64(BinaryenExpressionRef expr) {
assert(expression->is<Const>());
return static_cast<Const*>(expression)->value.getf64();
}
+void BinaryenConstGetValueV128(BinaryenExpressionRef expr, uint8_t* out) {
+ if (tracing) {
+ std::cout << " BinaryenConstGetValueV128(expressions[" << expressions[expr] << "], " << out << ");\n";
+ }
+
+ auto* expression = (Expression*)expr;
+ assert(expression->is<Const>());
+ memcpy(out, static_cast<Const*>(expression)->value.getv128().data(), 16);
+}
// Unary
BinaryenOp BinaryenUnaryGetOp(BinaryenExpressionRef expr) {
if (tracing) {
@@ -1945,7 +1954,7 @@ BinaryenExpressionRef BinaryenSIMDShuffleGetRight(BinaryenExpressionRef expr) {
}
void BinaryenSIMDShuffleGetMask(BinaryenExpressionRef expr, uint8_t *mask) {
if (tracing) {
- std::cout << " BinaryenSIMDShuffleGetMask(expressions[" << expressions[expr] << "]);\n";
+ std::cout << " BinaryenSIMDShuffleGetMask(expressions[" << expressions[expr] << "], " << mask << ");\n";
}
auto* expression = (Expression*)expr;
@@ -3067,6 +3076,12 @@ size_t BinaryenSizeofLiteral(void) {
return sizeof(Literal);
}
+// Returns the size of an allocate and write result object.
+EMSCRIPTEN_KEEPALIVE
+size_t BinaryenSizeofAllocateAndWriteResult(void) {
+ return sizeof(BinaryenModuleAllocateAndWriteResult);
+}
+
#endif
} // extern "C"