| Index: src/compiler/ppc/instruction-selector-ppc.cc
|
| diff --git a/src/compiler/ppc/instruction-selector-ppc.cc b/src/compiler/ppc/instruction-selector-ppc.cc
|
| index 3c700cbc8dfe4e4e21aede18684ef848774e01c3..bed80ed2ce4e87dfd3e289aa53d5a6ea00f67fa3 100644
|
| --- a/src/compiler/ppc/instruction-selector-ppc.cc
|
| +++ b/src/compiler/ppc/instruction-selector-ppc.cc
|
| @@ -1378,7 +1378,7 @@ void InstructionSelector::VisitFloat64LessThanOrEqual(Node* node) {
|
| }
|
|
|
|
|
| -void InstructionSelector::VisitCall(Node* node) {
|
| +void InstructionSelector::VisitCall(Node* node, BasicBlock* handler) {
|
| PPCOperandGenerator g(this);
|
| const CallDescriptor* descriptor = OpParameter<CallDescriptor*>(node);
|
|
|
| @@ -1403,6 +1403,13 @@ void InstructionSelector::VisitCall(Node* node) {
|
| Emit(kPPC_Push, g.NoOutput(), g.UseRegister(*i));
|
| }
|
|
|
| + // 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()) {
|
| @@ -1417,7 +1424,7 @@ void InstructionSelector::VisitCall(Node* node) {
|
| UNREACHABLE();
|
| return;
|
| }
|
| - opcode |= MiscField::encode(descriptor->flags());
|
| + opcode |= MiscField::encode(flags);
|
|
|
| // Emit the call instruction.
|
| InstructionOperand* first_output =
|
|
|