| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index b14fa8b34a851065decdce931d56591ef8a64e57..c0723ffb43c5bb61c6f377c6adb76d64f47a4cc8 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -1794,11 +1794,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);
|
| }
|
|
|
|
|