| Index: src/crankshaft/arm/lithium-codegen-arm.cc
|
| diff --git a/src/crankshaft/arm/lithium-codegen-arm.cc b/src/crankshaft/arm/lithium-codegen-arm.cc
|
| index 568efe83aeadb1f201bde1ae9dc6aea0f6f173ff..31a0472fd562563e249c62639032ccb35f1d928d 100644
|
| --- a/src/crankshaft/arm/lithium-codegen-arm.cc
|
| +++ b/src/crankshaft/arm/lithium-codegen-arm.cc
|
| @@ -2366,9 +2366,15 @@ void LCodeGen::DoStringCompareAndBranch(LStringCompareAndBranch* instr) {
|
| DCHECK(ToRegister(instr->left()).is(r1));
|
| DCHECK(ToRegister(instr->right()).is(r0));
|
|
|
| - Handle<Code> code = CodeFactory::StringCompare(isolate()).code();
|
| - CallCode(code, RelocInfo::CODE_TARGET, instr);
|
| - __ cmp(r0, Operand::Zero());
|
| + if (Token::IsOrderedRelationalCompareOp(instr->op())) {
|
| + Handle<Code> code = CodeFactory::StringCompare(isolate()).code();
|
| + CallCode(code, RelocInfo::CODE_TARGET, instr);
|
| + __ cmp(r0, Operand::Zero());
|
| + } else {
|
| + Handle<Code> code = CodeFactory::StringEqual(isolate()).code();
|
| + CallCode(code, RelocInfo::CODE_TARGET, instr);
|
| + __ CompareRoot(r0, Heap::kTrueValueRootIndex);
|
| + }
|
|
|
| EmitBranch(instr, ComputeCompareCondition(instr->op()));
|
| }
|
|
|