diff options
author | JF Bastien <jfb@chromium.org> | 2016-02-05 05:11:50 -0800 |
---|---|---|
committer | JF Bastien <jfb@chromium.org> | 2016-02-05 05:11:50 -0800 |
commit | 7459e5af01fbe3a8e75e73783794b4cdffda34e9 (patch) | |
tree | aae2c28eb1cc465a4582208d6c713584a51a1bcf /src/asm2wasm.h | |
parent | 8f67b6e27a38c93fbca7f3c44a88889b3896952f (diff) | |
download | binaryen-7459e5af01fbe3a8e75e73783794b4cdffda34e9.tar.gz binaryen-7459e5af01fbe3a8e75e73783794b4cdffda34e9.tar.bz2 binaryen-7459e5af01fbe3a8e75e73783794b4cdffda34e9.zip |
Fix select
The ordering changed in: https://github.com/WebAssembly/spec/pull/221
Which changed the spec tests, breaking sexpr-wasm because it pulls in the spec tests. This was then fixed:
https://github.com/WebAssembly/sexpr-wasm-prototype/commit/23dc368148fc7827a603e3853f5a40287eb9effe
Which in turn breaks when binaryen feeds sexpr-wasm .wast files with the old select operand ordering.
Note that this PR has new failures when running the torture tests in binaryen-shell: the order of evaluation is correct in binaryen-shell but isn't emitted properly by LLVM in the .s files. This will require another patch to fix LLVM.
Diffstat (limited to 'src/asm2wasm.h')
-rw-r--r-- | src/asm2wasm.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/asm2wasm.h b/src/asm2wasm.h index d56bf0cce..22db2636a 100644 --- a/src/asm2wasm.h +++ b/src/asm2wasm.h @@ -1109,9 +1109,9 @@ Function* Asm2WasmBuilder::processFunction(Ref ast) { flip->right = get(); flip->type = i32; auto select = allocator.alloc<Select>(); - select->condition = isNegative; select->ifTrue = flip; select->ifFalse = get(); + select->condition = isNegative; select->type = i32; block->list.push_back(select); block->type = i32; |