Index: src/mips/lithium-codegen-mips.cc |
diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc |
index 65b4a575f7703d1d8394808141c0b2708b91e71f..62961ee47aaa5ab444b47a32ba68b15bf2746a68 100644 |
--- a/src/mips/lithium-codegen-mips.cc |
+++ b/src/mips/lithium-codegen-mips.cc |
@@ -789,14 +789,6 @@ void LCodeGen::DeoptimizeIf(Condition cc, |
} |
-void LCodeGen::SoftDeoptimize(LEnvironment* environment, |
- Register src1, |
- const Operand& src2) { |
- ASSERT(!info()->IsStub()); |
- DeoptimizeIf(al, environment, Deoptimizer::SOFT, src1, src2); |
-} |
- |
- |
void LCodeGen::RegisterDependentCodeForEmbeddedMaps(Handle<Code> code) { |
ZoneList<Handle<Map> > maps(1, zone()); |
int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT); |
@@ -5629,11 +5621,15 @@ void LCodeGen::DoLazyBailout(LLazyBailout* instr) { |
void LCodeGen::DoDeoptimize(LDeoptimize* instr) { |
- if (instr->hydrogen_value()->IsSoftDeoptimize()) { |
- SoftDeoptimize(instr->environment(), zero_reg, Operand(zero_reg)); |
- } else { |
- DeoptimizeIf(al, instr->environment(), zero_reg, Operand(zero_reg)); |
- } |
+ Deoptimizer::BailoutType type = instr->hydrogen()->type(); |
+ // TODO(danno): Stubs expect all deopts to be lazy for historical reasons (the |
+ // needed return address), even though the implementation of LAZY and EAGER is |
+ // now identical. When LAZY is eventually completely folded into EAGER, remove |
+ // the special case below. |
+ if (info()->IsStub() && type == Deoptimizer::EAGER) { |
+ type = Deoptimizer::LAZY; |
+ } |
+ DeoptimizeIf(al, instr->environment(), type, zero_reg, Operand(zero_reg)); |
} |