Index: src/compiler/instruction-selector.cc |
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc |
index d8409a3f89c8250155d645b73b189ece198083d4..e4faca5a6692b572875374ad51a63bfc8957fc65 100644 |
--- a/src/compiler/instruction-selector.cc |
+++ b/src/compiler/instruction-selector.cc |
@@ -1707,17 +1707,13 @@ |
Emit(kArchNop, op); |
} |
-namespace { |
-LinkageLocation ExceptionLocation() { |
- return LinkageLocation::ForRegister(kReturnRegister0.code(), |
- MachineType::IntPtr()); |
-} |
-} |
void InstructionSelector::VisitIfException(Node* node) { |
OperandGenerator g(this); |
- DCHECK_EQ(IrOpcode::kCall, node->InputAt(1)->opcode()); |
- Emit(kArchNop, g.DefineAsLocation(node, ExceptionLocation())); |
+ Node* call = node->InputAt(1); |
+ DCHECK_EQ(IrOpcode::kCall, call->opcode()); |
+ const CallDescriptor* descriptor = CallDescriptorOf(call->op()); |
+ Emit(kArchNop, g.DefineAsLocation(node, descriptor->GetReturnLocation(0))); |
} |