summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcheck.py2
-rw-r--r--src/binaryen-c.cpp8
-rw-r--r--src/binaryen-c.h2
-rw-r--r--src/passes/Print.cpp11
-rw-r--r--src/shared-constants.h1
-rw-r--r--src/shell-interface.h5
-rw-r--r--src/wasm-binary.h20
-rw-r--r--src/wasm-interpreter.h6
-rw-r--r--src/wasm-js.cpp2
-rw-r--r--src/wasm-linker.cpp2
-rw-r--r--src/wasm-linker.h4
-rw-r--r--src/wasm-s-parser.h32
-rw-r--r--src/wasm-validator.h6
-rw-r--r--src/wasm.cpp1
-rw-r--r--src/wasm.h6
-rw-r--r--test/dot_s/alias.wast5
-rw-r--r--test/dot_s/asm_const.wast5
-rw-r--r--test/dot_s/basics.wast9
-rw-r--r--test/dot_s/bcp-1.wast17
-rw-r--r--test/dot_s/data-offset-folding.wast7
-rw-r--r--test/dot_s/function-data-sections.wast9
-rw-r--r--test/dot_s/indidx.wast5
-rw-r--r--test/dot_s/lcomm-in-text-segment.wast5
-rw-r--r--test/dot_s/macClangMetaData.wast5
-rw-r--r--test/dot_s/memops.wast5
-rw-r--r--test/dot_s/permute.wast5
-rw-r--r--test/dot_s/relocation.wast7
-rw-r--r--test/dot_s/symbolic-offset.wast5
-rw-r--r--test/example/c-api-kitchen-sink.c2
-rw-r--r--test/example/c-api-kitchen-sink.txt17
-rw-r--r--test/example/c-api-kitchen-sink.txt.txt5
-rw-r--r--test/kitchen_sink.wast5
-rw-r--r--test/kitchen_sink.wast.fromBinary5
-rw-r--r--test/llvm_autogenerated/byval.wast5
-rw-r--r--test/llvm_autogenerated/call.wast5
-rw-r--r--test/llvm_autogenerated/cfg-stackify.wast5
-rw-r--r--test/llvm_autogenerated/comparisons_f32.wast5
-rw-r--r--test/llvm_autogenerated/comparisons_f64.wast5
-rw-r--r--test/llvm_autogenerated/comparisons_i32.wast5
-rw-r--r--test/llvm_autogenerated/comparisons_i64.wast5
-rw-r--r--test/llvm_autogenerated/conv.wast5
-rw-r--r--test/llvm_autogenerated/copysign-casts.wast5
-rw-r--r--test/llvm_autogenerated/cpus.wast5
-rw-r--r--test/llvm_autogenerated/dead-vreg.wast5
-rw-r--r--test/llvm_autogenerated/divrem-constant.wast5
-rw-r--r--test/llvm_autogenerated/f32.wast5
-rw-r--r--test/llvm_autogenerated/f64.wast5
-rw-r--r--test/llvm_autogenerated/fast-isel.wast5
-rw-r--r--test/llvm_autogenerated/frem.wast5
-rw-r--r--test/llvm_autogenerated/func.wast5
-rw-r--r--test/llvm_autogenerated/global.wast29
-rw-r--r--test/llvm_autogenerated/globl.wast5
-rw-r--r--test/llvm_autogenerated/i128.wast5
-rw-r--r--test/llvm_autogenerated/i32-load-store-alignment.wast5
-rw-r--r--test/llvm_autogenerated/i32.wast5
-rw-r--r--test/llvm_autogenerated/i64-load-store-alignment.wast5
-rw-r--r--test/llvm_autogenerated/i64.wast5
-rw-r--r--test/llvm_autogenerated/ident.wast5
-rw-r--r--test/llvm_autogenerated/immediates.wast5
-rw-r--r--test/llvm_autogenerated/irreducible-cfg.wast5
-rw-r--r--test/llvm_autogenerated/legalize.wast5
-rw-r--r--test/llvm_autogenerated/load-ext.wast5
-rw-r--r--test/llvm_autogenerated/load-store-i1.wast5
-rw-r--r--test/llvm_autogenerated/load.wast5
-rw-r--r--test/llvm_autogenerated/mem-intrinsics.wast5
-rw-r--r--test/llvm_autogenerated/memory-addr32.wast5
-rw-r--r--test/llvm_autogenerated/non-executable-stack.wast5
-rw-r--r--test/llvm_autogenerated/offset.wast7
-rw-r--r--test/llvm_autogenerated/phi.wast5
-rw-r--r--test/llvm_autogenerated/reg-stackify.wast7
-rw-r--r--test/llvm_autogenerated/return-int32.wast5
-rw-r--r--test/llvm_autogenerated/return-void.wast5
-rw-r--r--test/llvm_autogenerated/select.wast5
-rw-r--r--test/llvm_autogenerated/signext-zeroext.wast5
-rw-r--r--test/llvm_autogenerated/store-results.wast5
-rw-r--r--test/llvm_autogenerated/store-trunc.wast5
-rw-r--r--test/llvm_autogenerated/store.wast5
-rw-r--r--test/llvm_autogenerated/switch.wast5
-rw-r--r--test/llvm_autogenerated/unreachable.wast5
-rw-r--r--test/llvm_autogenerated/unused-argument.wast5
-rw-r--r--test/llvm_autogenerated/userstack.wast5
-rw-r--r--test/llvm_autogenerated/varargs.wast5
-rw-r--r--test/unit.wast5
-rw-r--r--test/unit.wast.fromBinary5
84 files changed, 236 insertions, 278 deletions
diff --git a/check.py b/check.py
index d3f0ea4c6..d3ccf02fb 100755
--- a/check.py
+++ b/check.py
@@ -362,7 +362,7 @@ for t in tests:
print '\n[ checking wasm-shell spec testcases... ]\n'
if len(requested) == 0:
- BLACKLIST = []
+ BLACKLIST = ['memory.wast'] # FIXME we support old and new memory formats, for now, until 0xc, and so can't pass this old-style test
spec_tests = [os.path.join('spec', t) for t in sorted(os.listdir(os.path.join('test', 'spec'))) if t not in BLACKLIST]
else:
spec_tests = requested[:]
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index b7fc4347a..b0e241ab3 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -736,7 +736,7 @@ void BinaryenSetFunctionTable(BinaryenModuleRef module, BinaryenFunctionRef* fun
// Memory. One per module
-void BinaryenSetMemory(BinaryenModuleRef module, BinaryenIndex initial, BinaryenIndex maximum, const char* exportName, const char **segments, BinaryenIndex* 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) {
if (tracing) {
std::cout << " {\n";
for (BinaryenIndex i = 0; i < numSegments; i++) {
@@ -754,10 +754,10 @@ void BinaryenSetMemory(BinaryenModuleRef module, BinaryenIndex initial, Binaryen
}
if (numSegments == 0) std::cout << "0"; // ensure the array is not empty, otherwise a compiler error on VS
std::cout << " };\n";
- std::cout << " BinaryenIndex segmentOffsets[] = { ";
+ std::cout << " BinaryenExpressionRef segmentOffsets[] = { ";
for (BinaryenIndex i = 0; i < numSegments; i++) {
if (i > 0) std::cout << ", ";
- std::cout << segmentOffsets[i];
+ std::cout << "expressions[" << expressions[segmentOffsets[i]] << "]";
}
if (numSegments == 0) std::cout << "0"; // ensure the array is not empty, otherwise a compiler error on VS
std::cout << " };\n";
@@ -779,7 +779,7 @@ void BinaryenSetMemory(BinaryenModuleRef module, BinaryenIndex initial, Binaryen
wasm->memory.max = maximum;
if (exportName) wasm->memory.exportName = exportName;
for (BinaryenIndex i = 0; i < numSegments; i++) {
- wasm->memory.segments.emplace_back(segmentOffsets[i], segments[i], segmentSizes[i]);
+ wasm->memory.segments.emplace_back((Expression*)segmentOffsets[i], segments[i], segmentSizes[i]);
}
}
diff --git a/src/binaryen-c.h b/src/binaryen-c.h
index b32fa566a..e2086072b 100644
--- a/src/binaryen-c.h
+++ b/src/binaryen-c.h
@@ -346,7 +346,7 @@ void BinaryenSetFunctionTable(BinaryenModuleRef module, BinaryenFunctionRef* fun
// Each segment has data in segments, a start offset in segmentOffsets, and a size in segmentSizes.
// exportName can be NULL
-void BinaryenSetMemory(BinaryenModuleRef module, BinaryenIndex initial, BinaryenIndex maximum, const char* exportName, const char **segments, BinaryenIndex* 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);
// Start function. One per module
diff --git a/src/passes/Print.cpp b/src/passes/Print.cpp
index 47e503fa4..eb97eead5 100644
--- a/src/passes/Print.cpp
+++ b/src/passes/Print.cpp
@@ -589,9 +589,12 @@ struct PrintSExpression : public Visitor<PrintSExpression> {
doIndent(o, indent);
printOpening(o, "memory") << ' ' << curr->memory.initial;
if (curr->memory.max && curr->memory.max != Memory::kMaxSize) o << ' ' << curr->memory.max;
+ o << ")\n";
for (auto segment : curr->memory.segments) {
- o << maybeNewLine;
- o << (minify ? "" : " ") << "(segment " << segment.offset << " \"";
+ doIndent(o, indent);
+ printOpening(o, "data ", true);
+ visit(segment.offset);
+ o << " \"";
for (size_t i = 0; i < segment.data.size(); i++) {
unsigned char c = segment.data[i];
switch (c) {
@@ -612,10 +615,8 @@ struct PrintSExpression : public Visitor<PrintSExpression> {
}
}
}
- o << "\")";
+ o << "\")\n";
}
- o << ((curr->memory.segments.size() > 0 && !minify) ? "\n " : "") << ')';
- o << maybeNewLine;
if (curr->memory.exportName.is()) {
doIndent(o, indent);
printOpening(o, "export ");
diff --git a/src/shared-constants.h b/src/shared-constants.h
index fb94ff11b..8599d8144 100644
--- a/src/shared-constants.h
+++ b/src/shared-constants.h
@@ -24,6 +24,7 @@ extern Name GROW_WASM_MEMORY,
PARAM,
RESULT,
MEMORY,
+ DATA,
SEGMENT,
EXPORT,
IMPORT,
diff --git a/src/shell-interface.h b/src/shell-interface.h
index f6c12e8ca..55f9b2a0b 100644
--- a/src/shell-interface.h
+++ b/src/shell-interface.h
@@ -92,9 +92,10 @@ struct ShellExternalInterface : ModuleInstance::ExternalInterface {
memory.resize(wasm.memory.initial * wasm::Memory::kPageSize);
// apply memory segments
for (auto& segment : wasm.memory.segments) {
- assert(segment.offset + segment.data.size() <= wasm.memory.initial * wasm::Memory::kPageSize);
+ Address offset = ConstantExpressionRunner().visit(segment.offset).value.geti32();
+ assert(offset + segment.data.size() <= wasm.memory.initial * wasm::Memory::kPageSize);
for (size_t i = 0; i != segment.data.size(); ++i) {
- memory.set(segment.offset + i, segment.data[i]);
+ memory.set(offset + i, segment.data[i]);
}
}
}
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index aad142d44..b67a79c3d 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -706,7 +706,8 @@ public:
o << U32LEB(num);
for (auto& segment : wasm->memory.segments) {
if (segment.data.size() == 0) continue;
- o << U32LEB(segment.offset);
+ writeExpression(segment.offset);
+ o << int8_t(BinaryConsts::End);
writeInlineBuffer(&segment.data[0], segment.data.size());
}
finishSection(start);
@@ -1572,6 +1573,15 @@ public:
}
}
+ Expression* readExpression() {
+ assert(depth == 0);
+ processExpressions();
+ assert(expressionStack.size() == 1);
+ auto* ret = popExpression();
+ assert(depth == 0);
+ return ret;
+ }
+
void readGlobals() {
if (debug) std::cerr << "== readGlobals" << std::endl;
size_t num = getU32LEB();
@@ -1580,11 +1590,7 @@ public:
if (debug) std::cerr << "read one" << std::endl;
auto curr = new Global;
curr->type = getWasmType();
- assert(depth == 0);
- processExpressions();
- assert(expressionStack.size() == 1);
- curr->init = popExpression();
- assert(depth == 0);
+ curr->init = readExpression();
wasm.addGlobal(curr);
}
}
@@ -1649,7 +1655,7 @@ public:
auto num = getU32LEB();
for (size_t i = 0; i < num; i++) {
Memory::Segment curr;
- auto offset = getU32LEB();
+ auto offset = readExpression();
auto size = getU32LEB();
std::vector<char> buffer;
buffer.resize(size);
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index fcf03c591..0be36a677 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -497,8 +497,8 @@ public:
}
};
-// Execute an expression in global init
-class GlobalInitRunner : public ExpressionRunner<GlobalInitRunner> {
+// Execute an constant expression in a global init or memory offset
+class ConstantExpressionRunner : public ExpressionRunner<ConstantExpressionRunner> {
public:
Flow visitLoop(Loop* curr) { WASM_UNREACHABLE(); }
Flow visitCall(Call* curr) { WASM_UNREACHABLE(); }
@@ -547,7 +547,7 @@ public:
ModuleInstance(Module& wasm, ExternalInterface* externalInterface) : wasm(wasm), externalInterface(externalInterface) {
memorySize = wasm.memory.initial;
for (Index i = 0; i < wasm.globals.size(); i++) {
- globals.push_back(GlobalInitRunner().visit(wasm.globals[i]->init).value);
+ globals.push_back(ConstantExpressionRunner().visit(wasm.globals[i]->init).value);
}
externalInterface->init(wasm);
if (wasm.start.is()) {
diff --git a/src/wasm-js.cpp b/src/wasm-js.cpp
index 33b0faa55..2aacd94d4 100644
--- a/src/wasm-js.cpp
+++ b/src/wasm-js.cpp
@@ -193,7 +193,7 @@ extern "C" void EMSCRIPTEN_KEEPALIVE instantiate() {
var source = Module['HEAP8'].subarray($1, $1 + $2);
var target = new Int8Array(Module['outside']['newBuffer']);
target.set(source, $0);
- }, (uint32_t)segment.offset, &segment.data[0], segment.data.size());
+ }, ConstantExpressionRunner().visit(segment.offset).value.geti32(), &segment.data[0], segment.data.size());
}
}
diff --git a/src/wasm-linker.cpp b/src/wasm-linker.cpp
index d8bae7558..1f06c6ec2 100644
--- a/src/wasm-linker.cpp
+++ b/src/wasm-linker.cpp
@@ -83,7 +83,7 @@ void Linker::layout() {
// Update the segments with their addresses now that they have been allocated.
for (const auto& seg : out.segments) {
Address address = staticAddresses[seg.first];
- out.wasm.memory.segments[seg.second].offset = address;
+ out.wasm.memory.segments[seg.second].offset = out.wasm.allocator.alloc<Const>()->set(Literal(uint32_t(address)));
segmentsByAddress[address] = seg.second;
}
diff --git a/src/wasm-linker.h b/src/wasm-linker.h
index 3f1e8c7ac..bf76a8f94 100644
--- a/src/wasm-linker.h
+++ b/src/wasm-linker.h
@@ -114,12 +114,12 @@ class LinkerObject {
// Add an initializer segment for the named static variable.
void addSegment(Name name, const char* data, Address size) {
segments[name] = wasm.memory.segments.size();
- wasm.memory.segments.emplace_back(0, data, size);
+ wasm.memory.segments.emplace_back(wasm.allocator.alloc<Const>()->set(Literal(uint32_t(0))), data, size);
}
void addSegment(Name name, std::vector<char>& data) {
segments[name] = wasm.memory.segments.size();
- wasm.memory.segments.emplace_back(0, data);
+ wasm.memory.segments.emplace_back(wasm.allocator.alloc<Const>()->set(Literal(uint32_t(0))), data);
}
void addInitializerFunction(Name name) {
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h
index 750d485fb..87217cd20 100644
--- a/src/wasm-s-parser.h
+++ b/src/wasm-s-parser.h
@@ -367,13 +367,14 @@ private:
if (id == START) return parseStart(curr);
if (id == FUNC) return parseFunction(curr);
if (id == MEMORY) return parseMemory(curr);
+ if (id == DATA) return parseData(curr);
if (id == EXPORT) return parseExport(curr);
if (id == IMPORT) return; // already done
if (id == GLOBAL) return parseGlobal(curr);
if (id == TABLE) return parseTable(curr);
if (id == TYPE) return; // already done
std::cerr << "bad module element " << id.str << '\n';
- throw ParseException("unknown module element");
+ throw ParseException("unknown module element", curr.line, curr.col);
}
// function parsing state
@@ -1321,19 +1322,40 @@ private:
}
while (i < s.size()) {
Element& curr = *s[i];
- assert(curr[0]->str() == SEGMENT);
- const char *input = curr[2]->c_str();
+ size_t j = 1;
+ Address offsetValue;
+ if (curr[0]->str() == DATA) {
+ offsetValue = 0;
+ } else {
+ offsetValue = atoi(curr[j++]->c_str());
+ }
+ const char *input = curr[j]->c_str();
+ auto* offset = allocator.alloc<Const>();
+ offset->type = i32;
+ offset->value = Literal(int32_t(offsetValue));
if (auto size = strlen(input)) {
std::vector<char> data;
stringToBinary(input, size, data);
- wasm.memory.segments.emplace_back(atoi(curr[1]->c_str()), data.data(), data.size());
+ wasm.memory.segments.emplace_back(offset, data.data(), data.size());
} else {
- wasm.memory.segments.emplace_back(atoi(curr[1]->c_str()), "", 0);
+ wasm.memory.segments.emplace_back(offset, "", 0);
}
i++;
}
}
+ void parseData(Element& s) {
+ auto* offset = parseExpression(s[1]);
+ const char *input = s[2]->c_str();
+ if (auto size = strlen(input)) {
+ std::vector<char> data;
+ stringToBinary(input, size, data);
+ wasm.memory.segments.emplace_back(offset, data.data(), data.size());
+ } else {
+ wasm.memory.segments.emplace_back(offset, "", 0);
+ }
+ }
+
void parseExport(Element& s) {
if (!s[2]->dollared() && !std::isdigit(s[2]->str()[0])) {
assert(s[2]->str() == MEMORY);
diff --git a/src/wasm-validator.h b/src/wasm-validator.h
index 90930d8f4..3d9a0e1c3 100644
--- a/src/wasm-validator.h
+++ b/src/wasm-validator.h
@@ -281,12 +281,6 @@ public:
void visitMemory(Memory *curr) {
shouldBeFalse(curr->initial > curr->max, "memory", "memory max >= initial");
shouldBeTrue(curr->max <= Memory::kMaxSize, "memory", "max memory must be <= 4GB");
- size_t top = 0;
- for (auto& segment : curr->segments) {
- shouldBeFalse(segment.offset < top, "memory", "segment offset is small enough");
- top = segment.offset + segment.data.size();
- }
- shouldBeFalse(top > curr->initial * Memory::kPageSize, "memory", "total segments must be small enough");
}
void visitModule(Module *curr) {
// exports
diff --git a/src/wasm.cpp b/src/wasm.cpp
index dbbd209b4..2138ec34d 100644
--- a/src/wasm.cpp
+++ b/src/wasm.cpp
@@ -49,6 +49,7 @@ Name GROW_WASM_MEMORY("__growWasmMemory"),
PARAM("param"),
RESULT("result"),
MEMORY("memory"),
+ DATA("data"),
SEGMENT("segment"),
EXPORT("export"),
IMPORT("import"),
diff --git a/src/wasm.h b/src/wasm.h
index 38a030e1a..c0129cf23 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -1441,14 +1441,14 @@ public:
static const Address::address_t kMaxSize = ~Address::address_t(0) / kPageSize;
static const Address::address_t kPageMask = ~(kPageSize - 1);
struct Segment {
- Address offset;
+ Expression* offset;
std::vector<char> data; // TODO: optimize
Segment() {}
- Segment(Address offset, const char *init, Address size) : offset(offset) {
+ Segment(Expression* offset, const char *init, Address size) : offset(offset) {
data.resize(size);
std::copy_n(init, size, data.begin());
}
- Segment(Address offset, std::vector<char>& init) : offset(offset) {
+ Segment(Expression* offset, std::vector<char>& init) : offset(offset) {
data.swap(init);
}
};
diff --git a/test/dot_s/alias.wast b/test/dot_s/alias.wast
index 5744f8e8a..bd114b9dc 100644
--- a/test/dot_s/alias.wast
+++ b/test/dot_s/alias.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 16 "\d2\04\00\00\00\00\00\00)\t\00\00")
- )
+ (memory 1)
+ (data (i32.const 16) "\d2\04\00\00\00\00\00\00)\t\00\00")
(export "memory" memory)
(type $FUNCSIG$v (func))
(export "__exit" $__exit)
diff --git a/test/dot_s/asm_const.wast b/test/dot_s/asm_const.wast
index ec9389029..564a565ef 100644
--- a/test/dot_s/asm_const.wast
+++ b/test/dot_s/asm_const.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 16 "{ Module.print(\"hello, world!\"); }\00")
- )
+ (memory 1)
+ (data (i32.const 16) "{ Module.print(\"hello, world!\"); }\00")
(export "memory" memory)
(type $FUNCSIG$vi (func (param i32)))
(import $emscripten_asm_const_vi "env" "emscripten_asm_const_vi" (param i32))
diff --git a/test/dot_s/basics.wast b/test/dot_s/basics.wast
index b93bcd5cc..7b13be3d8 100644
--- a/test/dot_s/basics.wast
+++ b/test/dot_s/basics.wast
@@ -1,9 +1,8 @@
(module
- (memory 1
- (segment 16 "hello, world!\n\00")
- (segment 32 "vcq")
- (segment 48 "\16\00\00\00")
- )
+ (memory 1)
+ (data (i32.const 16) "hello, world!\n\00")
+ (data (i32.const 32) "vcq")
+ (data (i32.const 48) "\16\00\00\00")
(export "memory" memory)
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$v (func))
diff --git a/test/dot_s/bcp-1.wast b/test/dot_s/bcp-1.wast
index fcbe3b81e..c090d90e5 100644
--- a/test/dot_s/bcp-1.wast
+++ b/test/dot_s/bcp-1.wast
@@ -1,13 +1,12 @@
(module
- (memory 1
- (segment 16 "\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00")
- (segment 40 "\07\00\00\00\08\00\00\00\t\00\00\00")
- (segment 52 "\n\00\00\00\0b\00\00\00")
- (segment 60 "\0c\00\00\00\0d\00\00\00\0e\00\00\00")
- (segment 72 "\0f\00\00\00\10\00\00\00\11\00\00\00")
- (segment 96 "hi\00")
- (segment 100 "\00\00\00\00")
- )
+ (memory 1)
+ (data (i32.const 16) "\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00")
+ (data (i32.const 40) "\07\00\00\00\08\00\00\00\t\00\00\00")
+ (data (i32.const 52) "\n\00\00\00\0b\00\00\00")
+ (data (i32.const 60) "\0c\00\00\00\0d\00\00\00\0e\00\00\00")
+ (data (i32.const 72) "\0f\00\00\00\10\00\00\00\11\00\00\00")
+ (data (i32.const 96) "hi\00")
+ (data (i32.const 100) "\00\00\00\00")
(export "memory" memory)
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
diff --git a/test/dot_s/data-offset-folding.wast b/test/dot_s/data-offset-folding.wast
index e737e04f1..9cdacd60b 100644
--- a/test/dot_s/data-offset-folding.wast
+++ b/test/dot_s/data-offset-folding.wast
@@ -1,8 +1,7 @@
(module
- (memory 1
- (segment 12 "\00\00\00\00")
- (segment 416 "`\00\00\00")
- )
+ (memory 1)
+ (data (i32.const 12) "\00\00\00\00")
+ (data (i32.const 416) "`\00\00\00")
(export "memory" memory)
)
;; METADATA: { "asmConsts": {},"staticBump": 420, "initializers": [] }
diff --git a/test/dot_s/function-data-sections.wast b/test/dot_s/function-data-sections.wast
index 82aa6f8c9..43947a3cc 100644
--- a/test/dot_s/function-data-sections.wast
+++ b/test/dot_s/function-data-sections.wast
@@ -1,9 +1,8 @@
(module
- (memory 1
- (segment 12 "\00\00\00\00")
- (segment 16 "\01\00\00\00")
- (segment 20 "33\13@")
- )
+ (memory 1)
+ (data (i32.const 12) "\00\00\00\00")
+ (data (i32.const 16) "\01\00\00\00")
+ (data (i32.const 20) "33\13@")
(export "memory" memory)
(export "foo" $foo)
(export "bar" $bar)
diff --git a/test/dot_s/indidx.wast b/test/dot_s/indidx.wast
index 2a5224d00..5fb481197 100644
--- a/test/dot_s/indidx.wast
+++ b/test/dot_s/indidx.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 16 "\04\00\00\00\02\00\00\00\01\00\00\00\03\00\00\00")
- )
+ (memory 1)
+ (data (i32.const 16) "\04\00\00\00\02\00\00\00\01\00\00\00\03\00\00\00")
(export "memory" memory)
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$v (func))
diff --git a/test/dot_s/lcomm-in-text-segment.wast b/test/dot_s/lcomm-in-text-segment.wast
index 27ebc9b87..e154c6c78 100644
--- a/test/dot_s/lcomm-in-text-segment.wast
+++ b/test/dot_s/lcomm-in-text-segment.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 20 "\10\00\00\00")
- )
+ (memory 1)
+ (data (i32.const 20) "\10\00\00\00")
(export "memory" memory)
)
;; METADATA: { "asmConsts": {},"staticBump": 24, "initializers": [] }
diff --git a/test/dot_s/macClangMetaData.wast b/test/dot_s/macClangMetaData.wast
index ed41e459c..2d1b5a68f 100644
--- a/test/dot_s/macClangMetaData.wast
+++ b/test/dot_s/macClangMetaData.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 16 "Hello, World!\00")
- )
+ (memory 1)
+ (data (i32.const 16) "Hello, World!\00")
(export "memory" memory)
(type $FUNCSIG$ii (func (param i32) (result i32)))
(import $puts "env" "puts" (param i32) (result i32))
diff --git a/test/dot_s/memops.wast b/test/dot_s/memops.wast
index 07d5caec3..12a13372e 100644
--- a/test/dot_s/memops.wast
+++ b/test/dot_s/memops.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 16 "{ Module.print(\"hello, world! \" + HEAP32[8>>2]); }\00")
- )
+ (memory 1)
+ (data (i32.const 16) "{ Module.print(\"hello, world! \" + HEAP32[8>>2]); }\00")
(export "memory" memory)
(type $FUNCSIG$vi (func (param i32)))
(import $emscripten_asm_const_vi "env" "emscripten_asm_const_vi" (param i32))
diff --git a/test/dot_s/permute.wast b/test/dot_s/permute.wast
index 13abcf66c..a58bc21c8 100644
--- a/test/dot_s/permute.wast
+++ b/test/dot_s/permute.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 16 "hE?\8ds\0e7\db[g\8f\955it\c4k\0b\e2\ef\bcld\e0\fd\8c\9e\86&~\d8\94\89+\c8\a4\c2\f2\fb\12\1cej\d99\b7\b3W\c6w\af\ae\caM>\92ub\96\84\b6\b0N\ec;q\11\f7\bf\e31\e6\a7\90\fc\03\e4\aa\d7\cc- \15\83DH\80r\fa\01X\eb:_\00A\cd\e9o`n\ac(\ad\ba0\dcyS#\f4$\"\82\7f}\8e\f6\93L\'\bb\bdZ\ed4\18\f3\c0\cf\ff\a3\f8\07\05\9c\d3\0f\a0\06m%\\\f9^B<\e7\b1\17\98]\0c\dd\c5\f5p\e5\fezJ\ab,F\a5@\08R\85!\b8\1a\ce\d5\04\nI\a6\d1\9f\8a\c9\a9|\97\9aG\be8Y\8b\c1\1b\d4\ea\b9\19\14\9b\9163\d0\1d\d2\df=C\1f\0dc\e1\c7QUv\02\b5aK\b4\tV\c3x\e8\a1\1e\81\de/{\da\d6Pf\10T\f0)\88\16\ee\a8\9d\f1\cbO*\b2\99\132\87.\a2")
- )
+ (memory 1)
+ (data (i32.const 16) "hE?\8ds\0e7\db[g\8f\955it\c4k\0b\e2\ef\bcld\e0\fd\8c\9e\86&~\d8\94\89+\c8\a4\c2\f2\fb\12\1cej\d99\b7\b3W\c6w\af\ae\caM>\92ub\96\84\b6\b0N\ec;q\11\f7\bf\e31\e6\a7\90\fc\03\e4\aa\d7\cc- \15\83DH\80r\fa\01X\eb:_\00A\cd\e9o`n\ac(\ad\ba0\dcyS#\f4$\"\82\7f}\8e\f6\93L\'\bb\bdZ\ed4\18\f3\c0\cf\ff\a3\f8\07\05\9c\d3\0f\a0\06m%\\\f9^B<\e7\b1\17\98]\0c\dd\c5\f5p\e5\fezJ\ab,F\a5@\08R\85!\b8\1a\ce\d5\04\nI\a6\d1\9f\8a\c9\a9|\97\9aG\be8Y\8b\c1\1b\d4\ea\b9\19\14\9b\9163\d0\1d\d2\df=C\1f\0dc\e1\c7QUv\02\b5aK\b4\tV\c3x\e8\a1\1e\81\de/{\da\d6Pf\10T\f0)\88\16\ee\a8\9d\f1\cbO*\b2\99\132\87.\a2")
(export "memory" memory)
)
;; METADATA: { "asmConsts": {},"staticBump": 272, "initializers": [] }
diff --git a/test/dot_s/relocation.wast b/test/dot_s/relocation.wast
index 35fcd1562..eb00bac89 100644
--- a/test/dot_s/relocation.wast
+++ b/test/dot_s/relocation.wast
@@ -1,8 +1,7 @@
(module
- (memory 1
- (segment 12 "\10\00\00\00")
- (segment 16 "\0c\00\00\00")
- )
+ (memory 1)
+ (data (i32.const 12) "\10\00\00\00")
+ (data (i32.const 16) "\0c\00\00\00")
(export "memory" memory)
(export "main" $main)
(func $main (result i32)
diff --git a/test/dot_s/symbolic-offset.wast b/test/dot_s/symbolic-offset.wast
index 15ec8f1be..51879232a 100644
--- a/test/dot_s/symbolic-offset.wast
+++ b/test/dot_s/symbolic-offset.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 12 "\01\00\00\00\00\00\00\00\00\00\00\00")
- )
+ (memory 1)
+ (data (i32.const 12) "\01\00\00\00\00\00\00\00\00\00\00\00")
(export "memory" memory)
(export "f" $f)
(func $f (param $0 i32) (param $1 i32)
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index 496ac4efd..0aaf5ab95 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -246,7 +246,7 @@ void test_core() {
// Memory. One per module
const char *segments[] = { "hello, world" };
- BinaryenIndex segmentOffsets[] = { 10 };
+ BinaryenExpressionRef segmentOffsets[] = { BinaryenConst(module, BinaryenLiteralInt32(10)) };
BinaryenIndex segmentSizes[] = { 12 };
BinaryenSetMemory(module, 1, 256, "mem", segments, segmentOffsets, segmentSizes, 1);
diff --git a/test/example/c-api-kitchen-sink.txt b/test/example/c-api-kitchen-sink.txt
index 64f5fc3b4..c8f123bdd 100644
--- a/test/example/c-api-kitchen-sink.txt
+++ b/test/example/c-api-kitchen-sink.txt
@@ -7,9 +7,8 @@ BinaryenFloat64: 4
(f32.const -33.61199951171875)
)
(module
- (memory 1 256
- (segment 10 "hello, world")
- )
+ (memory 1 256)
+ (data (i32.const 10) "hello, world")
(export "mem" memory)
(start $starter)
(type $iiIfF (func (param i32 i64 f32 f64) (result i32)))
@@ -1375,10 +1374,11 @@ int main() {
BinaryenFunctionRef funcs[] = { functions[0] };
BinaryenSetFunctionTable(the_module, funcs, 1);
}
+ expressions[245] = BinaryenConst(the_module, BinaryenLiteralInt32(10));
{
const char segment0[] = { 104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100 };
const char* segments[] = { segment0 };
- BinaryenIndex segmentOffsets[] = { 10 };
+ BinaryenExpressionRef segmentOffsets[] = { expressions[245] };
BinaryenIndex segmentSizes[] = { 12 };
BinaryenSetMemory(the_module, 1, 256, "mem", segments, segmentOffsets, segmentSizes, 1);
}
@@ -1386,10 +1386,10 @@ int main() {
BinaryenIndex paramTypes[] = { 0 };
functionTypes[2] = BinaryenAddFunctionType(the_module, "v", 0, paramTypes, 0);
}
- expressions[245] = BinaryenNop(the_module);
+ expressions[246] = BinaryenNop(the_module);
{
BinaryenType varTypes[] = { 0 };
- functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[2], varTypes, 0, expressions[245]);
+ functions[1] = BinaryenAddFunction(the_module, "starter", functionTypes[2], varTypes, 0, expressions[246]);
}
BinaryenSetStart(the_module, functions[1]);
{
@@ -1399,9 +1399,8 @@ int main() {
BinaryenModuleValidate(the_module);
BinaryenModulePrint(the_module);
(module
- (memory 1 256
- (segment 10 "hello, world")
- )
+ (memory 1 256)
+ (data (i32.const 10) "hello, world")
(export "mem" memory)
(start $starter)
(type $iiIfF (func (param i32 i64 f32 f64) (result i32)))
diff --git a/test/example/c-api-kitchen-sink.txt.txt b/test/example/c-api-kitchen-sink.txt.txt
index 96cbaaa00..24dcc8a5c 100644
--- a/test/example/c-api-kitchen-sink.txt.txt
+++ b/test/example/c-api-kitchen-sink.txt.txt
@@ -2,9 +2,8 @@
(f32.const -33.61199951171875)
)
(module
- (memory 1 256
- (segment 10 "hello, world")
- )
+ (memory 1 256)
+ (data (i32.const 10) "hello, world")
(export "mem" memory)
(start $starter)
(type $iiIfF (func (param i32 i64 f32 f64) (result i32)))
diff --git a/test/kitchen_sink.wast b/test/kitchen_sink.wast
index e0cc6617a..2b139a95b 100644
--- a/test/kitchen_sink.wast
+++ b/test/kitchen_sink.wast
@@ -1,7 +1,6 @@
(module
- (memory 4096 4096
- (segment 1026 "\14\00")
- )
+ (memory 4096 4096)
+ (data (i32.const 1026) "\14\00")
(type $0 (func (result i32)))
(func $kitchensink (type $0) (result i32)
(block $block0
diff --git a/test/kitchen_sink.wast.fromBinary b/test/kitchen_sink.wast.fromBinary
index cd58fdf65..dd55b5bae 100644
--- a/test/kitchen_sink.wast.fromBinary
+++ b/test/kitchen_sink.wast.fromBinary
@@ -1,7 +1,6 @@
(module
- (memory 4096 4096
- (segment 1026 "\14\00")
- )
+ (memory 4096 4096)
+ (data (i32.const 1026) "\14\00")
(type $0 (func (result i32)))
(func $kitchensink (type $0) (result i32)
(block $label$0
diff --git a/test/llvm_autogenerated/byval.wast b/test/llvm_autogenerated/byval.wast
index 9ebb4b446..c4dc678ea 100644
--- a/test/llvm_autogenerated/byval.wast
+++ b/test/llvm_autogenerated/byval.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
diff --git a/test/llvm_autogenerated/call.wast b/test/llvm_autogenerated/call.wast
index 812667aec..8dc92ff80 100644
--- a/test/llvm_autogenerated/call.wast
+++ b/test/llvm_autogenerated/call.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$v (func))
(type $FUNCSIG$i (func (result i32)))
diff --git a/test/llvm_autogenerated/cfg-stackify.wast b/test/llvm_autogenerated/cfg-stackify.wast
index ac20e3398..2dbdd5e93 100644
--- a/test/llvm_autogenerated/cfg-stackify.wast
+++ b/test/llvm_autogenerated/cfg-stackify.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$v (func))
diff --git a/test/llvm_autogenerated/comparisons_f32.wast b/test/llvm_autogenerated/comparisons_f32.wast
index 2ab127beb..9d9898846 100644
--- a/test/llvm_autogenerated/comparisons_f32.wast
+++ b/test/llvm_autogenerated/comparisons_f32.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "ord_f32" $ord_f32)
(export "uno_f32" $uno_f32)
diff --git a/test/llvm_autogenerated/comparisons_f64.wast b/test/llvm_autogenerated/comparisons_f64.wast
index 8d9ddf0c0..edd3cd9b7 100644
--- a/test/llvm_autogenerated/comparisons_f64.wast
+++ b/test/llvm_autogenerated/comparisons_f64.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "ord_f64" $ord_f64)
(export "uno_f64" $uno_f64)
diff --git a/test/llvm_autogenerated/comparisons_i32.wast b/test/llvm_autogenerated/comparisons_i32.wast
index 2e9a074ee..2657cabd1 100644
--- a/test/llvm_autogenerated/comparisons_i32.wast
+++ b/test/llvm_autogenerated/comparisons_i32.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "eq_i32" $eq_i32)
(export "ne_i32" $ne_i32)
diff --git a/test/llvm_autogenerated/comparisons_i64.wast b/test/llvm_autogenerated/comparisons_i64.wast
index 2bf520862..0ce7ab530 100644
--- a/test/llvm_autogenerated/comparisons_i64.wast
+++ b/test/llvm_autogenerated/comparisons_i64.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "eq_i64" $eq_i64)
(export "ne_i64" $ne_i64)
diff --git a/test/llvm_autogenerated/conv.wast b/test/llvm_autogenerated/conv.wast
index 273217a23..0ee43f493 100644
--- a/test/llvm_autogenerated/conv.wast
+++ b/test/llvm_autogenerated/conv.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "i32_wrap_i64" $i32_wrap_i64)
(export "i64_extend_s_i32" $i64_extend_s_i32)
diff --git a/test/llvm_autogenerated/copysign-casts.wast b/test/llvm_autogenerated/copysign-casts.wast
index 14da8c65d..853cce958 100644
--- a/test/llvm_autogenerated/copysign-casts.wast
+++ b/test/llvm_autogenerated/copysign-casts.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "fold_promote" $fold_promote)
(export "fold_demote" $fold_demote)
diff --git a/test/llvm_autogenerated/cpus.wast b/test/llvm_autogenerated/cpus.wast
index c874eab7c..ce2ace210 100644
--- a/test/llvm_autogenerated/cpus.wast
+++ b/test/llvm_autogenerated/cpus.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "f" $f)
(func $f (param $0 i32) (result i32)
diff --git a/test/llvm_autogenerated/dead-vreg.wast b/test/llvm_autogenerated/dead-vreg.wast
index efb17b49b..be6e82cfd 100644
--- a/test/llvm_autogenerated/dead-vreg.wast
+++ b/test/llvm_autogenerated/dead-vreg.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "foo" $foo)
(func $foo (param $0 i32) (param $1 i32) (param $2 i32)
diff --git a/test/llvm_autogenerated/divrem-constant.wast b/test/llvm_autogenerated/divrem-constant.wast
index c0f05f8b8..358ecdbf3 100644
--- a/test/llvm_autogenerated/divrem-constant.wast
+++ b/test/llvm_autogenerated/divrem-constant.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "test_udiv_2" $test_udiv_2)
(export "test_udiv_5" $test_udiv_5)
diff --git a/test/llvm_autogenerated/f32.wast b/test/llvm_autogenerated/f32.wast
index 03409d03b..466ce049a 100644
--- a/test/llvm_autogenerated/f32.wast
+++ b/test/llvm_autogenerated/f32.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$ffff (func (param f32 f32 f32) (result f32)))
(import $fmaf "env" "fmaf" (param f32 f32 f32) (result f32))
diff --git a/test/llvm_autogenerated/f64.wast b/test/llvm_autogenerated/f64.wast
index 860d183f5..0c74c17ea 100644
--- a/test/llvm_autogenerated/f64.wast
+++ b/test/llvm_autogenerated/f64.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$dddd (func (param f64 f64 f64) (result f64)))
(import $fma "env" "fma" (param f64 f64 f64) (result f64))
diff --git a/test/llvm_autogenerated/fast-isel.wast b/test/llvm_autogenerated/fast-isel.wast
index 02d8e97f1..50cdb5469 100644
--- a/test/llvm_autogenerated/fast-isel.wast
+++ b/test/llvm_autogenerated/fast-isel.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "immediate_f32" $immediate_f32)
(export "immediate_f64" $immediate_f64)
diff --git a/test/llvm_autogenerated/frem.wast b/test/llvm_autogenerated/frem.wast
index 15d5cc222..b7f784d2d 100644
--- a/test/llvm_autogenerated/frem.wast
+++ b/test/llvm_autogenerated/frem.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$ddd (func (param f64 f64) (result f64)))
(type $FUNCSIG$fff (func (param f32 f32) (result f32)))
diff --git a/test/llvm_autogenerated/func.wast b/test/llvm_autogenerated/func.wast
index 118fb252b..b4298e449 100644
--- a/test/llvm_autogenerated/func.wast
+++ b/test/llvm_autogenerated/func.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "f0" $f0)
(export "f1" $f1)
diff --git a/test/llvm_autogenerated/global.wast b/test/llvm_autogenerated/global.wast
index cbb8ac184..85c50ff03 100644
--- a/test/llvm_autogenerated/global.wast
+++ b/test/llvm_autogenerated/global.wast
@@ -1,19 +1,18 @@
(module
- (memory 1
- (segment 4 "\b0\08\00\00")
- (segment 12 "9\05\00\00")
- (segment 28 "\01\00\00\00")
- (segment 32 "*\00\00\00")
- (segment 36 "\ff\ff\ff\ff")
- (segment 64 "\00\00\00\00\01\00\00\00")
- (segment 72 "\ff\ff\ff\ff\ff\ff\ff\ff")
- (segment 92 "\00\00\00\80")
- (segment 96 "\00\00\00@")
- (segment 128 "\00\00\00\00\00\00\00\80")
- (segment 136 "\00\00\00\00\00\00\00@")
- (segment 656 "\e0\00\00\00")
- (segment 1192 "\a4\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\b0\08\00\00")
+ (data (i32.const 12) "9\05\00\00")
+ (data (i32.const 28) "\01\00\00\00")
+ (data (i32.const 32) "*\00\00\00")
+ (data (i32.const 36) "\ff\ff\ff\ff")
+ (data (i32.const 64) "\00\00\00\00\01\00\00\00")
+ (data (i32.const 72) "\ff\ff\ff\ff\ff\ff\ff\ff")
+ (data (i32.const 92) "\00\00\00\80")
+ (data (i32.const 96) "\00\00\00@")
+ (data (i32.const 128) "\00\00\00\00\00\00\00\80")
+ (data (i32.const 136) "\00\00\00\00\00\00\00@")
+ (data (i32.const 656) "\e0\00\00\00")
+ (data (i32.const 1192) "\a4\04\00\00")
(export "memory" memory)
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(import $memcpy "env" "memcpy" (param i32 i32 i32) (result i32))
diff --git a/test/llvm_autogenerated/globl.wast b/test/llvm_autogenerated/globl.wast
index e357a6337..cf493cb12 100644
--- a/test/llvm_autogenerated/globl.wast
+++ b/test/llvm_autogenerated/globl.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "foo" $foo)
(func $foo
diff --git a/test/llvm_autogenerated/i128.wast b/test/llvm_autogenerated/i128.wast
index 19b600792..830c1433c 100644
--- a/test/llvm_autogenerated/i128.wast
+++ b/test/llvm_autogenerated/i128.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$vijji (func (param i32 i64 i64 i32)))
(type $FUNCSIG$vijjjj (func (param i32 i64 i64 i64 i64)))
diff --git a/test/llvm_autogenerated/i32-load-store-alignment.wast b/test/llvm_autogenerated/i32-load-store-alignment.wast
index 230d3ffdc..e1ef2f5e8 100644
--- a/test/llvm_autogenerated/i32-load-store-alignment.wast
+++ b/test/llvm_autogenerated/i32-load-store-alignment.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "ldi32_a1" $ldi32_a1)
(export "ldi32_a2" $ldi32_a2)
diff --git a/test/llvm_autogenerated/i32.wast b/test/llvm_autogenerated/i32.wast
index 2f1bf90ca..72d5b14a8 100644
--- a/test/llvm_autogenerated/i32.wast
+++ b/test/llvm_autogenerated/i32.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "add32" $add32)
(export "sub32" $sub32)
diff --git a/test/llvm_autogenerated/i64-load-store-alignment.wast b/test/llvm_autogenerated/i64-load-store-alignment.wast
index f345f6dcc..33362acfc 100644
--- a/test/llvm_autogenerated/i64-load-store-alignment.wast
+++ b/test/llvm_autogenerated/i64-load-store-alignment.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "ldi64_a1" $ldi64_a1)
(export "ldi64_a2" $ldi64_a2)
diff --git a/test/llvm_autogenerated/i64.wast b/test/llvm_autogenerated/i64.wast
index bcbca2611..fa50edd5f 100644
--- a/test/llvm_autogenerated/i64.wast
+++ b/test/llvm_autogenerated/i64.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "add64" $add64)
(export "sub64" $sub64)
diff --git a/test/llvm_autogenerated/ident.wast b/test/llvm_autogenerated/ident.wast
index d54e39f47..20a88f29f 100644
--- a/test/llvm_autogenerated/ident.wast
+++ b/test/llvm_autogenerated/ident.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
)
;; METADATA: { "asmConsts": {},"staticBump": 1040, "initializers": [] }
diff --git a/test/llvm_autogenerated/immediates.wast b/test/llvm_autogenerated/immediates.wast
index 5e16ec488..89820cdf1 100644
--- a/test/llvm_autogenerated/immediates.wast
+++ b/test/llvm_autogenerated/immediates.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "zero_i32" $zero_i32)
(export "one_i32" $one_i32)
diff --git a/test/llvm_autogenerated/irreducible-cfg.wast b/test/llvm_autogenerated/irreducible-cfg.wast
index 6990faa76..3e7dbd28f 100644
--- a/test/llvm_autogenerated/irreducible-cfg.wast
+++ b/test/llvm_autogenerated/irreducible-cfg.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "test0" $test0)
(export "test1" $test1)
diff --git a/test/llvm_autogenerated/legalize.wast b/test/llvm_autogenerated/legalize.wast
index 8ceba3431..912efce02 100644
--- a/test/llvm_autogenerated/legalize.wast
+++ b/test/llvm_autogenerated/legalize.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$vijji (func (param i32 i64 i64 i32)))
(import $__ashlti3 "env" "__ashlti3" (param i32 i64 i64 i32))
diff --git a/test/llvm_autogenerated/load-ext.wast b/test/llvm_autogenerated/load-ext.wast
index 4b734e546..67c07444d 100644
--- a/test/llvm_autogenerated/load-ext.wast
+++ b/test/llvm_autogenerated/load-ext.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "sext_i8_i32" $sext_i8_i32)
(export "zext_i8_i32" $zext_i8_i32)
diff --git a/test/llvm_autogenerated/load-store-i1.wast b/test/llvm_autogenerated/load-store-i1.wast
index 994c70a51..3138a07bf 100644
--- a/test/llvm_autogenerated/load-store-i1.wast
+++ b/test/llvm_autogenerated/load-store-i1.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "load_u_i1_i32" $load_u_i1_i32)
(export "load_s_i1_i32" $load_s_i1_i32)
diff --git a/test/llvm_autogenerated/load.wast b/test/llvm_autogenerated/load.wast
index 361027640..22774cc57 100644
--- a/test/llvm_autogenerated/load.wast
+++ b/test/llvm_autogenerated/load.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "ldi32" $ldi32)
(export "ldi64" $ldi64)
diff --git a/test/llvm_autogenerated/mem-intrinsics.wast b/test/llvm_autogenerated/mem-intrinsics.wast
index 6f3416a14..62d586ad9 100644
--- a/test/llvm_autogenerated/mem-intrinsics.wast
+++ b/test/llvm_autogenerated/mem-intrinsics.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$v (func))
(type $FUNCSIG$i (func (result i32)))
diff --git a/test/llvm_autogenerated/memory-addr32.wast b/test/llvm_autogenerated/memory-addr32.wast
index e75c80eaf..d5e43423a 100644
--- a/test/llvm_autogenerated/memory-addr32.wast
+++ b/test/llvm_autogenerated/memory-addr32.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "current_memory" $current_memory)
(export "grow_memory" $grow_memory)
diff --git a/test/llvm_autogenerated/non-executable-stack.wast b/test/llvm_autogenerated/non-executable-stack.wast
index d54e39f47..20a88f29f 100644
--- a/test/llvm_autogenerated/non-executable-stack.wast
+++ b/test/llvm_autogenerated/non-executable-stack.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
)
;; METADATA: { "asmConsts": {},"staticBump": 1040, "initializers": [] }
diff --git a/test/llvm_autogenerated/offset.wast b/test/llvm_autogenerated/offset.wast
index 63383af3a..a24a055e3 100644
--- a/test/llvm_autogenerated/offset.wast
+++ b/test/llvm_autogenerated/offset.wast
@@ -1,8 +1,7 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- (segment 12 "\00\00\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
+ (data (i32.const 12) "\00\00\00\00")
(export "memory" memory)
(export "load_i32_with_folded_offset" $load_i32_with_folded_offset)
(export "load_i32_with_folded_gep_offset" $load_i32_with_folded_gep_offset)
diff --git a/test/llvm_autogenerated/phi.wast b/test/llvm_autogenerated/phi.wast
index 30c5aa12c..3bd742e8d 100644
--- a/test/llvm_autogenerated/phi.wast
+++ b/test/llvm_autogenerated/phi.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "test0" $test0)
(export "test1" $test1)
diff --git a/test/llvm_autogenerated/reg-stackify.wast b/test/llvm_autogenerated/reg-stackify.wast
index eea7e8bbf..b9526b566 100644
--- a/test/llvm_autogenerated/reg-stackify.wast
+++ b/test/llvm_autogenerated/reg-stackify.wast
@@ -1,8 +1,7 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- (segment 12 "\00\00\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
+ (data (i32.const 12) "\00\00\00\00")
(export "memory" memory)
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
diff --git a/test/llvm_autogenerated/return-int32.wast b/test/llvm_autogenerated/return-int32.wast
index 8a10e58e4..eca34d41d 100644
--- a/test/llvm_autogenerated/return-int32.wast
+++ b/test/llvm_autogenerated/return-int32.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "return_i32" $return_i32)
(export "return_i32_twice" $return_i32_twice)
diff --git a/test/llvm_autogenerated/return-void.wast b/test/llvm_autogenerated/return-void.wast
index e8c9ba861..f2aa0eb37 100644
--- a/test/llvm_autogenerated/return-void.wast
+++ b/test/llvm_autogenerated/return-void.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "return_void" $return_void)
(export "return_void_twice" $return_void_twice)
diff --git a/test/llvm_autogenerated/select.wast b/test/llvm_autogenerated/select.wast
index 0bb26d95f..b8c32c86e 100644
--- a/test/llvm_autogenerated/select.wast
+++ b/test/llvm_autogenerated/select.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "select_i32_bool" $select_i32_bool)
(export "select_i32_eq" $select_i32_eq)
diff --git a/test/llvm_autogenerated/signext-zeroext.wast b/test/llvm_autogenerated/signext-zeroext.wast
index e7004abe8..f3534f9ba 100644
--- a/test/llvm_autogenerated/signext-zeroext.wast
+++ b/test/llvm_autogenerated/signext-zeroext.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "z2s_func" $z2s_func)
(export "s2z_func" $s2z_func)
diff --git a/test/llvm_autogenerated/store-results.wast b/test/llvm_autogenerated/store-results.wast
index dd974db29..c0969bf5f 100644
--- a/test/llvm_autogenerated/store-results.wast
+++ b/test/llvm_autogenerated/store-results.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 " \04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) " \04\00\00")
(export "memory" memory)
(export "single_block" $single_block)
(export "foo" $foo)
diff --git a/test/llvm_autogenerated/store-trunc.wast b/test/llvm_autogenerated/store-trunc.wast
index c337018bf..cf20bcd00 100644
--- a/test/llvm_autogenerated/store-trunc.wast
+++ b/test/llvm_autogenerated/store-trunc.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "trunc_i8_i32" $trunc_i8_i32)
(export "trunc_i16_i32" $trunc_i16_i32)
diff --git a/test/llvm_autogenerated/store.wast b/test/llvm_autogenerated/store.wast
index 1234d94a9..1017588b1 100644
--- a/test/llvm_autogenerated/store.wast
+++ b/test/llvm_autogenerated/store.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(export "sti32" $sti32)
(export "sti64" $sti64)
diff --git a/test/llvm_autogenerated/switch.wast b/test/llvm_autogenerated/switch.wast
index 78f9a2859..abd4045ae 100644
--- a/test/llvm_autogenerated/switch.wast
+++ b/test/llvm_autogenerated/switch.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$v (func))
(import $foo0 "env" "foo0")
diff --git a/test/llvm_autogenerated/unreachable.wast b/test/llvm_autogenerated/unreachable.wast
index 8c9838b3d..27a783ccf 100644
--- a/test/llvm_autogenerated/unreachable.wast
+++ b/test/llvm_autogenerated/unreachable.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$v (func))
(import $abort "env" "abort")
diff --git a/test/llvm_autogenerated/unused-argument.wast b/test/llvm_autogenerated/unused-argument.wast
index 318ef7a87..c212ea165 100644
--- a/test/llvm_autogenerated/unused-argument.wast
+++ b/test/llvm_autogenerated/unused-argument.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$i (func (result i32)))
(import $return_something "env" "return_something" (result i32))
diff --git a/test/llvm_autogenerated/userstack.wast b/test/llvm_autogenerated/userstack.wast
index c2b38605e..216930a03 100644
--- a/test/llvm_autogenerated/userstack.wast
+++ b/test/llvm_autogenerated/userstack.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$vi (func (param i32)))
(import $ext_func "env" "ext_func" (param i32))
diff --git a/test/llvm_autogenerated/varargs.wast b/test/llvm_autogenerated/varargs.wast
index d460e2efb..02b3f2202 100644
--- a/test/llvm_autogenerated/varargs.wast
+++ b/test/llvm_autogenerated/varargs.wast
@@ -1,7 +1,6 @@
(module
- (memory 1
- (segment 4 "\10\04\00\00")
- )
+ (memory 1)
+ (data (i32.const 4) "\10\04\00\00")
(export "memory" memory)
(type $FUNCSIG$vi (func (param i32)))
(import $callee "env" "callee" (param i32))
diff --git a/test/unit.wast b/test/unit.wast
index 301ba719c..b18ba6fdf 100644
--- a/test/unit.wast
+++ b/test/unit.wast
@@ -1,7 +1,6 @@
(module
- (memory 4096 4096
- (segment 1026 "\14\00")
- )
+ (memory 4096 4096)
+ (data (i32.const 1026) "\14\00")
(type $FUNCSIG$vf (func (param f32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$id (func (param f64) (result i32)))
diff --git a/test/unit.wast.fromBinary b/test/unit.wast.fromBinary
index c9ba4528b..495b3daed 100644
--- a/test/unit.wast.fromBinary
+++ b/test/unit.wast.fromBinary
@@ -1,7 +1,6 @@
(module
- (memory 4096 4096
- (segment 1026 "\14\00")
- )
+ (memory 4096 4096)
+ (data (i32.const 1026) "\14\00")
(type $0 (func (param f32)))
(type $1 (func))
(type $2 (func (param f64) (result i32)))