|
TPDE
|
Helper class to write function text for X64. More...
#include <FunctionWriterX64.hpp>
Additional Inherited Members | |
Public Member Functions inherited from tpde::FunctionWriter< FunctionWriterX64 > | |
| void | ensure_space (size_t size) |
| Ensure that at least size bytes are available. | |
Public Member Functions inherited from tpde::FunctionWriterBase | |
| SecRef | get_sec_ref () const |
| Get the SecRef of the current section. | |
| DataSection & | get_section () const |
| Get the current section. | |
| void | switch_section (DataSection &new_section) |
| Switch section writer to new section; must be flushed. | |
| size_t | offset () const |
| Get the current offset into the section. | |
| size_t | allocated_size () const |
| Get the current allocated size of the section. | |
| u8 * | begin_ptr () |
| Pointer to beginning of section data. | |
| u8 *& | cur_ptr () |
| Modifiable pointer to current writing position of the section. | |
| void | reloc (SymRef sym, u32 type, u64 off, i64 addend=0) |
| Record relocation at the given offset. | |
| void | remove_prologue_bytes (u32 start, u32 size) |
| Remove bytes and adjust labels/relocations accordingly. | |
| Label | label_create () |
| Create a new unplaced label. | |
| void | label_place (Label label, u32 off) |
| Place unplaced label at the specified offset inside the section. | |
| void | label_ref (Label label, u32 off, LabelFixupKind kind) |
| Reference label at given offset inside the code section. | |
| void | except_add_call_site (u32 text_off, u32 len, Label landing_pad, bool is_cleanup) |
| add an entry to the call-site table must be called in strictly increasing order wrt text_off | |
| void | except_add_cleanup_action () |
| Add a cleanup action to the action table MUST be the last one. | |
| void | except_add_action (bool first_action, SymRef type_sym) |
| add an action to the action table An invalid SymRef signals a catch(...) | |
| void | eh_advance_raw (u64 size_units) |
| Write CFA_advance_loc; size must be scaled by code alignment factor. | |
| void | eh_advance (u64 size) |
| Write CFA_advance_loc with code alignment factor 1. | |
Protected Member Functions inherited from tpde::FunctionWriterBase | |
| JumpTable & | alloc_jump_table (u32 size, Reg idx, Reg tmp) |
| Allocate a jump table for the current location. | |
Protected Attributes inherited from tpde::FunctionWriterBase | |
| u32 | func_begin |
| Begin offset of the current function. | |
| u32 | reloc_begin |
| Begin of relocations for current function. | |
| u32 | label_skew |
| Offset to subtract from all label offsets. | |
| util::SmallVector< u32 > | label_offsets |
| Label offsets into section, ~0u indicates unplaced label. | |
| util::SmallVector< LabelFixup > | label_fixups |
| Fixups for labels placed after their first use, processed at function end. | |
| u32 | growth_size = 0x10000 |
| Growth size for more_space; adjusted exponentially after every grow. | |
Helper class to write function text for X64.
Definition at line 12 of file FunctionWriterX64.hpp.