Skip to content

Commit 9cbdca5

Browse files
dtigCommit Bot
authored andcommitted
[wasm] Atomic Wait/Notify should pass in the correct context value
Bug: chromium:1010272 Change-Id: Ifc7ed5ff66b84e889668fd0820cea1d5b6af328f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1925809 Reviewed-by: Michael Starzinger <[email protected]> Commit-Queue: Deepti Gandluri <[email protected]> Cr-Commit-Position: refs/heads/master@{#65060}
1 parent 233e3c1 commit 9cbdca5

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

src/builtins/builtins-wasm-gen.cc

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,11 @@ TF_BUILTIN(WasmAtomicNotify, WasmBuiltinsAssembler) {
7676
TNode<Object> instance = LoadInstanceFromFrame();
7777
TNode<Number> address_number = ChangeUint32ToTagged(address);
7878
TNode<Number> count_number = ChangeUint32ToTagged(count);
79+
TNode<Object> context = LoadContextFromInstance(instance);
7980

80-
TNode<Smi> result_smi = UncheckedCast<Smi>(
81-
CallRuntime(Runtime::kWasmAtomicNotify, NoContextConstant(), instance,
82-
address_number, count_number));
81+
TNode<Smi> result_smi =
82+
UncheckedCast<Smi>(CallRuntime(Runtime::kWasmAtomicNotify, context,
83+
instance, address_number, count_number));
8384
ReturnRaw(SmiToInt32(result_smi));
8485
}
8586

@@ -95,9 +96,10 @@ TF_BUILTIN(WasmI32AtomicWait, WasmBuiltinsAssembler) {
9596
TNode<Number> address_number = ChangeUint32ToTagged(address);
9697
TNode<Number> expected_value_number = ChangeInt32ToTagged(expected_value);
9798
TNode<Number> timeout_number = ChangeFloat64ToTagged(timeout);
99+
TNode<Object> context = LoadContextFromInstance(instance);
98100

99101
TNode<Smi> result_smi = UncheckedCast<Smi>(
100-
CallRuntime(Runtime::kWasmI32AtomicWait, NoContextConstant(), instance,
102+
CallRuntime(Runtime::kWasmI32AtomicWait, context, instance,
101103
address_number, expected_value_number, timeout_number));
102104
ReturnRaw(SmiToInt32(result_smi));
103105
}
@@ -119,11 +121,11 @@ TF_BUILTIN(WasmI64AtomicWait, WasmBuiltinsAssembler) {
119121
TNode<Number> expected_value_low_number =
120122
ChangeUint32ToTagged(expected_value_low);
121123
TNode<Number> timeout_number = ChangeFloat64ToTagged(timeout);
124+
TNode<Object> context = LoadContextFromInstance(instance);
122125

123-
TNode<Smi> result_smi = UncheckedCast<Smi>(
124-
CallRuntime(Runtime::kWasmI64AtomicWait, NoContextConstant(), instance,
125-
address_number, expected_value_high_number,
126-
expected_value_low_number, timeout_number));
126+
TNode<Smi> result_smi = UncheckedCast<Smi>(CallRuntime(
127+
Runtime::kWasmI64AtomicWait, context, instance, address_number,
128+
expected_value_high_number, expected_value_low_number, timeout_number));
127129
ReturnRaw(SmiToInt32(result_smi));
128130
}
129131

0 commit comments

Comments
 (0)