Index: src/compiler/ia32/instruction-selector-ia32.cc |
diff --git a/src/compiler/ia32/instruction-selector-ia32.cc b/src/compiler/ia32/instruction-selector-ia32.cc |
index 8343dc1a09326f6d297a01e52521ed816ea5a499..82a6650bdda3959e9a70f6fc24b346d71b18b786 100644 |
--- a/src/compiler/ia32/instruction-selector-ia32.cc |
+++ b/src/compiler/ia32/instruction-selector-ia32.cc |
@@ -843,6 +843,9 @@ 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()); |
+ bool caught_locally = OpParameter<bool>(handler->front()); |
+ if (caught_locally) flags |= CallDescriptor::kHasLocalCatchHandler; |
flags |= CallDescriptor::kHasExceptionHandler; |
buffer.instruction_args.push_back(g.Label(handler)); |
} |