From 13bccf058972660d7d59e68c08c0278c1554a19b Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Mon, 11 Sep 2017 10:22:41 -0700 Subject: 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 --- src/ast/ExpressionManipulator.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/ast/ExpressionManipulator.cpp') 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); } -- cgit v1.2.3