| Index: src/arm/code-stubs-arm.cc
|
| diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
|
| index f2b0a4d4864ea657e3748097988e6d3bd30a5c16..b517437fcd3366cc42b7e017e054f02d9070c699 100644
|
| --- a/src/arm/code-stubs-arm.cc
|
| +++ b/src/arm/code-stubs-arm.cc
|
| @@ -3532,16 +3532,17 @@ void CompareICStub::GenerateStrings(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| -void CompareICStub::GenerateObjects(MacroAssembler* masm) {
|
| - DCHECK(state() == CompareICState::OBJECT);
|
| +void CompareICStub::GenerateReceivers(MacroAssembler* masm) {
|
| + DCHECK_EQ(CompareICState::RECEIVER, state());
|
| Label miss;
|
| __ and_(r2, r1, Operand(r0));
|
| __ JumpIfSmi(r2, &miss);
|
|
|
| - __ CompareObjectType(r0, r2, r2, JS_OBJECT_TYPE);
|
| - __ b(ne, &miss);
|
| - __ CompareObjectType(r1, r2, r2, JS_OBJECT_TYPE);
|
| - __ b(ne, &miss);
|
| + STATIC_ASSERT(LAST_TYPE == LAST_JS_RECEIVER_TYPE);
|
| + __ CompareObjectType(r0, r2, r2, FIRST_JS_RECEIVER_TYPE);
|
| + __ b(lt, &miss);
|
| + __ CompareObjectType(r1, r2, r2, FIRST_JS_RECEIVER_TYPE);
|
| + __ b(lt, &miss);
|
|
|
| DCHECK(GetCondition() == eq);
|
| __ sub(r0, r0, Operand(r1));
|
| @@ -3552,7 +3553,7 @@ void CompareICStub::GenerateObjects(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| -void CompareICStub::GenerateKnownObjects(MacroAssembler* masm) {
|
| +void CompareICStub::GenerateKnownReceivers(MacroAssembler* masm) {
|
| Label miss;
|
| Handle<WeakCell> cell = Map::WeakCellForMap(known_map_);
|
| __ and_(r2, r1, Operand(r0));
|
|
|