| Index: src/compiler/machine-graph-verifier.cc
|
| diff --git a/src/compiler/machine-graph-verifier.cc b/src/compiler/machine-graph-verifier.cc
|
| index d3df4e509a045d6519b18b6943f63ad881b92366..0b4901d944458eab7388b77e10f2e36bb32a8ef9 100644
|
| --- a/src/compiler/machine-graph-verifier.cc
|
| +++ b/src/compiler/machine-graph-verifier.cc
|
| @@ -152,6 +152,11 @@ class MachineRepresentationInferrer {
|
| representation_vector_[node->id()] = PromoteRepresentation(
|
| AtomicExchangeRepresentationOf(node->op()).representation());
|
| break;
|
| + case IrOpcode::kAtomicCompareExchange:
|
| + representation_vector_[node->id()] = PromoteRepresentation(
|
| + AtomicCompareExchangeRepresentationOf(node->op())
|
| + .representation());
|
| + break;
|
| case IrOpcode::kStore:
|
| case IrOpcode::kProtectedStore:
|
| representation_vector_[node->id()] = PromoteRepresentation(
|
| @@ -458,6 +463,24 @@ class MachineRepresentationChecker {
|
| node, 2, inferrer_->GetRepresentation(node));
|
| }
|
| break;
|
| + case IrOpcode::kAtomicCompareExchange:
|
| + CheckValueInputIsTaggedOrPointer(node, 0);
|
| + CheckValueInputRepresentationIs(
|
| + node, 1, MachineType::PointerRepresentation());
|
| + switch (inferrer_->GetRepresentation(node)) {
|
| + case MachineRepresentation::kTagged:
|
| + case MachineRepresentation::kTaggedPointer:
|
| + case MachineRepresentation::kTaggedSigned:
|
| + CheckValueInputIsTagged(node, 2);
|
| + CheckValueInputIsTagged(node, 3);
|
| + break;
|
| + default:
|
| + CheckValueInputRepresentationIs(
|
| + node, 2, inferrer_->GetRepresentation(node));
|
| + CheckValueInputRepresentationIs(
|
| + node, 3, inferrer_->GetRepresentation(node));
|
| + }
|
| + break;
|
| case IrOpcode::kPhi:
|
| switch (inferrer_->GetRepresentation(node)) {
|
| case MachineRepresentation::kTagged:
|
|
|