| Index: src/x64/ic-x64.cc
|
| ===================================================================
|
| --- src/x64/ic-x64.cc (revision 15486)
|
| +++ src/x64/ic-x64.cc (working copy)
|
| @@ -42,8 +42,9 @@
|
| //
|
|
|
| #define __ ACCESS_MASM(masm)
|
| +#define __k __
|
| +#define __a __
|
|
|
| -
|
| static void GenerateGlobalInstanceTypeCheck(MacroAssembler* masm,
|
| Register type,
|
| Label* global_object) {
|
| @@ -570,10 +571,10 @@
|
| __ j(not_zero, &slow);
|
|
|
| // Everything is fine, call runtime.
|
| - __ pop(rcx);
|
| + __k pop(rcx);
|
| __ push(rdx); // receiver
|
| __ push(rax); // key
|
| - __ push(rcx); // return address
|
| + __k push(rcx); // return address
|
|
|
| // Perform tail call to the entry.
|
| __ TailCallExternalReference(
|
| @@ -905,7 +906,7 @@
|
| Label miss;
|
|
|
| // Get the receiver of the function from the stack.
|
| - __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
| + __a movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
|
|
| GenerateNameDictionaryReceiverCheck(masm, rdx, rax, rbx, &miss);
|
|
|
| @@ -941,7 +942,7 @@
|
| }
|
|
|
| // Get the receiver of the function from the stack; 1 ~ return address.
|
| - __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
| + __a movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
|
|
| // Enter an internal frame.
|
| {
|
| @@ -965,7 +966,8 @@
|
| // This can happen only for regular CallIC but not KeyedCallIC.
|
| if (id == IC::kCallIC_Miss) {
|
| Label invoke, global;
|
| - __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize)); // receiver
|
| + // receiver
|
| + __a movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
| __ JumpIfSmi(rdx, &invoke);
|
| __ CmpObjectType(rdx, JS_GLOBAL_OBJECT_TYPE, rcx);
|
| __ j(equal, &global);
|
| @@ -975,7 +977,7 @@
|
| // Patch the receiver on the stack.
|
| __ bind(&global);
|
| __ movq(rdx, FieldOperand(rdx, GlobalObject::kGlobalReceiverOffset));
|
| - __ movq(Operand(rsp, (argc + 1) * kPointerSize), rdx);
|
| + __a movq(Operand(rsp, (argc + 1) * kPointerSize), rdx);
|
| __ bind(&invoke);
|
| }
|
|
|
| @@ -1006,7 +1008,7 @@
|
| // -----------------------------------
|
|
|
| // Get the receiver of the function from the stack; 1 ~ return address.
|
| - __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
| + __a movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
| GenerateMonomorphicCacheProbe(masm, argc, Code::CALL_IC, extra_ic_state);
|
| GenerateMiss(masm, argc, extra_ic_state);
|
| }
|
| @@ -1024,7 +1026,7 @@
|
| // -----------------------------------
|
|
|
| // Get the receiver of the function from the stack; 1 ~ return address.
|
| - __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
| + __a movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
|
|
| Label do_call, slow_call, slow_load;
|
| Label check_number_dictionary, check_name, lookup_monomorphic_cache;
|
| @@ -1302,7 +1304,7 @@
|
| // rsp[(argc + 1) * 8] : argument 0 = receiver
|
| // -----------------------------------
|
| Label slow, notin;
|
| - __ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
| + __a movq(rdx, Operand(rsp, (argc + 1) * kPointerSize));
|
| Operand mapped_location = GenerateMappedArgumentsLookup(
|
| masm, rdx, rcx, rbx, rax, r8, ¬in, &slow);
|
| __ movq(rdi, mapped_location);
|
| @@ -1369,10 +1371,10 @@
|
| Counters* counters = masm->isolate()->counters();
|
| __ IncrementCounter(counters->load_miss(), 1);
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rax); // receiver
|
| __ push(rcx); // name
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
|
|
| // Perform tail call to the entry.
|
| ExternalReference ref =
|
| @@ -1388,10 +1390,10 @@
|
| // -- rsp[0] : return address
|
| // -----------------------------------
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rax); // receiver
|
| __ push(rcx); // name
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
|
|
| // Perform tail call to the entry.
|
| __ TailCallRuntime(Runtime::kGetProperty, 2, 1);
|
| @@ -1408,10 +1410,10 @@
|
| Counters* counters = masm->isolate()->counters();
|
| __ IncrementCounter(counters->keyed_load_miss(), 1);
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rdx); // receiver
|
| __ push(rax); // name
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
|
|
| // Perform tail call to the entry.
|
| ExternalReference ref = miss_mode == MISS_FORCE_GENERIC
|
| @@ -1429,10 +1431,10 @@
|
| // -- rsp[0] : return address
|
| // -----------------------------------
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rdx); // receiver
|
| __ push(rax); // name
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
|
|
| // Perform tail call to the entry.
|
| __ TailCallRuntime(Runtime::kKeyedGetProperty, 2, 1);
|
| @@ -1467,11 +1469,11 @@
|
| // -- rsp[0] : return address
|
| // -----------------------------------
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rdx); // receiver
|
| __ push(rcx); // name
|
| __ push(rax); // value
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
|
|
| // Perform tail call to the entry.
|
| ExternalReference ref =
|
| @@ -1511,13 +1513,13 @@
|
| // -- rdx : receiver
|
| // -- rsp[0] : return address
|
| // -----------------------------------
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rdx);
|
| __ push(rcx);
|
| __ push(rax);
|
| __ Push(Smi::FromInt(NONE)); // PropertyAttributes
|
| __ Push(Smi::FromInt(strict_mode));
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
|
|
| // Do tail-call to runtime routine.
|
| __ TailCallRuntime(Runtime::kSetProperty, 5, 1);
|
| @@ -1533,13 +1535,13 @@
|
| // -- rsp[0] : return address
|
| // -----------------------------------
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rdx); // receiver
|
| __ push(rcx); // key
|
| __ push(rax); // value
|
| __ Push(Smi::FromInt(NONE)); // PropertyAttributes
|
| __ Push(Smi::FromInt(strict_mode)); // Strict mode.
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
|
|
| // Do tail-call to runtime routine.
|
| __ TailCallRuntime(Runtime::kSetProperty, 5, 1);
|
| @@ -1554,11 +1556,11 @@
|
| // -- rsp[0] : return address
|
| // -----------------------------------
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rdx); // receiver
|
| __ push(rcx); // key
|
| __ push(rax); // value
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
|
|
| // Do tail-call to runtime routine.
|
| ExternalReference ref(IC_Utility(kStoreIC_Slow), masm->isolate());
|
| @@ -1574,11 +1576,11 @@
|
| // -- rsp[0] : return address
|
| // -----------------------------------
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rdx); // receiver
|
| __ push(rcx); // key
|
| __ push(rax); // value
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
|
|
| // Do tail-call to runtime routine.
|
| ExternalReference ref(IC_Utility(kKeyedStoreIC_Slow), masm->isolate());
|
| @@ -1594,11 +1596,11 @@
|
| // -- rsp[0] : return address
|
| // -----------------------------------
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rdx); // receiver
|
| __ push(rcx); // key
|
| __ push(rax); // value
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
|
|
| // Do tail-call to runtime routine.
|
| ExternalReference ref = miss_mode == MISS_FORCE_GENERIC
|
| @@ -1626,9 +1628,9 @@
|
| __ bind(&fail);
|
| }
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rdx);
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
| __ TailCallRuntime(Runtime::kTransitionElementsSmiToDouble, 1, 1);
|
| }
|
|
|
| @@ -1651,13 +1653,15 @@
|
| __ bind(&fail);
|
| }
|
|
|
| - __ pop(rbx);
|
| + __k pop(rbx);
|
| __ push(rdx);
|
| - __ push(rbx); // return address
|
| + __k push(rbx); // return address
|
| __ TailCallRuntime(Runtime::kTransitionElementsDoubleToObject, 1, 1);
|
| }
|
|
|
|
|
| +#undef __a
|
| +#undef __k
|
| #undef __
|
|
|
|
|
|
|