Index: src/compiler/mips64/instruction-selector-mips64.cc |
diff --git a/src/compiler/mips64/instruction-selector-mips64.cc b/src/compiler/mips64/instruction-selector-mips64.cc |
index 9fd208d376fb6512a10b426b755e7b306f099ae0..05ad5aa1a34779b4bf39cea677083ea00ce237df 100644 |
--- a/src/compiler/mips64/instruction-selector-mips64.cc |
+++ b/src/compiler/mips64/instruction-selector-mips64.cc |
@@ -690,6 +690,11 @@ void InstructionSelector::VisitCall(Node* node, BasicBlock* handler) { |
// Pass label of exception handler block. |
CallDescriptor::Flags flags = descriptor->flags(); |
if (handler) { |
+ DCHECK_EQ(IrOpcode::kIfException, handler->front()->opcode()); |
+ IfExceptionHint hint = OpParameter<IfExceptionHint>(handler->front()); |
+ if (hint == IfExceptionHint::kLocallyCaught) { |
+ flags |= CallDescriptor::kHasLocalCatchHandler; |
+ } |
flags |= CallDescriptor::kHasExceptionHandler; |
buffer.instruction_args.push_back(g.Label(handler)); |
} |