Drop useless HForceRepresentation in BinaryOpStub.
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/27167002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
4b973b8995
commit
9724f06211
@ -932,17 +932,15 @@ HValue* CodeStubGraphBuilder<BinaryOpStub>::BuildCodeInitializedStub() {
|
|||||||
result = EnforceNumberType(result, result_type);
|
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()) {
|
if (stub->CanReuseDoubleBox()) {
|
||||||
HValue* reuse = (stub->mode() == OVERWRITE_LEFT) ? left : right;
|
HValue* operand = (stub->mode() == OVERWRITE_LEFT) ? left : right;
|
||||||
IfBuilder if_heap_number(this);
|
IfBuilder if_heap_number(this);
|
||||||
if_heap_number.IfNot<HIsSmiAndBranch>(reuse);
|
if_heap_number.IfNot<HIsSmiAndBranch>(operand);
|
||||||
if_heap_number.Then();
|
if_heap_number.Then();
|
||||||
HValue* res_val = Add<HForceRepresentation>(result,
|
Add<HStoreNamedField>(operand, HObjectAccess::ForHeapNumberValue(), result);
|
||||||
Representation::Double());
|
Push(operand);
|
||||||
HObjectAccess access = HObjectAccess::ForHeapNumberValue();
|
|
||||||
Add<HStoreNamedField>(reuse, access, res_val);
|
|
||||||
Push(reuse);
|
|
||||||
if_heap_number.Else();
|
if_heap_number.Else();
|
||||||
Push(result);
|
Push(result);
|
||||||
if_heap_number.End();
|
if_heap_number.End();
|
||||||
|
Loading…
Reference in New Issue
Block a user