Home | History | Annotate | Download | only in ic

Lines Matching refs:Code

2 // Use of this source code is governed by a BSD-style license that can be
151 static_cast<int>(pc() - function->code()->instruction_start());
184 // To improve the performance of the (much used) IC code, we unfold a few
185 // levels of the stack frame iteration code. This yields a ~35% speedup when
235 Code* target = this->target();
236 Code::Kind kind = target->kind();
237 if (kind == Code::BINARY_OP_IC) {
239 } else if (kind == Code::COMPARE_IC) {
241 } else if (kind == Code::TO_BOOLEAN_IC) {
256 bool IC::ShouldPushPopSlotAndVector(Code::Kind kind) {
257 if (kind == Code::LOAD_IC || kind == Code::LOAD_GLOBAL_IC ||
258 kind == Code::KEYED_LOAD_IC) {
261 if (kind == Code::STORE_IC || kind == Code::KEYED_STORE_IC) {
267 InlineCacheState IC::StateFromCode(Code* code) {
268 Isolate* isolate = code->GetIsolate();
269 switch (code->kind()) {
270 case Code::BINARY_OP_IC: {
271 BinaryOpICState state(isolate, code->extra_ic_state());
274 case Code::COMPARE_IC: {
275 CompareICStub stub(isolate, code->extra_ic_state());
278 case Code::TO_BOOLEAN_IC: {
279 ToBooleanICStub stub(isolate, code->extra_ic_state());
283 if (code->is_debug_stub()) return UNINITIALIZED;
296 // Find the function on the stack and both the active code for the
297 // function and the original code.
380 // Remove the target from the code cache if it became invalid
439 Code* host = host_function->shared()->code();
441 if (host->kind() == Code::FUNCTION) {
452 void IC::PostPatching(Address address, Code* target, Code* old_target) {
464 Code* host =
465 isolate->inner_pointer_to_code_cache()->GetCacheEntry(address)->code;
466 if (host->kind() != Code::FUNCTION) return;
468 // Not all Code objects have TypeFeedbackInfo.
491 Code* target = GetTargetAtAddress(address, constant_pool);
496 if (target->kind() == Code::COMPARE_IC) {
501 void CompareIC::Clear(Isolate* isolate, Address address, Code* target,
836 // Currently only load and store ICs support non-code handlers.
1099 Handle<Object> code;
1102 code = slow_stub();
1105 code = LoadNonExistent(receiver_map(), lookup->name());
1118 code = slow_stub();
1129 code = slow_stub();
1132 if (code.is_null()) code = ComputeHandler(lookup);
1135 PatchCache(lookup->name(), code);
1272 Handle<Code> code = Handle<Code>::cast(handler);
1273 DCHECK_EQ(Code::ExtractCacheHolderFromFlags(code->flags()), flag);
1274 Map::UpdateCodeCache(stub_holder_map, lookup->name(), code);
1294 // Use specialized code for getting prototype of functions.
1301 Handle<Code> stub;
1423 return Handle<Code>::null();
1486 Handle<Code> code = compiler.CompileLoadCallback(
1488 return code;
1506 Handle<Code> code =
1508 return code;
1520 Handle<Code> code = compiler.CompileLoadGlobal(cell, lookup->name(),
1522 return code;
1899 static Handle<Code> PropertyCellStoreHandler(
1908 auto code = stub.GetCodeCopyFromTemplate(holder, cell);
1910 HeapObject::UpdateMapCodeCache(receiver, name, code);
1911 return code;
2036 return Handle<Code>::null();
2056 Handle<Code> code = PropertyCellStoreHandler(
2060 return code;
2081 // TODO(ishell): don't hard-code language mode into the handler because
2086 Handle<Code> code = compiler.CompileStoreCallback(
2088 return code;
2099 Handle<Code> code = compiler.CompileStoreCallback(
2102 return code;
2123 auto code = PropertyCellStoreHandler(isolate(), receiver,
2126 return code;
2295 Handle<Code> stub;
2335 // TODO(mvstanton): The code below is doing pessimistic elements
2345 Handle<Code> stub =
2801 // Do not try to update the target if the code was marked for lazy
2803 // code objects, an attempt to access the target could fail.)
2813 Handle<Code> new_target;
2857 // Patch the inlined smi code as necessary.
2893 Code* CompareIC::GetRawUninitialized(Isolate* isolate, Token::Value op) {
2897 Code* code = NULL;
2898 CHECK(stub.FindCodeInCache(&code));
2899 return code;
2902 Code* CompareIC::UpdateCaches(Handle<Object> x, Handle<Object> y) {
2917 Handle<Code> new_target = stub.GetCode();
2956 // Activate inlined smi code.
2965 // Used from CompareICStub::GenerateMiss in code-stubs-<arch>.cc.
2986 Handle<Code> code = stub.GetCode();
2987 set_target(*code);
3008 ToBooleanIC(pc, line, column, *code, ToString(old_hints).c_str(),