diff options
author | Alon Zakai <alonzakai@gmail.com> | 2017-09-11 10:22:41 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-11 10:22:41 -0700 |
commit | 13bccf058972660d7d59e68c08c0278c1554a19b (patch) | |
tree | 57a5c0827243516a927ad2181bb4f361557141c7 /src/ast/ExpressionManipulator.cpp | |
parent | 9fafcef2c3dfe18b119b11fa527514835a4371ce (diff) | |
download | binaryen-13bccf058972660d7d59e68c08c0278c1554a19b.tar.gz binaryen-13bccf058972660d7d59e68c08c0278c1554a19b.tar.bz2 binaryen-13bccf058972660d7d59e68c08c0278c1554a19b.zip |
asm2wasm atomics (#1171)
* translate asm.js atomics into wasm atomics
* fix wasm-builder atomic load emitting, the alignment is the loaded size, not the output size
* don't require code for each node type in vaccuum, for non-mentioned nodes, assume we can't optimize them out
* support atomics in hashing, comparing, and copying
Diffstat (limited to 'src/ast/ExpressionManipulator.cpp')
-rw-r--r-- | src/ast/ExpressionManipulator.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ast/ExpressionManipulator.cpp b/src/ast/ExpressionManipulator.cpp index cca799e10..f5b303488 100644 --- a/src/ast/ExpressionManipulator.cpp +++ b/src/ast/ExpressionManipulator.cpp @@ -117,6 +117,12 @@ Expression* flexibleCopy(Expression* original, Module& wasm, CustomCopier custom copy(curr->ptr), copy(curr->expected), copy(curr->replacement), curr->type); } + Expression* visitAtomicWait(AtomicWait* curr) { + return builder.makeAtomicWait(copy(curr->ptr), copy(curr->expected), copy(curr->timeout), curr->type); + } + Expression* visitAtomicWake(AtomicWake* curr) { + return builder.makeAtomicWake(copy(curr->ptr), copy(curr->wakeCount)); + } Expression* visitConst(Const *curr) { return builder.makeConst(curr->value); } |