Classes | |
| union | Value |
| Holds 32-bit values. More... | |
| union | Value2 |
| Holds 64-bit values. More... | |
| class | Stack |
| The stack for executing the Java method. More... | |
| class | Locals |
| The storage for local variables of the executed Java method. More... | |
| struct | FramePopListener |
The list of functions that listen for the PopFrame event. More... | |
| struct | MonitorList |
| The list of monitors locked by this method. More... | |
| struct | StackFrame |
| The representation of the method being executed. More... | |
Defines | |
| #define | LOG_DOMAIN "interpreter.unspecified" |
| #define | DEBUG_PRINT(a) TRACE2("interpreter", a) |
Calls TRACE2 with the interpreter category. | |
| #define | DEBUG(a) |
| Does nothing. | |
| #define | DEBUG_BYTECODE(a) { if (frame.dump_bytecodes) DEBUG_PRINT(a); } |
If DEBUG is on, calls DEBUG_PRINT(a). | |
| #define | DEBUG_GC(a) TRACE2("gc_interpreter", a) |
Calls TRACE2 with the gc_interpreter category. | |
| #define | DEBUG2(a) INFO(a) |
Calls INFO(a). | |
| #define | DEBUG_TRACE_PLAIN(a) TRACE2("interpreter", a) |
Calls TRACE2 with the interpreter category. | |
| #define | DEBUG_TRACE(a) TRACE2("folded_interpreter", a) |
Calls TRACE2 with the folded_interpreter category. | |
| #define | ASSERT_TAGS(a) |
| Does nothing. | |
| #define | ASSERT_OBJECT(a) |
| Checks the object. | |
| #define | ALLOC_FRAME(sz) alloca(sz) |
Calls alloca(sz). | |
| #define | FREE_FRAME(ptr) |
If INTERPRETER_USE_MALLOC_ALLOCATION is on, does nothing. | |
| #define | uword uint32 |
| #define | word int32 |
| #define | VAL32 |
| #define | MAKEREFVAL(_val_) (*((ManagedObject**)(&(_val_)))) |
| #define | MAKECRVAL(_val_) (*((COMPRESSED_REFERENCE*)(&(_val_)))) |
| #define | STORE_UREF_BY_ADDR(_addr_, _val_) |
| #define | UNCOMPRESS_REF(cref) |
| #define | COMPRESS_INTERP(ref) ((ManagedObject*)(ref)) |
| #define | UNCOMPRESS_INTERP(cref) ((ManagedObject*)(cref)) |
| #define | REF_NULL 0 |
| #define | s0 1 |
| The stack value. | |
| #define | s1 0 |
| #define | l0 0 |
| The local value. | |
| #define | l1 1 |
| The local value. | |
| #define | c0 0 |
| The constant value. | |
| #define | c1 1 |
| The constant value. | |
| #define | a0 0 |
| The argument value. | |
| #define | a1 1 |
| The argument value. | |
| #define | ar0 0 |
| The array value. | |
| #define | ar1 1 |
| The array value. | |
| #define | res0 1 |
| The result value. | |
| #define | res1 0 |
| The result value. | |
| #define | SETUP_LOCALS_AND_STACK(frame, method) |
| Sets up locals and stack on the C stack. | |
Typedefs | |
| typedef ManagedObject * | REF |
Enumerations | |
| enum | { FLAG_NONE = 0, FLAG_RET_ADDR = 2, FLAG_OBJECT = 3 } |
| The local variable types. More... | |
| enum | PopFrameState { POP_FRAME_UNAVAILABLE, POP_FRAME_AVAILABLE, POP_FRAME_NOW } |
The pop_frame states. More... | |
| enum | interpreter_state { INTERP_STATE_STACK_OVERFLOW = 1 } |
| The interpreter states. More... | |
| enum | interpreter_ti_events { INTERPRETER_TI_METHOD_ENTRY_EVENT = 1, INTERPRETER_TI_METHOD_EXIT_EVENT = 2, INTERPRETER_TI_SINGLE_STEP_EVENT = 4, INTERPRETER_TI_POP_FRAME_EVENT = 8, INTERPRETER_TI_FIELD_ACCESS = 16, INTERPRETER_TI_FIELD_MODIFICATION = 32, INTERPRETER_TI_OTHER = 64 } |
| The interpreter jvmti events. More... | |
Functions | |
| uint8 | Opcode_BREAKPOINT (StackFrame &frame) |
| The function for interpreter breakpoint processing. | |
| void | interp_enumerate_root_set_single_thread_on_stack (VM_thread *) |
| Enumerates references associated with the thread. | |
| void | interpreter_execute_native_method (Method *method, jvalue *return_value, jvalue *args) |
| Executes the native method. | |
| void | interpreterInvokeStaticNative (StackFrame &prevFrame, StackFrame &frame, Method *method) |
| Calls the static native method. | |
| void | interpreterInvokeVirtualNative (StackFrame &prevFrame, StackFrame &frame, Method *method, int sz) |
| Calls the virtual native method. | |
| void | interpreter_execute_method (Method *method, jvalue *return_value, jvalue *args) |
| Executes the method. | |
| void | method_entry_callback (Method *method) |
| Processes method entry events. | |
| void | method_exit_callback (Method *method, bool was_popped_by_exception, jvalue ret_val) |
| Processes method exit events. | |
| void | method_exit_callback_with_frame (Method *method, StackFrame &frame) |
| Processes method exit events. | |
| void | putfield_callback (Field *field, StackFrame &frame) |
| Processes the field modification event. | |
| void | getfield_callback (Field *field, StackFrame &frame) |
| Processes the field modification event. | |
| void | putstatic_callback (Field *field, StackFrame &frame) |
| Processes the field modification event. | |
| void | getstatic_callback (Field *field, StackFrame &frame) |
| Processes the field modification event. | |
| void | frame_pop_callback (FramePopListener *l, Method *method, jboolean was_popped_by_exception) |
| Processes the frame pop event. | |
| void | single_step_callback (StackFrame &frame) |
| Processes the single step event. | |
| bool | findExceptionHandler (StackFrame &frame, ManagedObject **exception, Handler **h) |
| Finds the exception handler. | |
| bool | load_method_handled_exceptions (Method *m) |
| Loads method handled exceptions. | |
| static StackFrame * | getLastStackFrame () |
| Returns the last stack frame. | |
| static StackFrame * | getLastStackFrame (VM_thread *thread) |
| Returns the last stack frame. | |
| static void | setLastStackFrame (StackFrame *frame) |
| Sets the last stack frame. | |
Variables | |
| bool | interpreter_enable_debug |
TRUE if the interpreter enables debug. | |
| int | interpreter_ti_notification_mode |
| The global flags' section. | |
| #define LOG_DOMAIN "interpreter.unspecified" |
| #define DEBUG_PRINT | ( | a | ) | TRACE2("interpreter", a) |
Calls TRACE2 with the interpreter category.
| #define DEBUG | ( | a | ) |
Does nothing.
| #define DEBUG_BYTECODE | ( | a | ) | { if (frame.dump_bytecodes) DEBUG_PRINT(a); } |
If DEBUG is on, calls DEBUG_PRINT(a).
| #define DEBUG_GC | ( | a | ) | TRACE2("gc_interpreter", a) |
Calls TRACE2 with the gc_interpreter category.
| #define DEBUG2 | ( | a | ) | INFO(a) |
Calls INFO(a).
| #define DEBUG_TRACE_PLAIN | ( | a | ) | TRACE2("interpreter", a) |
Calls TRACE2 with the interpreter category.
| #define DEBUG_TRACE | ( | a | ) | TRACE2("folded_interpreter", a) |
Calls TRACE2 with the folded_interpreter category.
| #define ASSERT_TAGS | ( | a | ) |
Does nothing.
| #define ASSERT_OBJECT | ( | a | ) |
Value:
assert((a == 0) || \
( (*((a)->vt()->clss->get_class_handle()))->vt()->clss == \
VM_Global_State::loader_env->JavaLangClass_Class))
| #define ALLOC_FRAME | ( | sz | ) | alloca(sz) |
Calls alloca(sz).
| #define FREE_FRAME | ( | ptr | ) |
If INTERPRETER_USE_MALLOC_ALLOCATION is on, does nothing.
| #define uword uint32 |
| #define word int32 |
| #define VAL32 |
| #define MAKEREFVAL | ( | _val_ | ) | (*((ManagedObject**)(&(_val_)))) |
| #define MAKECRVAL | ( | _val_ | ) | (*((COMPRESSED_REFERENCE*)(&(_val_)))) |
| #define STORE_UREF_BY_ADDR | ( | _addr_, | |||
| _val_ | ) |
Value:
if (REFS_IS_COMPRESSED_MODE) { \ *((COMPRESSED_REFERENCE*)(_addr_)) = compress_reference(_val_); \ } else { \ *((ManagedObject**)(_addr_)) = (ManagedObject*)(_val_); \ }
| #define UNCOMPRESS_REF | ( | cref | ) |
Value:
( REFS_IS_COMPRESSED_MODE ? \
(uncompress_compressed_reference(MAKECRVAL(cref))) : \
(MAKEREFVAL(cref)))
| #define COMPRESS_INTERP | ( | ref | ) | ((ManagedObject*)(ref)) |
| #define UNCOMPRESS_INTERP | ( | cref | ) | ((ManagedObject*)(cref)) |
| #define REF_NULL 0 |
| #define s0 1 |
The stack value.
| #define s1 0 |
| #define l0 0 |
The local value.
| #define l1 1 |
The local value.
| #define c0 0 |
The constant value.
| #define c1 1 |
The constant value.
| #define a0 0 |
The argument value.
| #define a1 1 |
The argument value.
| #define ar0 0 |
The array value.
| #define ar1 1 |
The array value.
| #define res0 1 |
The result value.
| #define res1 0 |
The result value.
| #define SETUP_LOCALS_AND_STACK | ( | frame, | |||
| method | ) |
Value:
int max_stack = method->get_max_stack(); \ frame.stack.init(ALLOC_FRAME( \ Stack::getStorageSize(max_stack)), max_stack); \ int max_locals = method->get_max_locals(); \ frame.locals.init(ALLOC_FRAME( \ Locals::getStorageSize(max_locals)), max_locals)
| typedef ManagedObject* REF |
| anonymous enum |
| enum PopFrameState |
The interpreter jvmti events.
TRUE if the interpreter enables debug.
The global flags' section.
Bitwise or of enabled interpreter_ti_events
Genereated on Tue Mar 11 19:25:37 2008 by Doxygen.
(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.