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

#include <eh-frame.h>

Collaboration diagram for v8::internal::EhFrameWriter:

Public Member Functions

 EhFrameWriter (Zone *zone)
 
 EhFrameWriter (const EhFrameWriter &)=delete
 
EhFrameWriteroperator= (const EhFrameWriter &)=delete
 
void Initialize ()
 
void AdvanceLocation (int pc_offset)
 
void SetBaseAddressRegister (Register base_register)
 
void SetBaseAddressOffset (int base_offset)
 
void IncreaseBaseAddressOffset (int base_delta)
 
void SetBaseAddressRegisterAndOffset (Register base_register, int base_offset)
 
void RecordRegisterSavedToStack (Register name, int offset)
 
void RecordRegisterSavedToStack (int dwarf_register_code, int offset)
 
void RecordRegisterNotModified (Register name)
 
void RecordRegisterNotModified (int dwarf_register_code)
 
void RecordRegisterFollowsInitialRule (Register name)
 
void RecordRegisterFollowsInitialRule (int dwarf_register_code)
 
void Finish (int code_size)
 
void GetEhFrame (CodeDesc *desc)
 
int last_pc_offset () const
 
Register base_register () const
 
int base_offset () const
 

Static Public Member Functions

static void WriteEmptyEhFrame (std::ostream &stream)
 

Private Types

enum class  InternalState { kUndefined , kInitialized , kFinalized }
 

Private Member Functions

void WriteSLeb128 (int32_t value)
 
void WriteULeb128 (uint32_t value)
 
void WriteByte (uint8_t value)
 
void WriteOpcode (EhFrameConstants::DwarfOpcodes opcode)
 
void WriteBytes (const uint8_t *start, int size)
 
void WriteInt16 (uint16_t value)
 
void WriteInt32 (uint32_t value)
 
void PatchInt32 (int base_offset, uint32_t value)
 
void WriteCie ()
 
void WriteFdeHeader ()
 
void WriteEhFrameHdr (int code_size)
 
void WritePaddingToAlignedSize (int unpadded_size)
 
int GetProcedureAddressOffset () const
 
int GetProcedureSizeOffset () const
 
int eh_frame_offset () const
 
int fde_offset () const
 
void WriteInitialStateInCie ()
 
void WriteReturnAddressRegisterCode ()
 

Static Private Member Functions

static int RegisterToDwarfCode (Register name)
 

Private Attributes

int cie_size_
 
int last_pc_offset_
 
InternalState writer_state_
 
Register base_register_
 
int base_offset_
 
ZoneVector< uint8_t > eh_frame_buffer_
 

Static Private Attributes

static const uint32_t kInt32Placeholder = 0xdeadc0de
 

Detailed Description

Definition at line 72 of file eh-frame.h.

Member Enumeration Documentation

◆ InternalState

Enumerator
kUndefined 
kInitialized 
kFinalized 

Definition at line 134 of file eh-frame.h.

Constructor & Destructor Documentation

◆ EhFrameWriter() [1/2]

v8::internal::EhFrameWriter::EhFrameWriter ( Zone * zone)
explicit

Definition at line 73 of file eh-frame.cc.

◆ EhFrameWriter() [2/2]

v8::internal::EhFrameWriter::EhFrameWriter ( const EhFrameWriter & )
delete

Member Function Documentation

◆ AdvanceLocation()

void v8::internal::EhFrameWriter::AdvanceLocation ( int pc_offset)

Definition at line 251 of file eh-frame.cc.

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

◆ base_offset()

int v8::internal::EhFrameWriter::base_offset ( ) const
inline

Definition at line 131 of file eh-frame.h.

Here is the caller graph for this function:

◆ base_register()

Register v8::internal::EhFrameWriter::base_register ( ) const
inline

Definition at line 130 of file eh-frame.h.

Here is the caller graph for this function:

◆ eh_frame_offset()

int v8::internal::EhFrameWriter::eh_frame_offset ( ) const
inlineprivate

Definition at line 189 of file eh-frame.h.

Here is the caller graph for this function:

◆ fde_offset()

int v8::internal::EhFrameWriter::fde_offset ( ) const
inlineprivate

Definition at line 193 of file eh-frame.h.

Here is the caller graph for this function:

◆ Finish()

void v8::internal::EhFrameWriter::Finish ( int code_size)

Definition at line 349 of file eh-frame.cc.

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

◆ GetEhFrame()

void v8::internal::EhFrameWriter::GetEhFrame ( CodeDesc * desc)

Definition at line 376 of file eh-frame.cc.

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

◆ GetProcedureAddressOffset()

int v8::internal::EhFrameWriter::GetProcedureAddressOffset ( ) const
inlineprivate

Definition at line 181 of file eh-frame.h.

Here is the caller graph for this function:

◆ GetProcedureSizeOffset()

int v8::internal::EhFrameWriter::GetProcedureSizeOffset ( ) const
inlineprivate

Definition at line 185 of file eh-frame.h.

Here is the caller graph for this function:

◆ IncreaseBaseAddressOffset()

void v8::internal::EhFrameWriter::IncreaseBaseAddressOffset ( int base_delta)
inline

Definition at line 97 of file eh-frame.h.

Here is the caller graph for this function:

◆ Initialize()

void v8::internal::EhFrameWriter::Initialize ( )

Definition at line 81 of file eh-frame.cc.

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

◆ last_pc_offset()

int v8::internal::EhFrameWriter::last_pc_offset ( ) const
inline

Definition at line 129 of file eh-frame.h.

◆ operator=()

EhFrameWriter & v8::internal::EhFrameWriter::operator= ( const EhFrameWriter & )
delete

◆ PatchInt32()

void v8::internal::EhFrameWriter::PatchInt32 ( int base_offset,
uint32_t value )
inlineprivate

Definition at line 154 of file eh-frame.h.

Here is the caller graph for this function:

◆ RecordRegisterFollowsInitialRule() [1/2]

void v8::internal::EhFrameWriter::RecordRegisterFollowsInitialRule ( int dwarf_register_code)

Definition at line 337 of file eh-frame.cc.

Here is the call graph for this function:

◆ RecordRegisterFollowsInitialRule() [2/2]

void v8::internal::EhFrameWriter::RecordRegisterFollowsInitialRule ( Register name)

Definition at line 333 of file eh-frame.cc.

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

◆ RecordRegisterNotModified() [1/2]

void v8::internal::EhFrameWriter::RecordRegisterNotModified ( int dwarf_register_code)

Definition at line 327 of file eh-frame.cc.

Here is the call graph for this function:

◆ RecordRegisterNotModified() [2/2]

void v8::internal::EhFrameWriter::RecordRegisterNotModified ( Register name)

Definition at line 323 of file eh-frame.cc.

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

◆ RecordRegisterSavedToStack() [1/2]

void v8::internal::EhFrameWriter::RecordRegisterSavedToStack ( int dwarf_register_code,
int offset )

Definition at line 305 of file eh-frame.cc.

Here is the call graph for this function:

◆ RecordRegisterSavedToStack() [2/2]

void v8::internal::EhFrameWriter::RecordRegisterSavedToStack ( Register name,
int offset )
inline

Definition at line 104 of file eh-frame.h.

Here is the caller graph for this function:

◆ RegisterToDwarfCode()

int v8::internal::EhFrameWriter::RegisterToDwarfCode ( Register name)
staticprivate

Definition at line 28 of file eh-frame-arm.cc.

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

◆ SetBaseAddressOffset()

void v8::internal::EhFrameWriter::SetBaseAddressOffset ( int base_offset)

Definition at line 277 of file eh-frame.cc.

Here is the call graph for this function:

◆ SetBaseAddressRegister()

void v8::internal::EhFrameWriter::SetBaseAddressRegister ( Register base_register)

Definition at line 285 of file eh-frame.cc.

Here is the call graph for this function:

◆ SetBaseAddressRegisterAndOffset()

void v8::internal::EhFrameWriter::SetBaseAddressRegisterAndOffset ( Register base_register,
int base_offset )

Definition at line 293 of file eh-frame.cc.

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

◆ WriteByte()

void v8::internal::EhFrameWriter::WriteByte ( uint8_t value)
inlineprivate

Definition at line 141 of file eh-frame.h.

Here is the caller graph for this function:

◆ WriteBytes()

void v8::internal::EhFrameWriter::WriteBytes ( const uint8_t * start,
int size )
inlineprivate

Definition at line 145 of file eh-frame.h.

Here is the caller graph for this function:

◆ WriteCie()

void v8::internal::EhFrameWriter::WriteCie ( )
private

Definition at line 89 of file eh-frame.cc.

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

◆ WriteEhFrameHdr()

void v8::internal::EhFrameWriter::WriteEhFrameHdr ( int code_size)
private

Definition at line 157 of file eh-frame.cc.

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

◆ WriteEmptyEhFrame()

void v8::internal::EhFrameWriter::WriteEmptyEhFrame ( std::ostream & stream)
static

Definition at line 56 of file eh-frame.cc.

◆ WriteFdeHeader()

void v8::internal::EhFrameWriter::WriteFdeHeader ( )
private

Definition at line 135 of file eh-frame.cc.

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

◆ WriteInitialStateInCie()

void v8::internal::EhFrameWriter::WriteInitialStateInCie ( )
private

Definition at line 22 of file eh-frame-arm.cc.

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

◆ WriteInt16()

void v8::internal::EhFrameWriter::WriteInt16 ( uint16_t value)
inlineprivate

Definition at line 148 of file eh-frame.h.

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

◆ WriteInt32()

void v8::internal::EhFrameWriter::WriteInt32 ( uint32_t value)
inlineprivate

Definition at line 151 of file eh-frame.h.

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

◆ WriteOpcode()

void v8::internal::EhFrameWriter::WriteOpcode ( EhFrameConstants::DwarfOpcodes opcode)
inlineprivate

Definition at line 142 of file eh-frame.h.

Here is the caller graph for this function:

◆ WritePaddingToAlignedSize()

void v8::internal::EhFrameWriter::WritePaddingToAlignedSize ( int unpadded_size)
private

Definition at line 239 of file eh-frame.cc.

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

◆ WriteReturnAddressRegisterCode()

void v8::internal::EhFrameWriter::WriteReturnAddressRegisterCode ( )
private

Definition at line 18 of file eh-frame-arm.cc.

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

◆ WriteSLeb128()

void v8::internal::EhFrameWriter::WriteSLeb128 ( int32_t value)
private

Definition at line 391 of file eh-frame.cc.

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

◆ WriteULeb128()

void v8::internal::EhFrameWriter::WriteULeb128 ( uint32_t value)
private

Definition at line 382 of file eh-frame.cc.

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

Member Data Documentation

◆ base_offset_

int v8::internal::EhFrameWriter::base_offset_
private

Definition at line 209 of file eh-frame.h.

◆ base_register_

Register v8::internal::EhFrameWriter::base_register_
private

Definition at line 208 of file eh-frame.h.

◆ cie_size_

int v8::internal::EhFrameWriter::cie_size_
private

Definition at line 205 of file eh-frame.h.

◆ eh_frame_buffer_

ZoneVector<uint8_t> v8::internal::EhFrameWriter::eh_frame_buffer_
private

Definition at line 210 of file eh-frame.h.

◆ kInt32Placeholder

STATIC_CONST_MEMBER_DEFINITION const uint32_t v8::internal::EhFrameWriter::kInt32Placeholder = 0xdeadc0de
staticprivate

Definition at line 136 of file eh-frame.h.

◆ last_pc_offset_

int v8::internal::EhFrameWriter::last_pc_offset_
private

Definition at line 206 of file eh-frame.h.

◆ writer_state_

InternalState v8::internal::EhFrameWriter::writer_state_
private

Definition at line 207 of file eh-frame.h.


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