Chromium Code Reviews| Index: src/x64/ic-x64.cc |
| =================================================================== |
| --- src/x64/ic-x64.cc (revision 2367) |
| +++ src/x64/ic-x64.cc (working copy) |
| @@ -212,11 +212,9 @@ |
| __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize)); // receiver |
| __ testl(rdx, Immediate(kSmiTagMask)); |
| __ j(zero, &invoke); |
| - __ movq(rcx, FieldOperand(rdx, HeapObject::kMapOffset)); |
| - __ movzxbq(rcx, FieldOperand(rcx, Map::kInstanceTypeOffset)); |
| - __ cmpq(rcx, Immediate(static_cast<int8_t>(JS_GLOBAL_OBJECT_TYPE))); |
| + __ CmpObjectType(rdx, JS_GLOBAL_OBJECT_TYPE, rcx); |
| __ j(equal, &global); |
| - __ cmpq(rcx, Immediate(static_cast<int8_t>(JS_BUILTINS_OBJECT_TYPE))); |
| + __ CmpInstanceType(rcx, JS_BUILTINS_OBJECT_TYPE); |
| __ j(not_equal, &invoke); |
|
Lasse Reichstein
2009/07/07 09:39:36
Doesn't this do two loads of the instance type byt
William Hesse
2009/07/08 07:53:43
Yes, but only as two identical Operands. I don't
|
| // Patch the receiver on the stack. |