Interpreter Class Reference

#include <interpreter.hpp>

Inheritance diagram for Interpreter:

Inheritance graph
[legend]
Collaboration diagram for Interpreter:

Collaboration graph
[legend]
List of all members.

Static Public Member Functions

static bool contains (char *pc)
static bool is_optimized ()
static bool can_trace_bytecodes ()
static bool can_trace_sends ()
static bool has_assertions ()
static bool has_stack_checks ()
static bool has_timers ()
static void print_code_status ()
static void loop_counter_overflow ()
static int loop_counter ()
static void reset_loop_counter ()
static int loop_counter_limit ()
static void set_loop_counter_limit (int limit)
static void set_invocation_counter_limit (int new_limit)
static int get_invocation_counter_limit ()
static char * redo_send_entry ()
static bool is_initialized ()
static void init ()

Static Public Attributes

static char * _last_native_called = NULL

Static Private Member Functions

static void trace_bytecode ()
static void wrong_eax ()
static void wrong_ebx ()
static void wrong_esp ()
static void wrong_obj ()
static void wrong_primitive_result ()
static doubleOop oopify_FloatValue ()

Static Private Attributes

static bool _is_initialized = false
static char * _code_begin_addr = NULL
static char * _code_end_addr = NULL
static int * _invocation_counter_addr = NULL
static char * _redo_send_entry = NULL

Friends

class InterpreterGenerator

Detailed Description

Definition at line 25 of file interpreter.hpp.


Member Function Documentation

bool Interpreter::can_trace_bytecodes (  )  [static]

Definition at line 75 of file interpreter.cpp.

References InterpreterCodeStatus().

Referenced by print_code_status().

Here is the call graph for this function:

bool Interpreter::can_trace_sends (  )  [static]

Definition at line 76 of file interpreter.cpp.

References InterpreterCodeStatus().

Referenced by print_code_status().

Here is the call graph for this function:

bool Interpreter::contains ( char *  pc  )  [static]

Definition at line 65 of file interpreter.cpp.

References _code_begin_addr, _code_end_addr, interpreter_begin_addr, and interpreter_end_addr.

Referenced by frame::is_interpreted_frame().

int Interpreter::get_invocation_counter_limit (  )  [static]

Definition at line 230 of file interpreter.cpp.

References methodOopDesc::_invocation_count_offset, methodOopDesc::_invocation_count_width, _invocation_counter_addr, assert, and get_unsigned_bitfield().

Referenced by PRIM_DECL_0().

Here is the call graph for this function:

bool Interpreter::has_assertions (  )  [static]

Definition at line 77 of file interpreter.cpp.

References InterpreterCodeStatus().

Referenced by print_code_status().

Here is the call graph for this function:

bool Interpreter::has_stack_checks (  )  [static]

Definition at line 78 of file interpreter.cpp.

References InterpreterCodeStatus().

Referenced by print_code_status().

Here is the call graph for this function:

bool Interpreter::has_timers (  )  [static]

Definition at line 79 of file interpreter.cpp.

References InterpreterCodeStatus().

Referenced by print_code_status().

Here is the call graph for this function:

void Interpreter::init (  )  [static]

Definition at line 238 of file interpreter.cpp.

References _is_initialized, reset_loop_counter(), set_invocation_counter_limit(), and set_loop_counter_limit().

Here is the call graph for this function:

static bool Interpreter::is_initialized (  )  [inline, static]

Definition at line 78 of file interpreter.hpp.

References _is_initialized.

bool Interpreter::is_optimized (  )  [static]

Definition at line 74 of file interpreter.cpp.

References InterpreterCodeStatus().

Referenced by Universe::genesis(), and print_code_status().

Here is the call graph for this function:

int Interpreter::loop_counter (  )  [static]

Definition at line 121 of file interpreter.cpp.

References interpreter_loop_counter.

int Interpreter::loop_counter_limit (  )  [static]

Definition at line 131 of file interpreter.cpp.

References interpreter_loop_counter_limit.

Referenced by loop_counter_overflow().

void Interpreter::loop_counter_overflow (  )  [static]

Definition at line 105 of file interpreter.cpp.

References DeltaProcess::active(), outputStream::cr(), debug(), methodOopDesc::invocation_count(), DeltaProcess::last_frame(), loop_counter_limit(), frame::method(), outputStream::print(), oopDesc::print_value(), reset_loop_counter(), methodOopDesc::set_invocation_count(), and std.

Referenced by loop_counter_overflow().

Here is the call graph for this function:

doubleOop Interpreter::oopify_FloatValue (  )  [static, private]

Definition at line 208 of file interpreter.cpp.

References DeltaProcess::active(), assert, float_0_offset, Bytecodes::float_unary_op_to_oop, floatSize, frame::fp(), frame::hp(), DeltaProcess::last_frame(), max_nof_floats, oopFactory::new_double(), and Floats::oopify.

Here is the call graph for this function:

void Interpreter::print_code_status (  )  [static]

Definition at line 82 of file interpreter.cpp.

References can_trace_bytecodes(), can_trace_sends(), outputStream::cr(), has_assertions(), has_stack_checks(), has_timers(), is_optimized(), outputStream::print(), outputStream::print_cr(), and std.

Referenced by Universe::genesis().

Here is the call graph for this function:

static char* Interpreter::redo_send_entry (  )  [inline, static]

Definition at line 75 of file interpreter.hpp.

References _redo_send_entry.

void Interpreter::reset_loop_counter (  )  [static]

Definition at line 126 of file interpreter.cpp.

References interpreter_loop_counter.

Referenced by init(), and loop_counter_overflow().

void Interpreter::set_invocation_counter_limit ( int  new_limit  )  [static]

Definition at line 222 of file interpreter.cpp.

References methodOopDesc::_invocation_count_max, methodOopDesc::_invocation_count_offset, _invocation_counter_addr, and assert.

Referenced by init(), and PRIM_DECL_1().

void Interpreter::set_loop_counter_limit ( int  limit  )  [static]

Definition at line 136 of file interpreter.cpp.

References assert, and interpreter_loop_counter_limit.

Referenced by init(), and PRIM_DECL_1().

void Interpreter::trace_bytecode (  )  [static, private]

Definition at line 174 of file interpreter.cpp.

References DeltaProcess::active(), frame::hp(), DeltaProcess::last_frame(), Bytecodes::name(), outputStream::print(), and std.

Referenced by InterpreterGenerator::jump_ebx(), and InterpreterGenerator::jump_edi().

Here is the call graph for this function:

void Interpreter::wrong_eax (  )  [static, private]

Definition at line 183 of file interpreter.cpp.

References fatal.

void Interpreter::wrong_ebx (  )  [static, private]

Definition at line 188 of file interpreter.cpp.

References fatal.

Referenced by InterpreterGenerator::check_ebx().

void Interpreter::wrong_esp (  )  [static, private]

Definition at line 193 of file interpreter.cpp.

References fatal.

void Interpreter::wrong_obj (  )  [static, private]

Definition at line 198 of file interpreter.cpp.

References fatal.

Referenced by InterpreterGenerator::check_oop().

void Interpreter::wrong_primitive_result (  )  [static, private]

Definition at line 203 of file interpreter.cpp.

References fatal.


Friends And Related Function Documentation

friend class InterpreterGenerator [friend]

Definition at line 81 of file interpreter.hpp.


Member Data Documentation

char * Interpreter::_code_begin_addr = NULL [static, private]

Definition at line 28 of file interpreter.hpp.

Referenced by contains().

char * Interpreter::_code_end_addr = NULL [static, private]

Definition at line 29 of file interpreter.hpp.

Referenced by contains().

int * Interpreter::_invocation_counter_addr = NULL [static, private]

Definition at line 30 of file interpreter.hpp.

Referenced by get_invocation_counter_limit(), and set_invocation_counter_limit().

bool Interpreter::_is_initialized = false [static, private]

Definition at line 27 of file interpreter.hpp.

Referenced by init(), and is_initialized().

char * Interpreter::_last_native_called = NULL [static]

Definition at line 49 of file interpreter.hpp.

char * Interpreter::_redo_send_entry = NULL [static, private]

Definition at line 31 of file interpreter.hpp.

Referenced by redo_send_entry().


The documentation for this class was generated from the following files:
Generated on Mon Oct 9 14:02:55 2006 for Strongtalk VM by  doxygen 1.4.7