Public 型 | Public メソッド | Static Public メソッド | Static Public 変数 | Private メソッド

クラス v8::internal::Code

#include <objects.h>

v8::internal::HeapObjectを継承しています。

すべてのメンバ一覧

Public 型

enum  Flags
enum  Kind {
  FUNCTION, STUB, BUILTIN, LOAD_IC,
  KEYED_LOAD_IC, CALL_IC, STORE_IC, KEYED_STORE_IC,
  FIRST_IC_KIND = LOAD_IC, LAST_IC_KIND = KEYED_STORE_IC
}
enum  { NUMBER_OF_KINDS = LAST_IC_KIND + 1 }
enum  ICTargetState { IC_TARGET_IS_ADDRESS, IC_TARGET_IS_OBJECT }

Public メソッド

int instruction_size ()
void set_instruction_size (int value)
int relocation_size ()
void set_relocation_size (int value)
int sinfo_size ()
void set_sinfo_size (int value)
Flags flags ()
void set_flags (Flags flags)
Kind kind ()
InlineCacheState ic_state ()
PropertyType type ()
int arguments_count ()
bool is_inline_cache_stub ()
bool is_load_stub ()
bool is_keyed_load_stub ()
bool is_store_stub ()
bool is_keyed_store_stub ()
bool is_call_stub ()
ICTargetState ic_flag ()
void set_ic_flag (ICTargetState value)
CodeStub::Major major_key ()
void set_major_key (CodeStub::Major major)
byteinstruction_start ()
int body_size ()
byterelocation_start ()
byteentry ()
bool contains (byte *pc)
bytesinfo_start ()
void ConvertICTargetsFromAddressToObject ()
void ConvertICTargetsFromObjectToAddress ()
void Relocate (int delta)
void CopyFrom (const CodeDesc &desc)
int SourcePosition (Address pc)
int SourceStatementPosition (Address pc)
int CodeSize ()
void CodeIterateBody (ObjectVisitor *v)

Static Public メソッド

static Flags ComputeFlags (Kind kind, InlineCacheState ic_state=UNINITIALIZED, PropertyType type=NORMAL, int argc=-1)
static Flags ComputeMonomorphicFlags (Kind kind, PropertyType type, int argc=-1)
static Kind ExtractKindFromFlags (Flags flags)
static InlineCacheState ExtractICStateFromFlags (Flags flags)
static PropertyType ExtractTypeFromFlags (Flags flags)
static int ExtractArgumentsCountFromFlags (Flags flags)
static Flags RemoveTypeFromFlags (Flags flags)
static int SizeFor (int body_size, int sinfo_size)
static Codecast (Object *obj)

Static Public 変数

static const int kInstructionSizeOffset = HeapObject::kHeaderSize
static const int kRelocationSizeOffset = kInstructionSizeOffset + kIntSize
static const int kSInfoSizeOffset = kRelocationSizeOffset + kIntSize
static const int kFlagsOffset = kSInfoSizeOffset + kIntSize
static const int kKindSpecificFlagsOffset = kFlagsOffset + kIntSize
static const int kHeaderSize = kKindSpecificFlagsOffset + kIntSize
static const int kICFlagOffset = kKindSpecificFlagsOffset + 0
static const int kStubMajorKeyOffset = kKindSpecificFlagsOffset + 1
static const int kFlagsICStateShift = 0
static const int kFlagsKindShift = 3
static const int kFlagsTypeShift = 6
static const int kFlagsArgumentsCountShift = 9
static const int kFlagsICStateMask = 0x00000007
static const int kFlagsKindMask = 0x00000038
static const int kFlagsTypeMask = 0x000001C0
static const int kFlagsArgumentsCountMask = 0xFFFFFE00

Private メソッド

 DISALLOW_IMPLICIT_CONSTRUCTORS (Code)

説明

objects.h2100 行で定義されています。


列挙型

anonymous enum
列挙型の値:
NUMBER_OF_KINDS 

objects.h2121 行で定義されています。

objects.h2104 行で定義されています。

列挙型の値:
IC_TARGET_IS_ADDRESS 
IC_TARGET_IS_OBJECT 

objects.h2127 行で定義されています。

列挙型の値:
FUNCTION 
STUB 
BUILTIN 
LOAD_IC 
KEYED_LOAD_IC 
CALL_IC 
STORE_IC 
KEYED_STORE_IC 
FIRST_IC_KIND 
LAST_IC_KIND 

objects.h2106 行で定義されています。


関数

int v8::internal::Code::arguments_count (  )  [inline]
int v8::internal::Code::body_size (  )  [inline]
static Code* v8::internal::Code::cast ( Object obj  )  [inline, static]

v8::internal::HeapObjectを再定義しています。

参照元 v8::internal::StubCache::ComputeCallConstant(), v8::internal::StubCache::ComputeCallField(), v8::internal::StubCache::ComputeCallInterceptor(), v8::internal::StubCache::ComputeCallNormal(), v8::internal::StubCache::ComputeKeyedLoadArrayLength(), v8::internal::StubCache::ComputeKeyedLoadCallback(), v8::internal::StubCache::ComputeKeyedLoadConstant(), v8::internal::StubCache::ComputeKeyedLoadField(), v8::internal::StubCache::ComputeKeyedLoadFunctionPrototype(), v8::internal::StubCache::ComputeKeyedLoadInterceptor(), v8::internal::StubCache::ComputeKeyedLoadStringLength(), v8::internal::StubCache::ComputeKeyedStoreField(), v8::internal::StubCache::ComputeLazyCompile(), v8::internal::StubCache::ComputeLoadCallback(), v8::internal::StubCache::ComputeLoadConstant(), v8::internal::StubCache::ComputeLoadField(), v8::internal::StubCache::ComputeLoadInterceptor(), v8::internal::IC::ComputeMode(), v8::internal::StubCache::ComputeStoreCallback(), v8::internal::StubCache::ComputeStoreField(), v8::internal::StubCache::ComputeStoreInterceptor(), v8::internal::MarkCompactCollector::ConvertCodeICTargetToAddress(), v8::internal::Heap::CopyCode(), CopyFrom(), v8::internal::Heap::CreateCode(), v8::internal::FillCache(), v8::internal::Debug::GetCodeTarget(), v8::internal::Deserializer::GetObject(), v8::internal::KeyedLoadIC::Load(), v8::internal::Builtins::Lookup(), v8::internal::CpuFeatures::Probe(), v8::internal::PendingFixups::Process(), v8::internal::Serializer::PutObject(), v8::internal::MarkCompactCollector::RelocateCodeObject(), v8::internal::Heap::Scavenge(), v8::internal::Builtins::Setup(), v8::internal::SweepSpace(), v8::internal::KeyedStoreIC::UpdateCaches(), v8::internal::StoreIC::UpdateCaches(), v8::internal::KeyedLoadIC::UpdateCaches(), v8::internal::LoadIC::UpdateCaches(), と v8::internal::CallIC::UpdateCaches().

void v8::internal::Code::CodeIterateBody ( ObjectVisitor *  v  ) 

objects.cc4304 行で定義されています。

参照先 v8::internal::Debug::has_break_points().

int v8::internal::Code::CodeSize (  )  [inline]

objects.h2243 行で定義されています。

参照先 body_size(), sinfo_size(), と SizeFor().

参照元 relocation_start(), と sinfo_start().

Code::Flags v8::internal::Code::ComputeFlags ( Kind  kind,
InlineCacheState  ic_state = UNINITIALIZED,
PropertyType  type = NORMAL,
int  argc = -1 
) [inline, static]
Code::Flags v8::internal::Code::ComputeMonomorphicFlags ( Kind  kind,
PropertyType  type,
int  argc = -1 
) [inline, static]
bool v8::internal::Code::contains ( byte pc  )  [inline]

objects-inl.h2127 行で定義されています。

参照先 instruction_size(), と instruction_start().

参照元 v8::internal::Builtins::Lookup().

void v8::internal::Code::ConvertICTargetsFromAddressToObject (  ) 
void v8::internal::Code::ConvertICTargetsFromObjectToAddress (  ) 
void v8::internal::Code::CopyFrom ( const CodeDesc desc  ) 
v8::internal::Code::DISALLOW_IMPLICIT_CONSTRUCTORS ( Code   )  [private]
byte * v8::internal::Code::entry (  )  [inline]

objects-inl.h2122 行で定義されています。

参照先 instruction_start().

参照元 v8::internal::CpuFeatures::Probe().

int v8::internal::Code::ExtractArgumentsCountFromFlags ( Flags  flags  )  [inline, static]

objects-inl.h1787 行で定義されています。

参照先 kFlagsArgumentsCountMask, と kFlagsArgumentsCountShift.

参照元 arguments_count(), ComputeFlags(), と set_flags().

InlineCacheState v8::internal::Code::ExtractICStateFromFlags ( Flags  flags  )  [inline, static]

objects-inl.h1775 行で定義されています。

参照先 kFlagsICStateMask, と kFlagsICStateShift.

参照元 ComputeFlags(), ic_state(), と v8::internal::StubCache::Set().

Code::Kind v8::internal::Code::ExtractKindFromFlags ( Flags  flags  )  [inline, static]

objects-inl.h1769 行で定義されています。

参照先 kFlagsKindMask, と kFlagsKindShift.

参照元 ComputeFlags(), kind(), と set_flags().

PropertyType v8::internal::Code::ExtractTypeFromFlags ( Flags  flags  )  [inline, static]
Code::Flags v8::internal::Code::flags (  )  [inline]
Code::ICTargetState v8::internal::Code::ic_flag (  )  [inline]
InlineCacheState v8::internal::Code::ic_state (  )  [inline]
int v8::internal::Code::instruction_size (  )  [inline]
byte * v8::internal::Code::instruction_start (  )  [inline]
bool v8::internal::Code::is_call_stub (  )  [inline]
bool v8::internal::Code::is_inline_cache_stub (  )  [inline]
bool v8::internal::Code::is_keyed_load_stub (  )  [inline]

objects.h2164 行で定義されています。

参照先 kind().

参照元 v8::internal::Debug::FindDebugBreak().

bool v8::internal::Code::is_keyed_store_stub (  )  [inline]

objects.h2166 行で定義されています。

参照先 kind().

参照元 v8::internal::Debug::FindDebugBreak().

bool v8::internal::Code::is_load_stub (  )  [inline]

objects.h2163 行で定義されています。

参照先 kind().

参照元 v8::internal::Debug::FindDebugBreak().

bool v8::internal::Code::is_store_stub (  )  [inline]

objects.h2165 行で定義されています。

参照先 kind().

参照元 v8::internal::Debug::FindDebugBreak().

Code::Kind v8::internal::Code::kind (  )  [inline]
CodeStub::Major v8::internal::Code::major_key (  )  [inline]
void v8::internal::Code::Relocate ( int  delta  ) 
int v8::internal::Code::relocation_size (  )  [inline]
byte * v8::internal::Code::relocation_start (  )  [inline]

objects-inl.h2117 行で定義されています。

参照先 CodeSize(), FIELD_ADDR, relocation_size(), と sinfo_size().

参照元 CopyFrom(), と v8::internal::RelocIterator::RelocIterator().

Code::Flags v8::internal::Code::RemoveTypeFromFlags ( Flags  flags  )  [inline, static]

objects-inl.h1792 行で定義されています。

参照先 kFlagsTypeMask.

参照元 v8::internal::StubCache::Set(), と v8::internal::Map::UpdateCodeCache().

void v8::internal::Code::set_flags ( Code::Flags  flags  )  [inline]
void v8::internal::Code::set_ic_flag ( ICTargetState  value  )  [inline]
void v8::internal::Code::set_instruction_size ( int  value  )  [inline]
void v8::internal::Code::set_major_key ( CodeStub::Major  major  )  [inline]

objects-inl.h1730 行で定義されています。

参照先 ASSERT, kind(), kStubMajorKeyOffset, STUB, と WRITE_BYTE_FIELD.

void v8::internal::Code::set_relocation_size ( int  value  )  [inline]
void v8::internal::Code::set_sinfo_size ( int  value  )  [inline]
int v8::internal::Code::sinfo_size (  )  [inline]
byte * v8::internal::Code::sinfo_start (  )  [inline]

objects-inl.h2133 行で定義されています。

参照先 CodeSize(), FIELD_ADDR, と sinfo_size().

参照元 v8::internal::ContextEntriesAddr().

static int v8::internal::Code::SizeFor ( int  body_size,
int  sinfo_size 
) [inline, static]

objects.h2229 行で定義されています。

参照先 ASSERT_SIZE_TAG_ALIGNED, と kHeaderSize.

参照元 CodeSize(), と v8::internal::Heap::CreateCode().

int v8::internal::Code::SourcePosition ( Address  pc  ) 
int v8::internal::Code::SourceStatementPosition ( Address  pc  ) 
PropertyType v8::internal::Code::type (  )  [inline]

objects-inl.h1711 行で定義されています。

参照先 ASSERT, ExtractTypeFromFlags(), flags(), ic_state(), と v8::internal::MONOMORPHIC.


変数

const int v8::internal::Code::kFlagsArgumentsCountMask = 0xFFFFFE00 [static]

objects.h2271 行で定義されています。

参照元 ExtractArgumentsCountFromFlags().

objects.h2266 行で定義されています。

参照元 ComputeFlags(), と ExtractArgumentsCountFromFlags().

const int v8::internal::Code::kFlagsICStateMask = 0x00000007 [static]

objects.h2268 行で定義されています。

参照元 ExtractICStateFromFlags().

objects.h2263 行で定義されています。

参照元 ComputeFlags(), ExtractICStateFromFlags(), と v8::internal::StubCache::Set().

const int v8::internal::Code::kFlagsKindMask = 0x00000038 [static]

objects.h2269 行で定義されています。

参照元 ExtractKindFromFlags().

const int v8::internal::Code::kFlagsKindShift = 3 [static]

objects.h2264 行で定義されています。

参照元 ComputeFlags(), と ExtractKindFromFlags().

objects.h2254 行で定義されています。

参照元 flags(), v8::internal::ProbeTable(), と set_flags().

const int v8::internal::Code::kFlagsTypeMask = 0x000001C0 [static]

objects.h2270 行で定義されています。

参照元 ExtractTypeFromFlags(), v8::internal::ProbeTable(), と RemoveTypeFromFlags().

const int v8::internal::Code::kFlagsTypeShift = 6 [static]

objects.h2265 行で定義されています。

参照元 ComputeFlags(), と ExtractTypeFromFlags().

objects.h2259 行で定義されています。

参照元 set_ic_flag().

objects.h2251 行で定義されています。

objects.h2255 行で定義されています。

objects.h2252 行で定義されています。

objects.h2253 行で定義されています。

objects.h2260 行で定義されています。

参照元 major_key(), と set_major_key().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義