diff options
author | Derek Schuff <dschuff@chromium.org> | 2016-02-08 16:49:50 -0800 |
---|---|---|
committer | Derek Schuff <dschuff@chromium.org> | 2016-02-08 16:49:50 -0800 |
commit | d5cc09449032972b07aaf4625349991fe61b62c1 (patch) | |
tree | b6fa44c6c2db7d3d28c75547de6fd615639e707d | |
parent | d3bbf5a4ddd70940d22eb3f1690c2637d725e43e (diff) | |
download | binaryen-d5cc09449032972b07aaf4625349991fe61b62c1.tar.gz binaryen-d5cc09449032972b07aaf4625349991fe61b62c1.tar.bz2 binaryen-d5cc09449032972b07aaf4625349991fe61b62c1.zip |
Align the stack allocation to 16 bytes to satisfy the aligment ABI
-rw-r--r-- | src/s2wasm.h | 2 | ||||
-rw-r--r-- | test/s2wasm_known_binaryen_shell_test_failures.txt | 10 |
2 files changed, 2 insertions, 10 deletions
diff --git a/src/s2wasm.h b/src/s2wasm.h index 649b32196..ac62046d8 100644 --- a/src/s2wasm.h +++ b/src/s2wasm.h @@ -399,6 +399,8 @@ class S2WasmBuilder { void placeStack(size_t stackAllocation) { // Allocate space for a user stack. It starts zeroed-out so needs no segment + // Round to a 16-byte aligned address. + nextStatic = (nextStatic + 15) & static_cast<size_t>(-16); staticAddresses[".stack"] = nextStatic; nextStatic += stackAllocation; wasm.memory.initial = nextStatic; diff --git a/test/s2wasm_known_binaryen_shell_test_failures.txt b/test/s2wasm_known_binaryen_shell_test_failures.txt index 4a2117252..b16ed8510 100644 --- a/test/s2wasm_known_binaryen_shell_test_failures.txt +++ b/test/s2wasm_known_binaryen_shell_test_failures.txt @@ -43,23 +43,16 @@ simd-5.c.s.wast 980608-1.c.s.wast 990513-1.c.s.wast 991201-1.c.s.wast -alloca-1.c.s.wast bitfld-5.c.s.wast memcpy-1.c.s.wast multi-ix.c.s.wast -pr15296.c.s.wast -pr27073.c.s.wast -pr27285.c.s.wast pr29006.c.s.wast -pr36339.c.s.wast pr37573.c.s.wast -pr38969.c.s.wast pr42614.c.s.wast pr43236.c.s.wast pr44852.c.s.wast pr44942.c.s.wast pr48571-1.c.s.wast -pr49279.c.s.wast pr51466.c.s.wast pr51581-1.c.s.wast pr51581-2.c.s.wast @@ -74,8 +67,6 @@ pr56982.c.s.wast pr57124.c.s.wast pr57130.c.s.wast pr60960.c.s.wast -pta-field-1.c.s.wast -pta-field-2.c.s.wast stdarg-1.c.s.wast stdarg-2.c.s.wast stdarg-4.c.s.wast @@ -108,7 +99,6 @@ va-arg-9.c.s.wast 20030218-1.c.s.wast complex-7.c.s.wast pr30778.c.s.wast -pr51323.c.s.wast # abort called: the tests are self-validating and call abort when they detect a # failure. This may not be binaryen's fault (the toolchain may be emitting bad |