diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-11-05 11:15:56 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-11-05 11:15:56 -0800 |
commit | 272cf05739fb95e85d2cabb0dd7600c0f03c7906 (patch) | |
tree | 297652a21da0eaa91fbf82de7b604daae4a371b4 | |
parent | 01ef67f22fb597b7c749d2c82c93556cc8eea5b2 (diff) | |
download | binaryen-272cf05739fb95e85d2cabb0dd7600c0f03c7906.tar.gz binaryen-272cf05739fb95e85d2cabb0dd7600c0f03c7906.tar.bz2 binaryen-272cf05739fb95e85d2cabb0dd7600c0f03c7906.zip |
i64/32 load fixes, and nice colors in shell
-rw-r--r-- | src/wasm-s-parser.h | 10 | ||||
-rw-r--r-- | src/wasm-shell.cpp | 7 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h index a2a92c57d..e55ce9af1 100644 --- a/src/wasm-s-parser.h +++ b/src/wasm-s-parser.h @@ -278,7 +278,7 @@ public: } Expression* parseExpression(Element& s) { - if (debug) std::cerr << "parse expression " << s << '\n'; + //if (debug) std::cerr << "parse expression " << s << '\n'; IString id = s[0]->str(); const char *str = id.str; const char *dot = strchr(str, '.'); @@ -584,6 +584,10 @@ private: assert(extra[1] == '6'); ret->bytes = 2; extra += 2; + } else if (extra[0] == '3') { + assert(extra[1] == '2'); + ret->bytes = 4; + extra += 2; } ret->signed_ = extra[0] && extra[1] == 's'; size_t i = 1; @@ -617,6 +621,10 @@ private: assert(extra[1] == '6'); ret->bytes = 2; extra += 2; + } else if (extra[0] == '3') { + assert(extra[1] == '2'); + ret->bytes = 4; + extra += 2; } size_t i = 1; ret->offset = 0; diff --git a/src/wasm-shell.cpp b/src/wasm-shell.cpp index 97c9c91ed..f684d5785 100644 --- a/src/wasm-shell.cpp +++ b/src/wasm-shell.cpp @@ -157,7 +157,12 @@ int main(int argc, char **argv) { Element& curr = *root[i]; IString id = curr[0]->str(); if (id == MODULE) break; - std::cerr << i << '/' << (root.size()-1) << " CHECKING| " << curr << '\n'; + Colors::red(std::cerr); + std::cerr << i << '/' << (root.size()-1); + Colors::green(std::cerr); + std::cerr << " CHECKING: "; + Colors::normal(std::cerr); + std::cerr << curr << '\n'; Element& invoke = *curr[1]; assert(invoke[0]->str() == INVOKE); IString name = invoke[1]->str(); |