summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJF Bastien <jfb@chromium.org>2015-12-22 16:50:59 -0800
committerJF Bastien <jfb@chromium.org>2015-12-22 16:50:59 -0800
commit175da4d20630afd2c0ab5b9be5842c41694c2b35 (patch)
treed01e0f382844e470c208635c56cdcbdba4de9bdf
parent9fd7cfcb3f50eac87016170e8c130674fd37fcd0 (diff)
downloadbinaryen-175da4d20630afd2c0ab5b9be5842c41694c2b35.tar.gz
binaryen-175da4d20630afd2c0ab5b9be5842c41694c2b35.tar.bz2
binaryen-175da4d20630afd2c0ab5b9be5842c41694c2b35.zip
s2wasm: support .int8 and .int16 data
This fixes a bunch of the torture test failures.
-rw-r--r--src/s2wasm.h10
-rw-r--r--test/s2wasm_known_gcc_test_failures.txt65
2 files changed, 10 insertions, 65 deletions
diff --git a/src/s2wasm.h b/src/s2wasm.h
index 7c42a81b0..b3c22d83d 100644
--- a/src/s2wasm.h
+++ b/src/s2wasm.h
@@ -895,6 +895,16 @@ private:
for (size_t i = 0, e = size; i < e; i++) {
raw->push_back(0);
}
+ } else if (match(".int8")) {
+ size_t size = raw->size();
+ raw->resize(size + 1);
+ (*(int8_t*)(&(*raw)[size])) = getInt();
+ zero = false;
+ } else if (match(".int16")) {
+ size_t size = raw->size();
+ raw->resize(size + 2);
+ (*(int16_t*)(&(*raw)[size])) = getInt();
+ zero = false;
} else if (match(".int32")) {
size_t size = raw->size();
raw->resize(size + 4);
diff --git a/test/s2wasm_known_gcc_test_failures.txt b/test/s2wasm_known_gcc_test_failures.txt
index 0801493aa..c2ea18008 100644
--- a/test/s2wasm_known_gcc_test_failures.txt
+++ b/test/s2wasm_known_gcc_test_failures.txt
@@ -1,85 +1,20 @@
# Expected failures from running s2wasm on the linked GCC torture test output
# files.
-20000412-1.c.s
-20000412-6.c.s
-20000528-1.c.s
-20010224-1.c.s
-20010915-1.c.s
20010924-1.c.s
-20020201-1.c.s
-20020216-1.c.s
-20020226-1.c.s
-20020508-1.c.s
-20020508-2.c.s
-20020508-3.c.s
-20020911-1.c.s
-20021010-2.c.s
-20021015-1.c.s
-20030128-1.c.s
-20030714-1.c.s
20031215-1.c.s
-20041124-1.c.s
20050929-1.c.s
-20060905-1.c.s
20071220-1.c.s
20071220-2.c.s
-20111227-1.c.s
-20111227-2.c.s
-20111227-3.c.s
-20131127-1.c.s
-20140212-1.c.s
930930-1.c.s
950426-1.c.s
-960326-1.c.s
961125-1.c.s
-980612-1.c.s
-align-2.c.s
align-3.c.s
-bitfld-3.c.s
-bitfld-4.c.s
-compndlit-1.c.s
-memset-1.c.s
-memset-2.c.s
-memset-3.c.s
-packed-1.c.s
-pr19606.c.s
-pr21173.c.s
-pr23324.c.s
pr27285.c.s
-pr29006.c.s
-pr29695-2.c.s
pr34415.c.s
pr35800.c.s
-pr36691.c.s
-pr37924.c.s
-pr40386.c.s
-pr42269-2.c.s
-pr42512.c.s
pr51933.c.s
-pr52979-1.c.s
-pr52979-2.c.s
pr53084.c.s
-pr53160.c.s
-pr57344-3.c.s
-pr57344-4.c.s
-pr57861.c.s
-pr57877.c.s
-pr58277-2.c.s
-pr58419.c.s
-pr58431.c.s
-pr58831.c.s
-pr59221.c.s
-pr59387.c.s
-pr59747.c.s
pr60017.c.s
-pr61306-3.c.s
-pr61673.c.s
-pr63659.c.s
-simd-2.c.s
-simd-5.c.s
string-opt-17.c.s
string-opt-5.c.s
-struct-ini-1.c.s
-struct-ini-2.c.s
-struct-ini-3.c.s