| Index: src/arm64/lithium-codegen-arm64.cc
|
| diff --git a/src/arm64/lithium-codegen-arm64.cc b/src/arm64/lithium-codegen-arm64.cc
|
| index e9f7837eab5642c420be4a36636ec97e58169a3b..40c5c4238f39187c8371bb9e96a3320eabb0fc01 100644
|
| --- a/src/arm64/lithium-codegen-arm64.cc
|
| +++ b/src/arm64/lithium-codegen-arm64.cc
|
| @@ -839,11 +839,7 @@ bool LCodeGen::GenerateJumpTable() {
|
| Deoptimizer::JumpTableEntry* table_entry = jump_table_[i];
|
| __ Bind(&table_entry->label);
|
|
|
| - Deoptimizer::BailoutType type = table_entry->bailout_type;
|
| Address entry = table_entry->address;
|
| - int id = Deoptimizer::GetDeoptimizationId(isolate(), entry, type);
|
| - DCHECK_NE(Deoptimizer::kNotDeoptimizationEntry, id);
|
| - Comment(";;; jump table entry %d: deoptimization bailout %d.", i, id);
|
| DeoptComment(table_entry->reason);
|
|
|
| // Second-level deopt table entries are contiguous and small, so instead
|
| @@ -1053,14 +1049,13 @@ void LCodeGen::DeoptimizeBranch(
|
| DeoptComment(reason);
|
| __ Call(entry, RelocInfo::RUNTIME_ENTRY);
|
| } else {
|
| + Deoptimizer::JumpTableEntry* table_entry =
|
| + new (zone()) Deoptimizer::JumpTableEntry(entry, reason, bailout_type,
|
| + !frame_is_built_);
|
| // We often have several deopts to the same entry, reuse the last
|
| // jump entry if this is the case.
|
| - if (jump_table_.is_empty() || (jump_table_.last()->address != entry) ||
|
| - (jump_table_.last()->bailout_type != bailout_type) ||
|
| - (jump_table_.last()->needs_frame != !frame_is_built_)) {
|
| - Deoptimizer::JumpTableEntry* table_entry =
|
| - new (zone()) Deoptimizer::JumpTableEntry(entry, reason, bailout_type,
|
| - !frame_is_built_);
|
| + if (jump_table_.is_empty() ||
|
| + !table_entry->IsEquivalentTo(*jump_table_.last())) {
|
| jump_table_.Add(table_entry, zone());
|
| }
|
| __ B(&jump_table_.last()->label, branch_type, reg, bit);
|
|
|