HELLO·Android
系统源代码
IT资讯
技术文章
我的收藏
注册
登录
-
我收藏的文章
创建代码块
我的代码块
我的账号
Pie
|
9.0.0_r8
下载
查看原文件
收藏
根目录
external
v8
src
ic
ic.cc
// Copyright 2012 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "src/ic/ic.h" #include
#include "src/accessors.h" #include "src/api-arguments-inl.h" #include "src/api.h" #include "src/arguments.h" #include "src/base/bits.h" #include "src/codegen.h" #include "src/conversions.h" #include "src/execution.h" #include "src/field-type.h" #include "src/frames-inl.h" #include "src/ic/call-optimization.h" #include "src/ic/handler-compiler.h" #include "src/ic/handler-configuration-inl.h" #include "src/ic/ic-inl.h" #include "src/ic/ic-stats.h" #include "src/ic/stub-cache.h" #include "src/isolate-inl.h" #include "src/macro-assembler.h" #include "src/prototype.h" #include "src/runtime-profiler.h" #include "src/runtime/runtime-utils.h" #include "src/runtime/runtime.h" #include "src/tracing/trace-event.h" #include "src/tracing/tracing-category-observer.h" namespace v8 { namespace internal { char IC::TransitionMarkFromState(IC::State state) { switch (state) { case UNINITIALIZED: return '0'; case PREMONOMORPHIC: return '.'; case MONOMORPHIC: return '1'; case RECOMPUTE_HANDLER: return '^'; case POLYMORPHIC: return 'P'; case MEGAMORPHIC: return 'N'; case GENERIC: return 'G'; } UNREACHABLE(); return 0; } const char* GetTransitionMarkModifier(KeyedAccessStoreMode mode) { if (mode == STORE_NO_TRANSITION_HANDLE_COW) return ".COW"; if (mode == STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS) { return ".IGNORE_OOB"; } if (IsGrowStoreMode(mode)) return ".GROW"; return ""; } #define TRACE_GENERIC_IC(reason) set_slow_stub_reason(reason); void IC::TraceIC(const char* type, Handle
name) { if (FLAG_ic_stats) { if (AddressIsDeoptimizedCode()) return; DCHECK(UseVector()); State new_state = nexus()->StateFromFeedback(); TraceIC(type, name, state(), new_state); } } Address IC::GetAbstractPC(int* line, int* column) const { JavaScriptFrameIterator it(isolate()); JavaScriptFrame* frame = it.frame(); DCHECK(!frame->is_builtin()); int position = frame->position(); Object* maybe_script = frame->function()->shared()->script(); if (maybe_script->IsScript()) { Handle
登录后可以享受更多权益
您还没有登录,登录后您可以:
收藏Android系统代码
收藏喜欢的文章
多个平台共享账号
去登录
首次使用?从这里
注册