| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index 3e342d8382c0cc197f3315e66ce1a939c6bad233..22bf9a4853208d106f20b373adccacc36a7f2e31 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -3798,8 +3798,7 @@ void LCodeGen::DoMathRound(LMathRound* instr) {
|
| __ cvttsd2si(output_reg, xmm_scratch);
|
| // Overflow is signalled with minint.
|
| __ cmpl(output_reg, Immediate(0x1));
|
| - __ RecordComment("D2I conversion overflow");
|
| - DeoptimizeIf(overflow, instr);
|
| + DeoptimizeIf(overflow, instr, "conversion overflow");
|
| __ jmp(&done, dist);
|
|
|
| __ bind(&below_one_half);
|
| @@ -3815,8 +3814,7 @@ void LCodeGen::DoMathRound(LMathRound* instr) {
|
| __ cvttsd2si(output_reg, input_temp);
|
| // Catch minint due to overflow, and to prevent overflow when compensating.
|
| __ cmpl(output_reg, Immediate(0x1));
|
| - __ RecordComment("D2I conversion overflow");
|
| - DeoptimizeIf(overflow, instr);
|
| + DeoptimizeIf(overflow, instr, "conversion overflow");
|
|
|
| __ Cvtlsi2sd(xmm_scratch, output_reg);
|
| __ ucomisd(xmm_scratch, input_temp);
|
| @@ -3831,8 +3829,7 @@ void LCodeGen::DoMathRound(LMathRound* instr) {
|
| if (instr->hydrogen()->CheckFlag(HValue::kBailoutOnMinusZero)) {
|
| __ movq(output_reg, input_reg);
|
| __ testq(output_reg, output_reg);
|
| - __ RecordComment("Minus zero");
|
| - DeoptimizeIf(negative, instr);
|
| + DeoptimizeIf(negative, instr, "minus zero");
|
| }
|
| __ Set(output_reg, 0);
|
| __ bind(&done);
|
| @@ -4962,31 +4959,26 @@ void LCodeGen::DoDeferredTaggedToI(LTaggedToI* instr, Label* done) {
|
|
|
| __ bind(&check_false);
|
| __ CompareRoot(input_reg, Heap::kFalseValueRootIndex);
|
| - __ RecordComment("Deferred TaggedToI: cannot truncate");
|
| - DeoptimizeIf(not_equal, instr);
|
| + DeoptimizeIf(not_equal, instr, "cannot truncate");
|
| __ Set(input_reg, 0);
|
| } else {
|
| XMMRegister scratch = ToDoubleRegister(instr->temp());
|
| DCHECK(!scratch.is(xmm0));
|
| __ CompareRoot(FieldOperand(input_reg, HeapObject::kMapOffset),
|
| Heap::kHeapNumberMapRootIndex);
|
| - __ RecordComment("Deferred TaggedToI: not a heap number");
|
| - DeoptimizeIf(not_equal, instr);
|
| + DeoptimizeIf(not_equal, instr, "not a heap number");
|
| __ movsd(xmm0, FieldOperand(input_reg, HeapNumber::kValueOffset));
|
| __ cvttsd2si(input_reg, xmm0);
|
| __ Cvtlsi2sd(scratch, input_reg);
|
| __ ucomisd(xmm0, scratch);
|
| - __ RecordComment("Deferred TaggedToI: lost precision");
|
| - DeoptimizeIf(not_equal, instr);
|
| - __ RecordComment("Deferred TaggedToI: NaN");
|
| - DeoptimizeIf(parity_even, instr);
|
| + DeoptimizeIf(not_equal, instr, "lost precision");
|
| + DeoptimizeIf(parity_even, instr, "NaN");
|
| if (instr->hydrogen()->GetMinusZeroMode() == FAIL_ON_MINUS_ZERO) {
|
| __ testl(input_reg, input_reg);
|
| __ j(not_zero, done);
|
| __ movmskpd(input_reg, xmm0);
|
| __ andl(input_reg, Immediate(1));
|
| - __ RecordComment("Deferred TaggedToI: minus zero");
|
| - DeoptimizeIf(not_zero, instr);
|
| + DeoptimizeIf(not_zero, instr, "minus zero");
|
| }
|
| }
|
| }
|
|
|