| Index: src/compiler/register-allocator.cc
|
| diff --git a/src/compiler/register-allocator.cc b/src/compiler/register-allocator.cc
|
| index 23da999119118176e606992d4e8f41b9be599414..8bf2886d31b4fe60a494af789668a77da8b034e8 100644
|
| --- a/src/compiler/register-allocator.cc
|
| +++ b/src/compiler/register-allocator.cc
|
| @@ -1919,7 +1919,10 @@ void LiveRangeBuilder::ProcessInstructions(const InstructionBlock* block,
|
| int out_vreg = ConstantOperand::cast(output)->virtual_register();
|
| live->Remove(out_vreg);
|
| }
|
| - if (block->IsHandler() && index == block_start) {
|
| + if (block->IsHandler() && index == block_start && output->IsAllocated() &&
|
| + output->IsRegister() &&
|
| + AllocatedOperand::cast(output)->GetRegister().is(
|
| + v8::internal::kReturnRegister0)) {
|
| // The register defined here is blocked from gap start - it is the
|
| // exception value.
|
| // TODO(mtrofin): should we explore an explicit opcode for
|
|
|