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. |