Index: src/x64/lithium-codegen-x64.cc |
=================================================================== |
--- src/x64/lithium-codegen-x64.cc (revision 13219) |
+++ src/x64/lithium-codegen-x64.cc (working copy) |
@@ -617,15 +617,23 @@ |
} |
if (cc == no_condition) { |
- __ Jump(entry, RelocInfo::RUNTIME_ENTRY); |
+ if (FLAG_disable_direct_deopt) { |
+ __ Jump(entry, RelocInfo::RUNTIME_ENTRY); |
+ } else { |
+ __ jmp(entry, RelocInfo::DEOPT_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_.Add(JumpTableEntry(entry), zone()); |
+ if (FLAG_disable_direct_deopt) { |
+ // 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_.Add(JumpTableEntry(entry), zone()); |
+ } |
+ __ j(cc, &jump_table_.last().label); |
+ } else { |
+ __ j(cc, entry, RelocInfo::DEOPT_ENTRY); |
} |
- __ j(cc, &jump_table_.last().label); |
} |
} |