Index: src/mips/lithium-codegen-mips.cc |
diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc |
index 001b1f80e512cd7c46f1f2ecd1a6fe2f634bc383..d87ac5d6eb9ab12fd0762da521b0a8a036ec6bad 100644 |
--- a/src/mips/lithium-codegen-mips.cc |
+++ b/src/mips/lithium-codegen-mips.cc |
@@ -4934,11 +4934,12 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) { |
__ bind(&check_false); |
__ LoadRoot(at, Heap::kFalseValueRootIndex); |
+ __ RecordComment("Deferred TaggedToI: cannot truncate"); |
DeoptimizeIf(ne, instr->environment(), scratch2, Operand(at)); |
__ Branch(USE_DELAY_SLOT, &done); |
__ mov(input_reg, zero_reg); // In delay slot. |
} else { |
- // Deoptimize if we don't have a heap number. |
+ __ RecordComment("Deferred TaggedToI: not a heap number"); |
DeoptimizeIf(ne, instr->environment(), scratch1, Operand(at)); |
// Load the double value. |
@@ -4954,7 +4955,7 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) { |
except_flag, |
kCheckForInexactConversion); |
- // Deopt if the operation did not succeed. |
+ __ RecordComment("Deferred TaggedToI: lost precision or NaN"); |
DeoptimizeIf(ne, instr->environment(), except_flag, Operand(zero_reg)); |
if (instr->hydrogen()->CheckFlag(HValue::kBailoutOnMinusZero)) { |
@@ -4962,6 +4963,7 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) { |
__ Mfhc1(scratch1, double_scratch); |
__ And(scratch1, scratch1, Operand(HeapNumber::kSignMask)); |
+ __ RecordComment("Deferred TaggedToI: minus zero"); |
DeoptimizeIf(ne, instr->environment(), scratch1, Operand(zero_reg)); |
} |
} |