|
TPDE
|
Architecture-independent base for helper class to write function text. More...
#include <FunctionWriter.hpp>
Public Member Functions | |
| SecRef | get_sec_ref () const noexcept |
| Get the SecRef of the current section. | |
| DataSection & | get_section () const noexcept |
| Get the current section. | |
| void | switch_section (DataSection &new_section) noexcept |
| Switch section writer to new section; must be flushed. | |
| size_t | offset () const noexcept |
| Get the current offset into the section. | |
| size_t | allocated_size () const noexcept |
| Get the current allocated size of the section. | |
| u8 * | begin_ptr () noexcept |
| Pointer to beginning of section data. | |
| u8 *& | cur_ptr () noexcept |
| Modifiable pointer to current writing position of the section. | |
| void | remove_prologue_bytes (u32 start, u32 size) noexcept |
| Remove bytes and adjust labels/relocations accordingly. | |
Labels | |
| Label | label_create () noexcept |
| Create a new unplaced label. | |
| void | label_place (Label label, u32 off) noexcept |
| Place unplaced label at the specified offset inside the section. | |
| void | label_ref (Label label, u32 off, LabelFixupKind kind) noexcept |
| Reference label at given offset inside the code section. | |
Itanium Exception ABI | |
| void | except_add_call_site (u32 text_off, u32 len, Label landing_pad, bool is_cleanup) noexcept |
| add an entry to the call-site table must be called in strictly increasing order wrt text_off | |
| void | except_add_cleanup_action () noexcept |
| Add a cleanup action to the action table MUST be the last one. | |
| void | except_add_action (bool first_action, SymRef type_sym) noexcept |
| add an action to the action table An invalid SymRef signals a catch(...) | |
Architecture-independent base for helper class to write function text.
Definition at line 31 of file FunctionWriter.hpp.
|
inlinenoexcept |
Modifiable pointer to current writing position of the section.
Must not be moved beyond the allocated region.
Definition at line 155 of file FunctionWriter.hpp.
|
noexcept |
Remove bytes and adjust labels/relocations accordingly.
The covered region must be before the first label, i.e., this function can only be used to cut out bytes from the function prologue.