| 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 779f786468bfa21f46df9e1f36dc60ff6eb60456..aba81d5d9d335f7967948814d136289684d7392c 100644
|
| --- a/src/compiler/mips64/instruction-selector-mips64.cc
|
| +++ b/src/compiler/mips64/instruction-selector-mips64.cc
|
| @@ -629,7 +629,7 @@ void InstructionSelector::VisitFloat64RoundTiesAway(Node* node) {
|
| }
|
|
|
|
|
| -void InstructionSelector::VisitCall(Node* node) {
|
| +void InstructionSelector::VisitCall(Node* node, BasicBlock* handler) {
|
| Mips64OperandGenerator g(this);
|
| const CallDescriptor* descriptor = OpParameter<const CallDescriptor*>(node);
|
|
|
| @@ -656,6 +656,13 @@ void InstructionSelector::VisitCall(Node* node) {
|
| slot--;
|
| }
|
|
|
| + // Pass label of exception handler block.
|
| + CallDescriptor::Flags flags = descriptor->flags();
|
| + if (handler != nullptr) {
|
| + flags |= CallDescriptor::kHasExceptionHandler;
|
| + buffer.instruction_args.push_back(g.Label(handler));
|
| + }
|
| +
|
| // Select the appropriate opcode based on the call type.
|
| InstructionCode opcode;
|
| switch (descriptor->kind()) {
|
| @@ -670,7 +677,7 @@ void InstructionSelector::VisitCall(Node* node) {
|
| UNREACHABLE();
|
| return;
|
| }
|
| - opcode |= MiscField::encode(descriptor->flags());
|
| + opcode |= MiscField::encode(flags);
|
|
|
| // Emit the call instruction.
|
| Instruction* call_instr =
|
|
|