Do not set protected memory for all atomics

Bug: v8:12946
Change-Id: If62b67a47f63832e6edca749ce1a45cf3a85316d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3743384
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Cr-Commit-Position: refs/heads/main@{#81521}
This commit is contained in:
Manos Koukoutos 2022-07-04 14:59:28 +00:00 committed by V8 LUCI CQ
parent eb74342600
commit efbadd6096

View File

@ -503,8 +503,10 @@ void InstructionSelector::VisitLoad(Node* node, Node* value,
g.GetEffectiveAddressMemoryOperand(value, inputs, &input_count, reg_kind);
InstructionCode code = opcode | AddressingModeField::encode(mode);
if (node->opcode() == IrOpcode::kProtectedLoad ||
node->opcode() == IrOpcode::kWord32AtomicLoad ||
node->opcode() == IrOpcode::kWord64AtomicLoad) {
((node->opcode() == IrOpcode::kWord32AtomicLoad ||
node->opcode() == IrOpcode::kWord64AtomicLoad) &&
(AtomicLoadParametersOf(node->op()).kind() ==
MemoryAccessKind::kProtected))) {
code |= AccessModeField::encode(kMemoryAccessProtected);
}
Emit(code, 1, outputs, input_count, inputs, temp_count, temps);