v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::AssemblerBase Class Reference

#include <assembler.h>

Inheritance diagram for v8::internal::AssemblerBase:
Collaboration diagram for v8::internal::AssemblerBase:

Classes

class  CodeComment
 

Public Member Functions

 AssemblerBase (const AssemblerOptions &options, std::unique_ptr< AssemblerBuffer >)
 
virtual ~AssemblerBase ()
 
const AssemblerOptionsoptions () const
 
bool predictable_code_size () const
 
void set_predictable_code_size (bool value)
 
uint64_t enabled_cpu_features () const
 
void set_enabled_cpu_features (uint64_t features)
 
bool IsEnabled (CpuFeature f)
 
void EnableCpuFeature (CpuFeature f)
 
bool is_constant_pool_available () const
 
JumpOptimizationInfojump_optimization_info ()
 
void set_jump_optimization_info (JumpOptimizationInfo *jump_opt)
 
void FinalizeJumpOptimizationInfo ()
 
int pc_offset () const
 
int pc_offset_for_safepoint ()
 
uint8_t * buffer_start () const
 
int buffer_size () const
 
int instruction_size () const
 
std::unique_ptr< AssemblerBufferReleaseBuffer ()
 
virtual void AbortedCodeGeneration ()
 
void Print (Isolate *isolate)
 
V8_INLINE void RecordComment (const char *comment, const SourceLocation &loc=SourceLocation::Current())
 
V8_INLINE void RecordComment (std::string comment, const SourceLocation &loc=SourceLocation::Current())
 

Static Public Member Functions

static void QuietNaN (Tagged< HeapObject > nan)
 
- Static Public Member Functions inherited from v8::internal::Malloced
static void * operator new (size_t size)
 
static void operator delete (void *p)
 

Static Public Attributes

static constexpr int kMinimalBufferSize = 128
 
static constexpr int kDefaultBufferSize = 4 * KB
 

Protected Types

using EmbeddedObjectIndex = size_t
 

Protected Member Functions

int AddCodeTarget (IndirectHandle< Code > target)
 
IndirectHandle< CodeGetCodeTarget (intptr_t code_target_index) const
 
EmbeddedObjectIndex AddEmbeddedObject (IndirectHandle< HeapObject > object)
 
IndirectHandle< HeapObjectGetEmbeddedObject (EmbeddedObjectIndex index) const
 
void set_constant_pool_available (bool available)
 
void RequestHeapNumber (HeapNumberRequest request)
 
bool ShouldRecordRelocInfo (RelocInfo::Mode rmode) const
 

Protected Attributes

std::unique_ptr< AssemblerBufferbuffer_
 
uint8_t * buffer_start_
 
std::forward_list< HeapNumberRequestheap_number_requests_
 
uint8_t * pc_
 
CodeCommentsWriter code_comments_writer_
 

Private Attributes

std::vector< IndirectHandle< Code > > code_targets_
 
std::vector< IndirectHandle< HeapObject > > embedded_objects_
 
std::unordered_map< IndirectHandle< HeapObject >, EmbeddedObjectIndex, IndirectHandle< HeapObject >::hash, IndirectHandle< HeapObject >::equal_to > embedded_objects_map_
 
const AssemblerOptions options_
 
uint64_t enabled_cpu_features_
 
bool predictable_code_size_
 
bool constant_pool_available_
 
JumpOptimizationInfojump_optimization_info_
 

Friends

class FrameAndConstantPoolScope
 
class ConstantPoolUnavailableScope
 

Detailed Description

Definition at line 333 of file assembler.h.

Member Typedef Documentation

◆ EmbeddedObjectIndex

Definition at line 499 of file assembler.h.

Constructor & Destructor Documentation

◆ AssemblerBase()

v8::internal::AssemblerBase::AssemblerBase ( const AssemblerOptions & options,
std::unique_ptr< AssemblerBuffer > buffer )

Definition at line 180 of file assembler.cc.

Here is the call graph for this function:

◆ ~AssemblerBase()

v8::internal::AssemblerBase::~AssemblerBase ( )
virtualdefault

Member Function Documentation

◆ AbortedCodeGeneration()

virtual void v8::internal::AssemblerBase::AbortedCodeGeneration ( )
inlinevirtual

Reimplemented in v8::internal::Assembler, v8::internal::Assembler, and v8::internal::Assembler.

Definition at line 410 of file assembler.h.

◆ AddCodeTarget()

int v8::internal::AssemblerBase::AddCodeTarget ( IndirectHandle< Code > target)
protected

Definition at line 267 of file assembler.cc.

◆ AddEmbeddedObject()

AssemblerBase::EmbeddedObjectIndex v8::internal::AssemblerBase::AddEmbeddedObject ( IndirectHandle< HeapObject > object)
protected

Definition at line 285 of file assembler.cc.

Here is the caller graph for this function:

◆ buffer_size()

int v8::internal::AssemblerBase::buffer_size ( ) const
inline

Definition at line 396 of file assembler.h.

◆ buffer_start()

uint8_t * v8::internal::AssemblerBase::buffer_start ( ) const
inline

Definition at line 395 of file assembler.h.

◆ EnableCpuFeature()

void v8::internal::AssemblerBase::EnableCpuFeature ( CpuFeature f)
inline

Definition at line 355 of file assembler.h.

◆ enabled_cpu_features()

uint64_t v8::internal::AssemblerBase::enabled_cpu_features ( ) const
inline

Definition at line 344 of file assembler.h.

◆ FinalizeJumpOptimizationInfo()

void v8::internal::AssemblerBase::FinalizeJumpOptimizationInfo ( )
inline

Definition at line 377 of file assembler.h.

◆ GetCodeTarget()

IndirectHandle< Code > v8::internal::AssemblerBase::GetCodeTarget ( intptr_t code_target_index) const
protected

Definition at line 279 of file assembler.cc.

Here is the caller graph for this function:

◆ GetEmbeddedObject()

IndirectHandle< HeapObject > v8::internal::AssemblerBase::GetEmbeddedObject ( EmbeddedObjectIndex index) const
protected

Definition at line 300 of file assembler.cc.

Here is the caller graph for this function:

◆ instruction_size()

int v8::internal::AssemblerBase::instruction_size ( ) const
inline

Definition at line 397 of file assembler.h.

Here is the caller graph for this function:

◆ is_constant_pool_available()

bool v8::internal::AssemblerBase::is_constant_pool_available ( ) const
inline

Definition at line 359 of file assembler.h.

◆ IsEnabled()

bool v8::internal::AssemblerBase::IsEnabled ( CpuFeature f)
inline

Definition at line 352 of file assembler.h.

◆ jump_optimization_info()

JumpOptimizationInfo * v8::internal::AssemblerBase::jump_optimization_info ( )
inline

Definition at line 370 of file assembler.h.

◆ options()

const AssemblerOptions & v8::internal::AssemblerBase::options ( ) const
inline

Definition at line 339 of file assembler.h.

Here is the caller graph for this function:

◆ pc_offset()

int v8::internal::AssemblerBase::pc_offset ( ) const
inline

Definition at line 383 of file assembler.h.

◆ pc_offset_for_safepoint()

int v8::internal::AssemblerBase::pc_offset_for_safepoint ( )
inline

Definition at line 385 of file assembler.h.

◆ predictable_code_size()

bool v8::internal::AssemblerBase::predictable_code_size ( ) const
inline

Definition at line 341 of file assembler.h.

◆ Print()

void v8::internal::AssemblerBase::Print ( Isolate * isolate)

Definition at line 195 of file assembler.cc.

Here is the call graph for this function:

◆ QuietNaN()

static void v8::internal::AssemblerBase::QuietNaN ( Tagged< HeapObject > nan)
inlinestatic

Definition at line 381 of file assembler.h.

Here is the caller graph for this function:

◆ RecordComment() [1/2]

V8_INLINE void v8::internal::AssemblerBase::RecordComment ( const char * comment,
const SourceLocation & loc = SourceLocation::Current() )
inline

Definition at line 417 of file assembler.h.

Here is the caller graph for this function:

◆ RecordComment() [2/2]

V8_INLINE void v8::internal::AssemblerBase::RecordComment ( std::string comment,
const SourceLocation & loc = SourceLocation::Current() )
inline

Definition at line 432 of file assembler.h.

◆ ReleaseBuffer()

std::unique_ptr< AssemblerBuffer > v8::internal::AssemblerBase::ReleaseBuffer ( )
inline

Definition at line 399 of file assembler.h.

◆ RequestHeapNumber()

void v8::internal::AssemblerBase::RequestHeapNumber ( HeapNumberRequest request)
protected

Definition at line 262 of file assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_constant_pool_available()

void v8::internal::AssemblerBase::set_constant_pool_available ( bool available)
inlineprotected

Definition at line 512 of file assembler.h.

Here is the caller graph for this function:

◆ set_enabled_cpu_features()

void v8::internal::AssemblerBase::set_enabled_cpu_features ( uint64_t features)
inline

Definition at line 345 of file assembler.h.

◆ set_jump_optimization_info()

void v8::internal::AssemblerBase::set_jump_optimization_info ( JumpOptimizationInfo * jump_opt)
inline

Definition at line 373 of file assembler.h.

◆ set_predictable_code_size()

void v8::internal::AssemblerBase::set_predictable_code_size ( bool value)
inline

Definition at line 342 of file assembler.h.

◆ ShouldRecordRelocInfo()

bool v8::internal::AssemblerBase::ShouldRecordRelocInfo ( RelocInfo::Mode rmode) const
inlineprotected

Definition at line 528 of file assembler.h.

Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ ConstantPoolUnavailableScope

friend class ConstantPoolUnavailableScope
friend

Definition at line 579 of file assembler.h.

◆ FrameAndConstantPoolScope

friend class FrameAndConstantPoolScope
friend

Definition at line 578 of file assembler.h.

Member Data Documentation

◆ buffer_

std::unique_ptr<AssemblerBuffer> v8::internal::AssemblerBase::buffer_
protected

Definition at line 504 of file assembler.h.

◆ buffer_start_

uint8_t* v8::internal::AssemblerBase::buffer_start_
protected

Definition at line 506 of file assembler.h.

◆ code_comments_writer_

CodeCommentsWriter v8::internal::AssemblerBase::code_comments_writer_
protected

Definition at line 538 of file assembler.h.

◆ code_targets_

std::vector<IndirectHandle<Code> > v8::internal::AssemblerBase::code_targets_
private

Definition at line 547 of file assembler.h.

◆ constant_pool_available_

bool v8::internal::AssemblerBase::constant_pool_available_
private

Definition at line 569 of file assembler.h.

◆ embedded_objects_

std::vector<IndirectHandle<HeapObject> > v8::internal::AssemblerBase::embedded_objects_
private

Definition at line 553 of file assembler.h.

◆ embedded_objects_map_

std::unordered_map<IndirectHandle<HeapObject>, EmbeddedObjectIndex, IndirectHandle<HeapObject>::hash, IndirectHandle<HeapObject>::equal_to> v8::internal::AssemblerBase::embedded_objects_map_
private

Definition at line 561 of file assembler.h.

◆ enabled_cpu_features_

uint64_t v8::internal::AssemblerBase::enabled_cpu_features_
private

Definition at line 564 of file assembler.h.

◆ heap_number_requests_

std::forward_list<HeapNumberRequest> v8::internal::AssemblerBase::heap_number_requests_
protected

Definition at line 507 of file assembler.h.

◆ jump_optimization_info_

JumpOptimizationInfo* v8::internal::AssemblerBase::jump_optimization_info_
private

Definition at line 571 of file assembler.h.

◆ kDefaultBufferSize

int v8::internal::AssemblerBase::kDefaultBufferSize = 4 * KB
staticconstexpr

Definition at line 489 of file assembler.h.

◆ kMinimalBufferSize

int v8::internal::AssemblerBase::kMinimalBufferSize = 128
staticconstexpr

Definition at line 485 of file assembler.h.

◆ options_

const AssemblerOptions v8::internal::AssemblerBase::options_
private

Definition at line 563 of file assembler.h.

◆ pc_

uint8_t* v8::internal::AssemblerBase::pc_
protected

Definition at line 510 of file assembler.h.

◆ predictable_code_size_

bool v8::internal::AssemblerBase::predictable_code_size_
private

Definition at line 565 of file assembler.h.


The documentation for this class was generated from the following files: