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); |