Index: src/mips64/lithium-codegen-mips64.cc |
diff --git a/src/mips64/lithium-codegen-mips64.cc b/src/mips64/lithium-codegen-mips64.cc |
index b50d7c266df5a1472ffda325b426054d2d226c04..1a3d8fb62812749419bca06a14f71aa0b6353a90 100644 |
--- a/src/mips64/lithium-codegen-mips64.cc |
+++ b/src/mips64/lithium-codegen-mips64.cc |
@@ -4973,11 +4973,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. |
@@ -4993,7 +4994,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)) { |
@@ -5001,6 +5002,7 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr) { |
__ mfhc1(scratch1, double_scratch); // Get exponent/sign bits. |
__ And(scratch1, scratch1, Operand(HeapNumber::kSignMask)); |
+ __ RecordComment("Deferred TaggedToI: minus zero"); |
DeoptimizeIf(ne, instr->environment(), scratch1, Operand(zero_reg)); |
} |
} |