| Index: src/x64/ic-x64.cc
|
| ===================================================================
|
| --- src/x64/ic-x64.cc (revision 7267)
|
| +++ src/x64/ic-x64.cc (working copy)
|
| @@ -579,7 +579,7 @@
|
| rax,
|
| NULL,
|
| &slow);
|
| - __ IncrementCounter(&Counters::keyed_load_generic_smi, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_load_generic_smi(), 1);
|
| __ ret(0);
|
|
|
| __ bind(&check_number_dictionary);
|
| @@ -601,7 +601,7 @@
|
| // Slow case: Jump to runtime.
|
| // rdx: receiver
|
| // rax: key
|
| - __ IncrementCounter(&Counters::keyed_load_generic_slow, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_load_generic_slow(), 1);
|
| GenerateRuntimeGetProperty(masm);
|
|
|
| __ bind(&check_string);
|
| @@ -652,7 +652,7 @@
|
| __ movzxbq(rcx, FieldOperand(rbx, Map::kInstanceSizeOffset));
|
| __ addq(rcx, rdi);
|
| __ movq(rax, FieldOperand(rdx, rcx, times_pointer_size, 0));
|
| - __ IncrementCounter(&Counters::keyed_load_generic_lookup_cache, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_load_generic_lookup_cache(), 1);
|
| __ ret(0);
|
|
|
| // Load property array property.
|
| @@ -660,7 +660,7 @@
|
| __ movq(rax, FieldOperand(rdx, JSObject::kPropertiesOffset));
|
| __ movq(rax, FieldOperand(rax, rdi, times_pointer_size,
|
| FixedArray::kHeaderSize));
|
| - __ IncrementCounter(&Counters::keyed_load_generic_lookup_cache, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_load_generic_lookup_cache(), 1);
|
| __ ret(0);
|
|
|
| // Do a quick inline probe of the receiver's dictionary, if it
|
| @@ -675,7 +675,7 @@
|
| GenerateGlobalInstanceTypeCheck(masm, rcx, &slow);
|
|
|
| GenerateDictionaryLoad(masm, &slow, rbx, rax, rcx, rdi, rax);
|
| - __ IncrementCounter(&Counters::keyed_load_generic_symbol, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_load_generic_symbol(), 1);
|
| __ ret(0);
|
|
|
| __ bind(&index_string);
|
| @@ -880,7 +880,8 @@
|
| Code::kNoExtraICState,
|
| NORMAL,
|
| argc);
|
| - StubCache::GenerateProbe(masm, flags, rdx, rcx, rbx, rax);
|
| + Isolate::Current()->stub_cache()->GenerateProbe(masm, flags, rdx, rcx, rbx,
|
| + rax);
|
|
|
| // If the stub cache probing failed, the receiver might be a value.
|
| // For value objects, we use the map of the prototype objects for
|
| @@ -916,7 +917,8 @@
|
|
|
| // Probe the stub cache for the value object.
|
| __ bind(&probe);
|
| - StubCache::GenerateProbe(masm, flags, rdx, rcx, rbx, no_reg);
|
| + Isolate::Current()->stub_cache()->GenerateProbe(masm, flags, rdx, rcx, rbx,
|
| + no_reg);
|
|
|
| __ bind(&miss);
|
| }
|
| @@ -986,9 +988,9 @@
|
| // -----------------------------------
|
|
|
| if (id == IC::kCallIC_Miss) {
|
| - __ IncrementCounter(&Counters::call_miss, 1);
|
| + __ IncrementCounter(COUNTERS->call_miss(), 1);
|
| } else {
|
| - __ IncrementCounter(&Counters::keyed_call_miss, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_call_miss(), 1);
|
| }
|
|
|
| // Get the receiver of the function from the stack; 1 ~ return address.
|
| @@ -1114,7 +1116,7 @@
|
|
|
| GenerateFastArrayLoad(
|
| masm, rdx, rcx, rax, rbx, rdi, &check_number_dictionary, &slow_load);
|
| - __ IncrementCounter(&Counters::keyed_call_generic_smi_fast, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_call_generic_smi_fast(), 1);
|
|
|
| __ bind(&do_call);
|
| // receiver in rdx is not used after this point.
|
| @@ -1132,13 +1134,13 @@
|
| __ SmiToInteger32(rbx, rcx);
|
| // ebx: untagged index
|
| GenerateNumberDictionaryLoad(masm, &slow_load, rax, rcx, rbx, r9, rdi, rdi);
|
| - __ IncrementCounter(&Counters::keyed_call_generic_smi_dict, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_call_generic_smi_dict(), 1);
|
| __ jmp(&do_call);
|
|
|
| __ bind(&slow_load);
|
| // This branch is taken when calling KeyedCallIC_Miss is neither required
|
| // nor beneficial.
|
| - __ IncrementCounter(&Counters::keyed_call_generic_slow_load, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_call_generic_slow_load(), 1);
|
| __ EnterInternalFrame();
|
| __ push(rcx); // save the key
|
| __ push(rdx); // pass the receiver
|
| @@ -1165,11 +1167,11 @@
|
| __ j(not_equal, &lookup_monomorphic_cache);
|
|
|
| GenerateDictionaryLoad(masm, &slow_load, rbx, rcx, rax, rdi, rdi);
|
| - __ IncrementCounter(&Counters::keyed_call_generic_lookup_dict, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_call_generic_lookup_dict(), 1);
|
| __ jmp(&do_call);
|
|
|
| __ bind(&lookup_monomorphic_cache);
|
| - __ IncrementCounter(&Counters::keyed_call_generic_lookup_cache, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_call_generic_lookup_cache(), 1);
|
| GenerateMonomorphicCacheProbe(masm, argc, Code::KEYED_CALL_IC);
|
| // Fall through on miss.
|
|
|
| @@ -1180,7 +1182,7 @@
|
| // - the value loaded is not a function,
|
| // - there is hope that the runtime will create a monomorphic call stub
|
| // that will get fetched next time.
|
| - __ IncrementCounter(&Counters::keyed_call_generic_slow, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_call_generic_slow(), 1);
|
| GenerateMiss(masm, argc);
|
|
|
| __ bind(&index_string);
|
| @@ -1238,7 +1240,8 @@
|
| Code::Flags flags = Code::ComputeFlags(Code::LOAD_IC,
|
| NOT_IN_LOOP,
|
| MONOMORPHIC);
|
| - StubCache::GenerateProbe(masm, flags, rax, rcx, rbx, rdx);
|
| + Isolate::Current()->stub_cache()->GenerateProbe(masm, flags, rax, rcx, rbx,
|
| + rdx);
|
|
|
| // Cache miss: Jump to runtime.
|
| StubCompiler::GenerateLoadMiss(masm, Code::LOAD_IC);
|
| @@ -1273,7 +1276,7 @@
|
| // -- rsp[0] : return address
|
| // -----------------------------------
|
|
|
| - __ IncrementCounter(&Counters::load_miss, 1);
|
| + __ IncrementCounter(COUNTERS->load_miss(), 1);
|
|
|
| __ pop(rbx);
|
| __ push(rax); // receiver
|
| @@ -1356,7 +1359,7 @@
|
| // (-1) or we should be clearing the inlined version.
|
| ASSERT(*reinterpret_cast<int*>(offset_address) == kMaxInt - 1 ||
|
| *reinterpret_cast<int*>(offset_address) == -1 ||
|
| - (offset == 0 && map == Heap::null_value()));
|
| + (offset == 0 && map == HEAP->null_value()));
|
| *reinterpret_cast<int*>(offset_address) = offset - kHeapObjectTag;
|
|
|
| // Patch the offset in the write-barrier code. The offset is the
|
| @@ -1366,7 +1369,7 @@
|
| // (-1) or we should be clearing the inlined version.
|
| ASSERT(*reinterpret_cast<int*>(offset_address) == kMaxInt ||
|
| *reinterpret_cast<int*>(offset_address) == -1 ||
|
| - (offset == 0 && map == Heap::null_value()));
|
| + (offset == 0 && map == HEAP->null_value()));
|
| *reinterpret_cast<int*>(offset_address) = offset - kHeapObjectTag;
|
|
|
| return true;
|
| @@ -1417,7 +1420,7 @@
|
| // -- rsp[0] : return address
|
| // -----------------------------------
|
|
|
| - __ IncrementCounter(&Counters::keyed_load_miss, 1);
|
| + __ IncrementCounter(COUNTERS->keyed_load_miss(), 1);
|
|
|
| __ pop(rbx);
|
| __ push(rdx); // receiver
|
| @@ -1461,7 +1464,8 @@
|
| NOT_IN_LOOP,
|
| MONOMORPHIC,
|
| strict_mode);
|
| - StubCache::GenerateProbe(masm, flags, rdx, rcx, rbx, no_reg);
|
| + Isolate::Current()->stub_cache()->GenerateProbe(masm, flags, rdx, rcx, rbx,
|
| + no_reg);
|
|
|
| // Cache miss: Jump to runtime.
|
| GenerateMiss(masm);
|
| @@ -1558,11 +1562,11 @@
|
| GenerateStringDictionaryReceiverCheck(masm, rdx, rbx, rdi, &miss);
|
|
|
| GenerateDictionaryStore(masm, &miss, rbx, rcx, rax, r8, r9);
|
| - __ IncrementCounter(&Counters::store_normal_hit, 1);
|
| + __ IncrementCounter(COUNTERS->store_normal_hit(), 1);
|
| __ ret(0);
|
|
|
| __ bind(&miss);
|
| - __ IncrementCounter(&Counters::store_normal_miss, 1);
|
| + __ IncrementCounter(COUNTERS->store_normal_miss(), 1);
|
| GenerateMiss(masm);
|
| }
|
|
|
|
|