| Index: src/compiler/instruction-selector.cc
|
| diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc
|
| index 58a228b96eff4589ffcb986bbbc545eb18e99f56..7f6fbfd2be2d99981c5808552aa10256f6b14dd3 100644
|
| --- a/src/compiler/instruction-selector.cc
|
| +++ b/src/compiler/instruction-selector.cc
|
| @@ -1462,16 +1462,20 @@ void InstructionSelector::VisitNode(Node* node) {
|
| }
|
| case IrOpcode::kAtomicStore:
|
| return VisitAtomicStore(node);
|
| - case IrOpcode::kAtomicExchange: {
|
| - MachineType type = AtomicExchangeRepresentationOf(node->op());
|
| - MarkAsRepresentation(type.representation(), node);
|
| - return VisitAtomicExchange(node);
|
| - }
|
| - case IrOpcode::kAtomicCompareExchange: {
|
| - MachineType type = AtomicCompareExchangeRepresentationOf(node->op());
|
| - MarkAsRepresentation(type.representation(), node);
|
| - return VisitAtomicCompareExchange(node);
|
| - }
|
| +#define ATOMIC_CASE(name) \
|
| + case IrOpcode::kAtomic##name: { \
|
| + MachineType type = AtomicOpRepresentationOf(node->op()); \
|
| + MarkAsRepresentation(type.representation(), node); \
|
| + return VisitAtomic##name(node); \
|
| + }
|
| + ATOMIC_CASE(Exchange)
|
| + ATOMIC_CASE(CompareExchange)
|
| + ATOMIC_CASE(Add)
|
| + ATOMIC_CASE(Sub)
|
| + ATOMIC_CASE(And)
|
| + ATOMIC_CASE(Or)
|
| + ATOMIC_CASE(Xor)
|
| +#undef ATOMIC_CASE
|
| case IrOpcode::kProtectedLoad: {
|
| LoadRepresentation type = LoadRepresentationOf(node->op());
|
| MarkAsRepresentation(type.representation(), node);
|
|
|