summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/passes/MemoryPacking.cpp10
-rw-r--r--src/wasm-binary.h2
-rw-r--r--test/passes/memory-packing_all-features.txt576
-rw-r--r--test/passes/memory-packing_all-features.wast14
4 files changed, 600 insertions, 2 deletions
diff --git a/src/passes/MemoryPacking.cpp b/src/passes/MemoryPacking.cpp
index d8e59cae6..640207fc7 100644
--- a/src/passes/MemoryPacking.cpp
+++ b/src/passes/MemoryPacking.cpp
@@ -87,6 +87,11 @@ Expression* makeShiftedMemorySize(Builder& builder) {
struct MemoryPacking : public Pass {
size_t dropStateGlobalCount = 0;
+ // FIXME: Chrome has a bug decoding section indices that prevents it from
+ // using more than 63. Just use WebLimitations::MaxDataSegments once this is
+ // fixed. See https://bugs.chromium.org/p/v8/issues/detail?id=10151.
+ uint32_t maxSegments;
+
void run(PassRunner* runner, Module* module) override;
void optimizeBulkMemoryOps(PassRunner* runner, Module* module);
void getSegmentReferrers(Module* module, std::vector<Referrers>& referrers);
@@ -116,6 +121,9 @@ void MemoryPacking::run(PassRunner* runner, Module* module) {
return;
}
+ maxSegments = module->features.hasBulkMemory()
+ ? 63
+ : uint32_t(WebLimitations::MaxDataSegments);
auto& segments = module->memory.segments;
// For each segment, a list of bulk memory instructions that refer to it
@@ -436,7 +444,7 @@ void MemoryPacking::createSplitSegments(Builder& builder,
offset = segment.offset;
}
}
- if (WebLimitations::MaxDataSegments <= packed.size() + segmentsRemaining) {
+ if (maxSegments <= packed.size() + segmentsRemaining) {
// Give up splitting and merge all remaining ranges except end zeroes
auto lastNonzero = ranges.end() - 1;
if (lastNonzero->isZero) {
diff --git a/src/wasm-binary.h b/src/wasm-binary.h
index 5cfafb509..0dd8be61a 100644
--- a/src/wasm-binary.h
+++ b/src/wasm-binary.h
@@ -47,7 +47,7 @@ enum {
// wasm VMs on the web have decided to impose some limits on what they
// accept
-enum WebLimitations {
+enum WebLimitations : uint32_t {
MaxDataSegments = 100 * 1000,
MaxFunctionBodySize = 128 * 1024,
MaxFunctionLocals = 50 * 1000
diff --git a/test/passes/memory-packing_all-features.txt b/test/passes/memory-packing_all-features.txt
index e74fb3c9b..1c46995b6 100644
--- a/test/passes/memory-packing_all-features.txt
+++ b/test/passes/memory-packing_all-features.txt
@@ -929,3 +929,579 @@
)
)
)
+(module
+ (type $none_=>_none (func))
+ (import "env" "memory" (memory $0 2048 2048))
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a")
+ (data passive "a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a")
+ (func $init-lots (; 0 ;)
+ (block
+ (memory.init 0
+ (i32.const 0)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 1
+ (i32.const 31)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 32)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 2
+ (i32.const 62)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 63)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 3
+ (i32.const 93)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 94)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 4
+ (i32.const 124)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 125)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 5
+ (i32.const 155)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 156)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 6
+ (i32.const 186)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 187)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 7
+ (i32.const 217)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 218)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 8
+ (i32.const 248)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 249)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 9
+ (i32.const 279)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 280)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 10
+ (i32.const 310)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 311)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 11
+ (i32.const 341)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 342)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 12
+ (i32.const 372)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 373)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 13
+ (i32.const 403)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 404)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 14
+ (i32.const 434)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 435)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 15
+ (i32.const 465)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 466)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 16
+ (i32.const 496)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 497)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 17
+ (i32.const 527)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 528)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 18
+ (i32.const 558)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 559)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 19
+ (i32.const 589)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 590)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 20
+ (i32.const 620)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 621)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 21
+ (i32.const 651)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 652)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 22
+ (i32.const 682)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 683)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 23
+ (i32.const 713)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 714)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 24
+ (i32.const 744)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 745)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 25
+ (i32.const 775)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 776)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 26
+ (i32.const 806)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 807)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 27
+ (i32.const 837)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 838)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 28
+ (i32.const 868)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 869)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 29
+ (i32.const 899)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 900)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 30
+ (i32.const 930)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 931)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 31
+ (i32.const 961)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 962)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 32
+ (i32.const 992)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 993)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 33
+ (i32.const 1023)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1024)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 34
+ (i32.const 1054)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1055)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 35
+ (i32.const 1085)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1086)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 36
+ (i32.const 1116)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1117)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 37
+ (i32.const 1147)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1148)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 38
+ (i32.const 1178)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1179)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 39
+ (i32.const 1209)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1210)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 40
+ (i32.const 1240)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1241)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 41
+ (i32.const 1271)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1272)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 42
+ (i32.const 1302)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1303)
+ (i32.const 0)
+ (i32.const 30)
+ )
+ (memory.init 43
+ (i32.const 1333)
+ (i32.const 0)
+ (i32.const 1)
+ )
+ (memory.fill
+ (i32.const 1334)
+ (i32.const 0)
+ (i32.const 11)
+ )
+ )
+ (block
+ (data.drop 0)
+ (data.drop 1)
+ (data.drop 2)
+ (data.drop 3)
+ (data.drop 4)
+ (data.drop 5)
+ (data.drop 6)
+ (data.drop 7)
+ (data.drop 8)
+ (data.drop 9)
+ (data.drop 10)
+ (data.drop 11)
+ (data.drop 12)
+ (data.drop 13)
+ (data.drop 14)
+ (data.drop 15)
+ (data.drop 16)
+ (data.drop 17)
+ (data.drop 18)
+ (data.drop 19)
+ (data.drop 20)
+ (data.drop 21)
+ (data.drop 22)
+ (data.drop 23)
+ (data.drop 24)
+ (data.drop 25)
+ (data.drop 26)
+ (data.drop 27)
+ (data.drop 28)
+ (data.drop 29)
+ (data.drop 30)
+ (data.drop 31)
+ (data.drop 32)
+ (data.drop 33)
+ (data.drop 34)
+ (data.drop 35)
+ (data.drop 36)
+ (data.drop 37)
+ (data.drop 38)
+ (data.drop 39)
+ (data.drop 40)
+ (data.drop 41)
+ (data.drop 42)
+ (data.drop 43)
+ (data.drop 44)
+ (data.drop 45)
+ (data.drop 46)
+ (data.drop 47)
+ (data.drop 48)
+ (data.drop 49)
+ (data.drop 50)
+ (data.drop 51)
+ (data.drop 52)
+ (data.drop 53)
+ (data.drop 54)
+ (data.drop 55)
+ (data.drop 56)
+ (data.drop 57)
+ (data.drop 58)
+ (data.drop 59)
+ (data.drop 60)
+ (data.drop 61)
+ (data.drop 62)
+ )
+ )
+)
diff --git a/test/passes/memory-packing_all-features.wast b/test/passes/memory-packing_all-features.wast
index ea1ea19f7..309ee79ad 100644
--- a/test/passes/memory-packing_all-features.wast
+++ b/test/passes/memory-packing_all-features.wast
@@ -481,3 +481,17 @@
(data.drop 3)
)
)
+
+(module
+ (import "env" "memory" (memory $0 2048 2048))
+ (data passive "a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00a") ;; 64 ranges of zeroes
+
+ (func $init-lots
+ (memory.init 0
+ (i32.const 0)
+ (i32.const 0)
+ (i32.const 1345)
+ )
+ (data.drop 0)
+ )
+) \ No newline at end of file