| Index: src/x64/ic-x64.cc
|
| diff --git a/src/x64/ic-x64.cc b/src/x64/ic-x64.cc
|
| index 2774fbeebe9c35113dbc2b1a079e03871808b3af..64b1f063912e1dd177b6c308919a0661e5270f83 100644
|
| --- a/src/x64/ic-x64.cc
|
| +++ b/src/x64/ic-x64.cc
|
| @@ -630,7 +630,7 @@ void KeyedLoadIC::GenerateGeneric(MacroAssembler* masm) {
|
| // Load the key (consisting of map and symbol) from the cache and
|
| // check for match.
|
| ExternalReference cache_keys
|
| - = ExternalReference::keyed_lookup_cache_keys();
|
| + = ExternalReference::keyed_lookup_cache_keys(masm->isolate());
|
| __ movq(rdi, rcx);
|
| __ shl(rdi, Immediate(kPointerSizeLog2 + 1));
|
| __ movq(kScratchRegister, cache_keys);
|
| @@ -641,7 +641,7 @@ void KeyedLoadIC::GenerateGeneric(MacroAssembler* masm) {
|
|
|
| // Get field offset, which is a 32-bit integer.
|
| ExternalReference cache_field_offsets
|
| - = ExternalReference::keyed_lookup_cache_field_offsets();
|
| + = ExternalReference::keyed_lookup_cache_field_offsets(masm->isolate());
|
| __ movq(kScratchRegister, cache_field_offsets);
|
| __ movl(rdi, Operand(kScratchRegister, rcx, times_4, 0));
|
| __ movzxbq(rcx, FieldOperand(rbx, Map::kInObjectPropertiesOffset));
|
| @@ -750,8 +750,11 @@ void KeyedLoadIC::GenerateIndexedInterceptor(MacroAssembler* masm) {
|
| __ push(rcx); // return address
|
|
|
| // Perform tail call to the entry.
|
| - __ TailCallExternalReference(ExternalReference(
|
| - IC_Utility(kKeyedLoadPropertyWithInterceptor)), 2, 1);
|
| + __ TailCallExternalReference(
|
| + ExternalReference(IC_Utility(kKeyedLoadPropertyWithInterceptor),
|
| + masm->isolate()),
|
| + 2,
|
| + 1);
|
|
|
| __ bind(&slow);
|
| GenerateMiss(masm);
|
| @@ -1006,7 +1009,7 @@ static void GenerateCallMiss(MacroAssembler* masm, int argc, IC::UtilityId id) {
|
| // Call the entry.
|
| CEntryStub stub(1);
|
| __ movq(rax, Immediate(2));
|
| - __ movq(rbx, ExternalReference(IC_Utility(id)));
|
| + __ movq(rbx, ExternalReference(IC_Utility(id), masm->isolate()));
|
| __ CallStub(&stub);
|
|
|
| // Move result to rdi and exit the internal frame.
|
| @@ -1284,7 +1287,8 @@ void LoadIC::GenerateMiss(MacroAssembler* masm) {
|
| __ push(rbx); // return address
|
|
|
| // Perform tail call to the entry.
|
| - ExternalReference ref = ExternalReference(IC_Utility(kLoadIC_Miss));
|
| + ExternalReference ref =
|
| + ExternalReference(IC_Utility(kLoadIC_Miss), masm->isolate());
|
| __ TailCallExternalReference(ref, 2, 1);
|
| }
|
|
|
| @@ -1428,7 +1432,8 @@ void KeyedLoadIC::GenerateMiss(MacroAssembler* masm) {
|
| __ push(rbx); // return address
|
|
|
| // Perform tail call to the entry.
|
| - ExternalReference ref = ExternalReference(IC_Utility(kKeyedLoadIC_Miss));
|
| + ExternalReference ref
|
| + = ExternalReference(IC_Utility(kKeyedLoadIC_Miss), masm->isolate());
|
| __ TailCallExternalReference(ref, 2, 1);
|
| }
|
|
|
| @@ -1487,7 +1492,8 @@ void StoreIC::GenerateMiss(MacroAssembler* masm) {
|
| __ push(rbx); // return address
|
|
|
| // Perform tail call to the entry.
|
| - ExternalReference ref = ExternalReference(IC_Utility(kStoreIC_Miss));
|
| + ExternalReference ref =
|
| + ExternalReference(IC_Utility(kStoreIC_Miss), masm->isolate());
|
| __ TailCallExternalReference(ref, 3, 1);
|
| }
|
|
|
| @@ -1540,7 +1546,8 @@ void StoreIC::GenerateArrayLength(MacroAssembler* masm) {
|
| __ push(value);
|
| __ push(scratch); // return address
|
|
|
| - ExternalReference ref = ExternalReference(IC_Utility(kStoreIC_ArrayLength));
|
| + ExternalReference ref =
|
| + ExternalReference(IC_Utility(kStoreIC_ArrayLength), masm->isolate());
|
| __ TailCallExternalReference(ref, 2, 1);
|
|
|
| __ bind(&miss);
|
| @@ -1629,7 +1636,8 @@ void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
|
| __ push(rbx); // return address
|
|
|
| // Do tail-call to runtime routine.
|
| - ExternalReference ref = ExternalReference(IC_Utility(kKeyedStoreIC_Miss));
|
| + ExternalReference ref =
|
| + ExternalReference(IC_Utility(kKeyedStoreIC_Miss), masm->isolate());
|
| __ TailCallExternalReference(ref, 3, 1);
|
| }
|
|
|
|
|