| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index ff8aeefe2c73d4ed19bb5cc1417232ee3c14db2a..4129db69db5c5e405b3fee5741b7c9d207bd4657 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -1793,11 +1793,10 @@ void LCodeGen::EmitClassOfTest(Label* is_true,
|
| // Faster code path to avoid two compares: subtract lower bound from the
|
| // actual type and do a signed compare with the width of the type range.
|
| __ movq(temp, FieldOperand(input, HeapObject::kMapOffset));
|
| - __ movq(temp2, FieldOperand(temp, Map::kInstanceTypeOffset));
|
| - __ subb(temp2, Immediate(FIRST_NONCALLABLE_SPEC_OBJECT_TYPE));
|
| - __ cmpb(temp2,
|
| - Immediate(static_cast<int8_t>(LAST_NONCALLABLE_SPEC_OBJECT_TYPE -
|
| - FIRST_NONCALLABLE_SPEC_OBJECT_TYPE)));
|
| + __ movzxbl(temp2, FieldOperand(temp, Map::kInstanceTypeOffset));
|
| + __ subq(temp2, Immediate(FIRST_NONCALLABLE_SPEC_OBJECT_TYPE));
|
| + __ cmpq(temp2, Immediate(LAST_NONCALLABLE_SPEC_OBJECT_TYPE -
|
| + FIRST_NONCALLABLE_SPEC_OBJECT_TYPE));
|
| __ j(above, is_false);
|
| }
|
|
|
|
|