diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc index c9529a8de8..f8fde15895 100644 --- a/src/code-stubs-hydrogen.cc +++ b/src/code-stubs-hydrogen.cc @@ -932,17 +932,15 @@ HValue* CodeStubGraphBuilder::BuildCodeInitializedStub() { result = EnforceNumberType(result, result_type); } - // Reuse the double box if we are allowed to (i.e. chained binops). + // Reuse the double box of one of the operands if we are allowed to (i.e. + // chained binops). if (stub->CanReuseDoubleBox()) { - HValue* reuse = (stub->mode() == OVERWRITE_LEFT) ? left : right; + HValue* operand = (stub->mode() == OVERWRITE_LEFT) ? left : right; IfBuilder if_heap_number(this); - if_heap_number.IfNot(reuse); + if_heap_number.IfNot(operand); if_heap_number.Then(); - HValue* res_val = Add(result, - Representation::Double()); - HObjectAccess access = HObjectAccess::ForHeapNumberValue(); - Add(reuse, access, res_val); - Push(reuse); + Add(operand, HObjectAccess::ForHeapNumberValue(), result); + Push(operand); if_heap_number.Else(); Push(result); if_heap_number.End();