| Index: src/compiler/arm64/instruction-selector-arm64.cc
|
| diff --git a/src/compiler/arm64/instruction-selector-arm64.cc b/src/compiler/arm64/instruction-selector-arm64.cc
|
| index 6afd3e8c1259998e646c820fab1f2e684b9b96dd..06d8f1f7a214e129ab9fe17836e1c113b9525327 100644
|
| --- a/src/compiler/arm64/instruction-selector-arm64.cc
|
| +++ b/src/compiler/arm64/instruction-selector-arm64.cc
|
| @@ -1080,7 +1080,7 @@ void InstructionSelector::VisitFloat64RoundTiesAway(Node* node) {
|
| }
|
|
|
|
|
| -void InstructionSelector::VisitCall(Node* node) {
|
| +void InstructionSelector::VisitCall(Node* node, BasicBlock* handler) {
|
| Arm64OperandGenerator g(this);
|
| const CallDescriptor* descriptor = OpParameter<const CallDescriptor*>(node);
|
|
|
| @@ -1127,6 +1127,13 @@ void InstructionSelector::VisitCall(Node* node) {
|
| }
|
| }
|
|
|
| + // 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()) {
|
| @@ -1141,7 +1148,7 @@ void InstructionSelector::VisitCall(Node* node) {
|
| UNREACHABLE();
|
| return;
|
| }
|
| - opcode |= MiscField::encode(descriptor->flags());
|
| + opcode |= MiscField::encode(flags);
|
|
|
| // Emit the call instruction.
|
| InstructionOperand* first_output =
|
|
|