summaryrefslogtreecommitdiff
path: root/src/binaryen-c.cpp
diff options
context:
space:
mode:
authorNidin Vinayakan <nidinthb@gmail.com>2018-10-12 01:10:29 +0200
committerAlon Zakai <alonzakai@gmail.com>2018-10-11 16:10:29 -0700
commit230b9cd7f96eb3d7e35f07d4bb6f029264e6543c (patch)
treeeab77ec0c100ffb46aa8f07ce4c17b301499f530 /src/binaryen-c.cpp
parent91ecfd0ac94791612af40a7acee5640d185a84a9 (diff)
downloadbinaryen-230b9cd7f96eb3d7e35f07d4bb6f029264e6543c.tar.gz
binaryen-230b9cd7f96eb3d7e35f07d4bb6f029264e6543c.tar.bz2
binaryen-230b9cd7f96eb3d7e35f07d4bb6f029264e6543c.zip
Shared memory support for add memory import and set memory functions. (#1686)
Diffstat (limited to 'src/binaryen-c.cpp')
-rw-r--r--src/binaryen-c.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index fbf223535..8e9ea8589 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -1681,15 +1681,16 @@ void BinaryenAddTableImport(BinaryenModuleRef module, const char* internalName,
wasm->table.module = externalModuleName;
wasm->table.base = externalBaseName;
}
-void BinaryenAddMemoryImport(BinaryenModuleRef module, const char* internalName, const char* externalModuleName, const char* externalBaseName) {
+void BinaryenAddMemoryImport(BinaryenModuleRef module, const char* internalName, const char* externalModuleName, const char* externalBaseName, uint8_t shared) {
auto* wasm = (Module*)module;
if (tracing) {
- std::cout << " BinaryenAddMemoryImport(the_module, \"" << internalName << "\", \"" << externalModuleName << "\", \"" << externalBaseName << "\");\n";
+ std::cout << " BinaryenAddMemoryImport(the_module, \"" << internalName << "\", \"" << externalModuleName << "\", \"" << externalBaseName << "\", " << int(shared) << ");\n";
}
wasm->memory.module = externalModuleName;
wasm->memory.base = externalBaseName;
+ wasm->memory.shared = shared;
}
void BinaryenAddGlobalImport(BinaryenModuleRef module, const char* internalName, const char* externalModuleName, const char* externalBaseName, BinaryenType globalType) {
auto* wasm = (Module*)module;
@@ -1812,7 +1813,7 @@ void BinaryenSetFunctionTable(BinaryenModuleRef module, BinaryenIndex initial, B
// Memory. One per module
-void BinaryenSetMemory(BinaryenModuleRef module, BinaryenIndex initial, BinaryenIndex maximum, const char* exportName, const char** segments, BinaryenExpressionRef* segmentOffsets, BinaryenIndex* segmentSizes, BinaryenIndex numSegments) {
+void BinaryenSetMemory(BinaryenModuleRef module, BinaryenIndex initial, BinaryenIndex maximum, const char* exportName, const char** segments, BinaryenExpressionRef* segmentOffsets, BinaryenIndex* segmentSizes, BinaryenIndex numSegments, uint8_t shared) {
if (tracing) {
std::cout << " {\n";
for (BinaryenIndex i = 0; i < numSegments; i++) {
@@ -1846,7 +1847,7 @@ void BinaryenSetMemory(BinaryenModuleRef module, BinaryenIndex initial, Binaryen
std::cout << " };\n";
std::cout << " BinaryenSetMemory(the_module, " << initial << ", " << maximum << ", ";
traceNameOrNULL(exportName);
- std::cout << ", segments, segmentOffsets, segmentSizes, " << numSegments << ");\n";
+ std::cout << ", segments, segmentOffsets, segmentSizes, " << numSegments << ", " << int(shared) << ");\n";
std::cout << " }\n";
}
@@ -1854,6 +1855,7 @@ void BinaryenSetMemory(BinaryenModuleRef module, BinaryenIndex initial, Binaryen
wasm->memory.initial = initial;
wasm->memory.max = maximum;
wasm->memory.exists = true;
+ wasm->memory.shared = shared;
if (exportName) {
auto memoryExport = make_unique<Export>();
memoryExport->name = exportName;