diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-02-12 12:40:06 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-02-12 12:40:21 -0800 |
commit | 3d3c666bfbac06f34566a3cfcd1a2b969ce0c4a9 (patch) | |
tree | 5cf1b2e113d3913d435ac6a2cc6e3281155b503b /src | |
parent | f2f05739d41a4e96953dc184dd768ff308ad4983 (diff) | |
download | binaryen-3d3c666bfbac06f34566a3cfcd1a2b969ce0c4a9.tar.gz binaryen-3d3c666bfbac06f34566a3cfcd1a2b969ce0c4a9.tar.bz2 binaryen-3d3c666bfbac06f34566a3cfcd1a2b969ce0c4a9.zip |
add start to binary format
Diffstat (limited to 'src')
-rw-r--r-- | src/wasm-binary.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/wasm-binary.h b/src/wasm-binary.h index 2c884a4f5..b1db70a97 100644 --- a/src/wasm-binary.h +++ b/src/wasm-binary.h @@ -155,7 +155,8 @@ enum Section { Functions = 2, DataSegments = 4, FunctionTable = 5, - End = 6 + End = 6, + Start = 7 }; enum FunctionEntry { @@ -380,6 +381,7 @@ public: } void write() { + writeStart(); writeMemory(); writeSignatures(); writeFunctions(); @@ -389,6 +391,13 @@ public: finishUp(); } + void writeStart() { + if (!wasm->start.is()) return; + if (debug) std::cerr << "== writeStart" << std::endl; + o << int8_t(BinaryConsts::Start); + emitString(wasm->start.str); + } + void writeMemory() { if (wasm->memory.max == 0) return; if (debug) std::cerr << "== writeMemory" << std::endl; @@ -980,6 +989,7 @@ public: } switch (section) { + case BinaryConsts::Start: readStart(); break; case BinaryConsts::Memory: readMemory(); break; case BinaryConsts::Signatures: readSignatures(); break; case BinaryConsts::Functions: readFunctions(); break; @@ -1082,6 +1092,11 @@ public: assert(x == y); } + void readStart() { + if (debug) std::cerr << "== readStart" << std::endl; + wasm.start = getString(); + } + void readMemory() { if (debug) std::cerr << "== readMemory" << std::endl; size_t initial = getInt8(); |