Index: src/x64/lithium-codegen-x64.cc |
=================================================================== |
--- src/x64/lithium-codegen-x64.cc (revision 13543) |
+++ src/x64/lithium-codegen-x64.cc (working copy) |
@@ -329,9 +329,9 @@ |
} |
} else { |
if (is_lazy_deopt) { |
- __ Call(entry, RelocInfo::RUNTIME_ENTRY); |
+ __ call(entry, RelocInfo::RUNTIME_ENTRY); |
} else { |
- __ Jump(entry, RelocInfo::RUNTIME_ENTRY); |
+ __ jmp(entry, RelocInfo::RUNTIME_ENTRY); |
} |
} |
} |
@@ -714,21 +714,25 @@ |
bool lazy_deopt = info()->IsStub(); |
if (cc == no_condition) { |
if (lazy_deopt) { |
- __ Call(entry, RelocInfo::RUNTIME_ENTRY); |
+ __ call(entry, RelocInfo::RUNTIME_ENTRY); |
} else { |
- __ Jump(entry, RelocInfo::RUNTIME_ENTRY); |
+ __ jmp(entry, RelocInfo::RUNTIME_ENTRY); |
} |
} else { |
- // 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().needs_frame != !frame_is_built_ || |
- jump_table_.last().is_lazy_deopt != lazy_deopt) { |
- JumpTableEntry table_entry(entry, !frame_is_built_, lazy_deopt); |
- jump_table_.Add(table_entry, zone()); |
+ if (!lazy_deopt && frame_is_built_) { |
+ __ j(cc, entry, RelocInfo::RUNTIME_ENTRY); |
+ } else { |
+ // 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().needs_frame != !frame_is_built_ || |
+ jump_table_.last().is_lazy_deopt != lazy_deopt) { |
+ JumpTableEntry table_entry(entry, !frame_is_built_, lazy_deopt); |
+ jump_table_.Add(table_entry, zone()); |
+ } |
+ __ j(cc, &jump_table_.last().label); |
} |
- __ j(cc, &jump_table_.last().label); |
} |
} |