Commit 88021e64 authored by palfia@homejinni.com's avatar palfia@homejinni.com

MIPS: Use compare nil ic only for non-strict equality.

Port r15045 (cce366f)

Original commit message:
Strict-equality only has one check and cannot deopt. Should therefore not be part of the stub.

BUG=

Review URL: https://codereview.chromium.org/16690008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent eb7e2771
...@@ -4799,19 +4799,15 @@ void FullCodeGenerator::EmitLiteralCompareNil(CompareOperation* expr, ...@@ -4799,19 +4799,15 @@ void FullCodeGenerator::EmitLiteralCompareNil(CompareOperation* expr,
VisitForAccumulatorValue(sub_expr); VisitForAccumulatorValue(sub_expr);
PrepareForBailoutBeforeSplit(expr, true, if_true, if_false); PrepareForBailoutBeforeSplit(expr, true, if_true, if_false);
EqualityKind kind = expr->op() == Token::EQ_STRICT
? kStrictEquality : kNonStrictEquality;
__ mov(a0, result_register()); __ mov(a0, result_register());
if (kind == kStrictEquality) { if (expr->op() == Token::EQ_STRICT) {
Heap::RootListIndex nil_value = nil == kNullValue ? Heap::RootListIndex nil_value = nil == kNullValue ?
Heap::kNullValueRootIndex : Heap::kNullValueRootIndex :
Heap::kUndefinedValueRootIndex; Heap::kUndefinedValueRootIndex;
__ LoadRoot(a1, nil_value); __ LoadRoot(a1, nil_value);
Split(eq, a0, Operand(a1), if_true, if_false, fall_through); Split(eq, a0, Operand(a1), if_true, if_false, fall_through);
} else { } else {
Handle<Code> ic = CompareNilICStub::GetUninitialized(isolate(), Handle<Code> ic = CompareNilICStub::GetUninitialized(isolate(), nil);
kNonStrictEquality,
nil);
CallIC(ic, RelocInfo::CODE_TARGET, expr->CompareOperationFeedbackId()); CallIC(ic, RelocInfo::CODE_TARGET, expr->CompareOperationFeedbackId());
Split(ne, v0, Operand(zero_reg), if_true, if_false, fall_through); Split(ne, v0, Operand(zero_reg), if_true, if_false, fall_through);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment