microfmt
Zero-allocation C++ formatting for constrained environments
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
microfmt::extab_stream_executor Class Reference

Executes a multi-word .ARM.extab bytecode program. More...

#include <arm_extab_stream.hpp>

Static Public Member Functions

static bool execute (address_space_ref space, uintptr_t extab_addr, uintptr_t &io_sp, register_context_ref reg_ctx) noexcept
 Runs the extab bytecode stream, updating SP and writing restored registers.
 

Detailed Description

Executes a multi-word .ARM.extab bytecode program.

Member Function Documentation

◆ execute()

static bool microfmt::extab_stream_executor::execute ( address_space_ref  space,
uintptr_t  extab_addr,
uintptr_t &  io_sp,
register_context_ref  reg_ctx 
)
inlinestaticnoexcept

Runs the extab bytecode stream, updating SP and writing restored registers.

Supports vsp add/sub adjustments, FINISH, integer-register pops, and VFP double-precision register pops.

Parameters
spaceAddress space to read stack values from.
extab_addrAddress of the .ARM.extab entry.
io_spIn/out: virtual stack pointer.
reg_ctxTarget register context handle to write recovered registers into.
Returns
true when the stream was consumed successfully.

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