Fix potential deopt-loop introduced in r17143.
TBR=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/26805004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
1384cc0a3d
commit
caeb19fa28
@ -584,11 +584,18 @@ void BinaryOpStub::UpdateStatus(Handle<Object> left,
|
|||||||
op_ == Token::ADD);
|
op_ == Token::ADD);
|
||||||
|
|
||||||
if (old_state == GetExtraICState()) {
|
if (old_state == GetExtraICState()) {
|
||||||
// Since the fpu is to precise, we might bail out on numbers which
|
// Tagged operations can lead to non-truncating HChanges
|
||||||
// actually would truncate with 64 bit precision.
|
if (left->IsUndefined()) {
|
||||||
ASSERT(!CpuFeatures::IsSupported(SSE2) &&
|
left_state_ = GENERIC;
|
||||||
result_state_ <= INT32);
|
} else if (right->IsUndefined()) {
|
||||||
result_state_ = NUMBER;
|
right_state_ = GENERIC;
|
||||||
|
} else {
|
||||||
|
// Since the fpu is to precise, we might bail out on numbers which
|
||||||
|
// actually would truncate with 64 bit precision.
|
||||||
|
ASSERT(!CpuFeatures::IsSupported(SSE2) &&
|
||||||
|
result_state_ <= INT32);
|
||||||
|
result_state_ = NUMBER;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user