summaryrefslogtreecommitdiff
path: root/src/ir/ExpressionManipulator.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2018-01-22 17:36:06 -0800
committerGitHub <noreply@github.com>2018-01-22 17:36:06 -0800
commit155d0b5f42b57100582649dfbdb81806b10579a2 (patch)
tree991421bf9fcd120aa0c4d6cad41df14de1fc7afd /src/ir/ExpressionManipulator.cpp
parent02729a12e1735f629d3066b51c96a056f712b080 (diff)
downloadbinaryen-155d0b5f42b57100582649dfbdb81806b10579a2.tar.gz
binaryen-155d0b5f42b57100582649dfbdb81806b10579a2.tar.bz2
binaryen-155d0b5f42b57100582649dfbdb81806b10579a2.zip
Atomic wait/wake fixes (#1383)
* fix wait and wake binary format support, they have alignments and offsets * don't emit unreachable parts of atomic operations, for simplicity and to avoid special handling * don't emit atomic waits by default in the fuzzer, they hang in native vm support
Diffstat (limited to 'src/ir/ExpressionManipulator.cpp')
-rw-r--r--src/ir/ExpressionManipulator.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ir/ExpressionManipulator.cpp b/src/ir/ExpressionManipulator.cpp
index 812c4f04b..dcbb4a056 100644
--- a/src/ir/ExpressionManipulator.cpp
+++ b/src/ir/ExpressionManipulator.cpp
@@ -116,10 +116,10 @@ Expression* flexibleCopy(Expression* original, Module& wasm, CustomCopier custom
curr->type);
}
Expression* visitAtomicWait(AtomicWait* curr) {
- return builder.makeAtomicWait(copy(curr->ptr), copy(curr->expected), copy(curr->timeout), curr->expectedType);
+ return builder.makeAtomicWait(copy(curr->ptr), copy(curr->expected), copy(curr->timeout), curr->expectedType, curr->offset);
}
Expression* visitAtomicWake(AtomicWake* curr) {
- return builder.makeAtomicWake(copy(curr->ptr), copy(curr->wakeCount));
+ return builder.makeAtomicWake(copy(curr->ptr), copy(curr->wakeCount), curr->offset);
}
Expression* visitConst(Const *curr) {
return builder.makeConst(curr->value);