CACAO
Macros | Functions
executionstate.cpp File Reference

Go to the source code of this file.

Macros

#define MINIMUM_CONTEXT_SIZE
 

Functions

void executionstate_pop_stackframe (executionstate_t *es)
 Restore callee-saved registers (including the RA register), set the stack pointer to the next stackframe, set the PC to the return address of the popped frame. More...
 
void executionstate_unwind_exception (executionstate_t *es, java_handle_t *e)
 Performs stack unwinding in case of an exception. More...
 
void executionstate_sanity_check (void *context)
 
void executionstate_println (executionstate_t *es)
 

Macro Definition Documentation

#define MINIMUM_CONTEXT_SIZE
Value:
(SIZEOF_VOID_P * INT_REG_CNT \
+ sizeof(double) * FLT_REG_CNT)
#define INT_REG_CNT
Definition: md-abi.hpp:72
#define FLT_REG_CNT
Definition: md-abi.hpp:79

Function Documentation

void executionstate_pop_stackframe ( executionstate_t es)

Restore callee-saved registers (including the RA register), set the stack pointer to the next stackframe, set the PC to the return address of the popped frame.

*** This function imitates the effects of the method epilog *** *** and returning from the method call. ***

Parameters
esExecution state to be modified. NOTE: es->code and es->pv are NOT updated.

Definition at line 52 of file executionstate.cpp.

void executionstate_println ( executionstate_t es)

Definition at line 287 of file executionstate.cpp.

void executionstate_sanity_check ( void context)

Definition at line 200 of file executionstate.cpp.

void executionstate_unwind_exception ( executionstate_t es,
java_handle_t e 
)

Performs stack unwinding in case of an exception.

This is done by popping frames off the given execution state until a frame is reached for which there is a handler. Execution will continue at the handler site once the execution state is written back to the machine.

Parameters
esExecution state to be modified.
eThe thrown exception object.

This is specified in: The Java(TM) Virtual Machine Specification, Second Edition Section 3.6.5: Abrupt Method Invocation Completion

Definition at line 156 of file executionstate.cpp.