Main Page   Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

abstract_interpreter Class Reference

#include <abstract_interpreter.h>

Class diagram for abstract_interpreter:

AnywhereObj VMObj stacking_interpreter interpreter UplevelAccessedLocalsBytecodeScanner BytecodePrinter BytecodeNLRScanner BytecodeLoopScanner BytecodeFixerUpper BytecodeBranchScanner BranchTargetFinder BlockBytecodeScanner AccessedLocalsBytecodeScanner

List of all members.

Public Members

 abstract_interpreter (oop meth)
 abstract_interpreter (methodMap *m)
 abstract_interpreter (byteVectorOop codes, objVectorOop literals)
char* get_error_msg ()
virtual void interpret_method ()
virtual void interpret_bytecode ()
virtual void fetch_and_decode_bytecode ()
void dispatch_bytecode ()
void print_short ()
virtual bool verify ()
fint pc

Protected Members

void set_error_msg (char* s)
virtual void check_branch_target (oop p)
virtual bool check (aiCheckFn fn, oop p = NULL)
virtual bool check_for_pop (oop)
oop get_literal ()
stringOop get_selector ()
int32 get_branch_pc ()
objVectorOop get_branch_vector ()
void pre_INDEX_CODE ()
void pre_SEND_CODE ()
void pre_IMPLICIT_SEND_CODE ()
void pre_LEXICAL_LEVEL_CODE ()
void pre_READ_LOCAL_CODE ()
void pre_WRITE_LOCAL_CODE ()
void pre_LITERAL_CODE ()
void pre_DELEGATEE_CODE ()
void pre_SELF_CODE ()
void pre_POP_CODE ()
void pre_NONLOCAL_RETURN_CODE ()
void pre_UNDIRECTED_RESEND_CODE ()
void pre_DIRECTED_RESEND_CODE ()
void pre_branch_code ()
void pre_BRANCH_CODE ()
void pre_BRANCH_TRUE_CODE ()
void pre_BRANCH_FALSE_CODE ()
void pre_BRANCH_INDEXED_CODE ()
void pre_illegal_no_operand_code ()
void pre_illegal_code ()
virtual void do_SELF_CODE ()
virtual void do_POP_CODE ()
virtual void do_NONLOCAL_RETURN_CODE ()
virtual void do_INDEX_CODE ()
virtual void do_literal_code (oop lit)
virtual void do_LITERAL_CODE ()
virtual void do_read_write_local_code (bool isWrite)
virtual void do_READ_LOCAL_CODE ()
virtual void do_WRITE_LOCAL_CODE ()
virtual void do_send_code (bool isSelfImplicit, stringOop selector)
virtual void do_SEND_CODE ()
virtual void do_IMPLICIT_SEND_CODE ()
virtual void do_UNDIRECTED_RESEND_CODE ()
virtual void do_DELEGATEE_CODE ()
virtual void do_LEXICAL_LEVEL_CODE ()
virtual void do_branch_code ( int32 target_PC, oop target_oop = badOop )
virtual void do_BRANCH_CODE ()
virtual void do_BRANCH_TRUE_CODE ()
virtual void do_BRANCH_FALSE_CODE ()
virtual void do_BRANCH_INDEXED_CODE ()
virtual void do_illegal_no_operand_code ()
virtual void do_illegal_code ()
void post_SELF_CODE ()
void post_POP_CODE ()
void post_NONLOCAL_RETURN_CODE ()
void post_INDEX_CODE ()
void post_LITERAL_CODE ()
void post_READ_LOCAL_CODE ()
void post_WRITE_LOCAL_CODE ()
void post_SEND_CODE ()
void post_IMPLICIT_SEND_CODE ()
void post_UNDIRECTED_RESEND_CODE ()
void post_DELEGATEE_CODE ()
void post_LEXICAL_LEVEL_CODE ()
void post_BRANCH_CODE ()
void post_BRANCH_TRUE_CODE ()
void post_BRANCH_FALSE_CODE ()
void post_BRANCH_INDEXED_CODE ()
void post_illegal_no_operand_code ()
void post_illegal_code ()
char* error_msg
class abstract_interpreter_method_info mi
class abstract_interpreter_bytecode_info bc
class abstract_interpreter_interbytecode_state is

Friends

Location location_of_interpreter (void*)
void check_index_range ( abstract_interpreter*, oop)
void check_selector_string ( abstract_interpreter*, oop)
void check_branch_target ( abstract_interpreter*, oop)
void check_no_send_modifiers ( abstract_interpreter*, oop)
void check_no_lexical_level ( abstract_interpreter*, oop)
void check_no_two_send_modifiers ( abstract_interpreter*, oop)
void check_no_operand ( abstract_interpreter*, oop)
void check_delegatee ( abstract_interpreter*, oop)
void check_branch_vector ( abstract_interpreter*, oop)
void check_for_pop ( abstract_interpreter*, oop)
class  frame
class  FrameIterator
class  InterpreterIterator

Detailed Description


Member Function Documentation

abstract_interpreter::abstract_interpreter (oop meth) [inline]

abstract_interpreter::abstract_interpreter (methodMap * m) [inline]

abstract_interpreter::abstract_interpreter (byteVectorOop codes, objVectorOop literals) [inline]

char * abstract_interpreter::get_error_msg () [inline]

void abstract_interpreter::interpret_method () [virtual]

Reimplemented in BlockBytecodeScanner, BytecodeChecker, BytecodeFixerUpper, BytecodePrinter, ExprStackBCIsBytecodeScanner, ExprStackBytecodeScanner, interpreter, and StatementBoundaryBytecodeScanner.

virtual void abstract_interpreter::interpret_bytecode () [inline, virtual]

Reimplemented in BytecodeFixerUpper, and ExprStackBytecodeScanner.

void abstract_interpreter::fetch_and_decode_bytecode () [virtual]

void abstract_interpreter::dispatch_bytecode ()

void abstract_interpreter::print_short () [virtual]

Reimplemented from VMObj.

bool abstract_interpreter::verify () [virtual]

void abstract_interpreter::set_error_msg (char * s) [inline, protected]

virtual void abstract_interpreter::check_branch_target (oop p) [inline, protected, virtual]

virtual bool abstract_interpreter::check (aiCheckFn fn, oop p = NULL) [inline, protected, virtual]

Reimplemented in BytecodeChecker, and BytecodePrinter.

virtual bool abstract_interpreter::check_for_pop (oop n) [inline, protected, virtual]

Reimplemented in stacking_interpreter.

oop abstract_interpreter::get_literal () [inline, protected]

stringOop abstract_interpreter::get_selector () [inline, protected]

int32 abstract_interpreter::get_branch_pc () [inline, protected]

objVectorOop abstract_interpreter::get_branch_vector () [inline, protected]

void abstract_interpreter::pre_INDEX_CODE () [inline, protected]

void abstract_interpreter::pre_SEND_CODE () [inline, protected]

void abstract_interpreter::pre_IMPLICIT_SEND_CODE () [inline, protected]

void abstract_interpreter::pre_LEXICAL_LEVEL_CODE () [inline, protected]

void abstract_interpreter::pre_READ_LOCAL_CODE () [inline, protected]

void abstract_interpreter::pre_WRITE_LOCAL_CODE () [inline, protected]

void abstract_interpreter::pre_LITERAL_CODE () [inline, protected]

void abstract_interpreter::pre_DELEGATEE_CODE () [inline, protected]

void abstract_interpreter::pre_SELF_CODE () [inline, protected]

void abstract_interpreter::pre_POP_CODE () [inline, protected]

void abstract_interpreter::pre_NONLOCAL_RETURN_CODE () [inline, protected]

void abstract_interpreter::pre_UNDIRECTED_RESEND_CODE () [inline, protected]

void abstract_interpreter::pre_DIRECTED_RESEND_CODE () [inline, protected]

void abstract_interpreter::pre_branch_code () [inline, protected]

void abstract_interpreter::pre_BRANCH_CODE () [inline, protected]

void abstract_interpreter::pre_BRANCH_TRUE_CODE () [inline, protected]

void abstract_interpreter::pre_BRANCH_FALSE_CODE () [inline, protected]

void abstract_interpreter::pre_BRANCH_INDEXED_CODE () [inline, protected]

void abstract_interpreter::pre_illegal_no_operand_code () [inline, protected]

void abstract_interpreter::pre_illegal_code () [inline, protected]

virtual void abstract_interpreter::do_SELF_CODE () [inline, protected, virtual]

Reimplemented in AccessedLocalsBytecodeScanner, BytecodeFixerUpper, BytecodePrinter, ExprStackBCIsBytecodeScanner, interpreter, and stacking_interpreter.

virtual void abstract_interpreter::do_POP_CODE () [inline, protected, virtual]

Reimplemented in BytecodeFixerUpper, BytecodePrinter, ExprStackBCIsBytecodeScanner, interpreter, and stacking_interpreter.

virtual void abstract_interpreter::do_NONLOCAL_RETURN_CODE () [inline, protected, virtual]

Reimplemented in BytecodeChecker, BytecodeFixerUpper, BytecodeNLRScanner, BytecodePrinter, and interpreter.

virtual void abstract_interpreter::do_INDEX_CODE () [inline, protected, virtual]

Reimplemented in BytecodePrinter.

virtual void abstract_interpreter::do_literal_code (oop lit) [inline, protected, virtual]

Reimplemented in AccessedLocalsBytecodeScanner, BlockBytecodeScanner, BytecodeFixerUpper, BytecodeNLRScanner, BytecodePrinter, ExprStackBCIsBytecodeScanner, interpreter, stacking_interpreter, and UplevelAccessedLocalsBytecodeScanner.

void abstract_interpreter::do_LITERAL_CODE () [protected, virtual]

virtual void abstract_interpreter::do_read_write_local_code (bool isWrite) [inline, protected, virtual]

Reimplemented in BytecodeChecker, BytecodeFixerUpper, BytecodePrinter, ExprStackBCIsBytecodeScanner, interpreter, stacking_interpreter, and UplevelAccessedLocalsBytecodeScanner.

virtual void abstract_interpreter::do_READ_LOCAL_CODE () [inline, protected, virtual]

virtual void abstract_interpreter::do_WRITE_LOCAL_CODE () [inline, protected, virtual]

virtual void abstract_interpreter::do_send_code (bool isSelfImplicit, stringOop selector) [inline, protected, virtual]

Reimplemented in AccessedLocalsBytecodeScanner, BytecodePrinter, ExprStackBCIsBytecodeScanner, ExprStackBytecodeScanner, interpreter, and stacking_interpreter.

virtual void abstract_interpreter::do_SEND_CODE () [inline, protected, virtual]

Reimplemented in BytecodeFixerUpper.

virtual void abstract_interpreter::do_IMPLICIT_SEND_CODE () [inline, protected, virtual]

Reimplemented in BytecodeFixerUpper.

virtual void abstract_interpreter::do_UNDIRECTED_RESEND_CODE () [inline, protected, virtual]

Reimplemented in BytecodePrinter.

virtual void abstract_interpreter::do_DELEGATEE_CODE () [inline, protected, virtual]

Reimplemented in BytecodePrinter.

virtual void abstract_interpreter::do_LEXICAL_LEVEL_CODE () [inline, protected, virtual]

Reimplemented in BytecodeChecker, and BytecodePrinter.

virtual void abstract_interpreter::do_branch_code (int32 target_PC, oop target_oop = badOop) [inline, protected, virtual]

Reimplemented in BranchTargetFinder, BytecodeBranchScanner, BytecodeChecker, BytecodeLoopScanner, interpreter, and stacking_interpreter.

virtual void abstract_interpreter::do_BRANCH_CODE () [inline, protected, virtual]

Reimplemented in BytecodeChecker, BytecodeFixerUpper, and BytecodePrinter.

virtual void abstract_interpreter::do_BRANCH_TRUE_CODE () [inline, protected, virtual]

Reimplemented in BytecodeFixerUpper, and BytecodePrinter.

virtual void abstract_interpreter::do_BRANCH_FALSE_CODE () [inline, protected, virtual]

Reimplemented in BytecodeFixerUpper, and BytecodePrinter.

virtual void abstract_interpreter::do_BRANCH_INDEXED_CODE () [inline, protected, virtual]

Reimplemented in BranchTargetFinder, BytecodeBranchScanner, BytecodeChecker, BytecodeFixerUpper, BytecodeLoopScanner, BytecodePrinter, interpreter, and stacking_interpreter.

virtual void abstract_interpreter::do_illegal_no_operand_code () [inline, protected, virtual]

virtual void abstract_interpreter::do_illegal_code () [inline, protected, virtual]

Reimplemented in BytecodeChecker.

void abstract_interpreter::post_SELF_CODE () [inline, protected]

void abstract_interpreter::post_POP_CODE () [inline, protected]

void abstract_interpreter::post_NONLOCAL_RETURN_CODE () [inline, protected]

void abstract_interpreter::post_INDEX_CODE () [inline, protected]

void abstract_interpreter::post_LITERAL_CODE () [inline, protected]

void abstract_interpreter::post_READ_LOCAL_CODE () [inline, protected]

void abstract_interpreter::post_WRITE_LOCAL_CODE () [inline, protected]

void abstract_interpreter::post_SEND_CODE () [inline, protected]

void abstract_interpreter::post_IMPLICIT_SEND_CODE () [inline, protected]

void abstract_interpreter::post_UNDIRECTED_RESEND_CODE () [inline, protected]

void abstract_interpreter::post_DELEGATEE_CODE () [inline, protected]

void abstract_interpreter::post_LEXICAL_LEVEL_CODE () [inline, protected]

void abstract_interpreter::post_BRANCH_CODE () [inline, protected]

void abstract_interpreter::post_BRANCH_TRUE_CODE () [inline, protected]

void abstract_interpreter::post_BRANCH_FALSE_CODE () [inline, protected]

void abstract_interpreter::post_BRANCH_INDEXED_CODE () [inline, protected]

void abstract_interpreter::post_illegal_no_operand_code () [inline, protected]

void abstract_interpreter::post_illegal_code () [inline, protected]


Friends And Related Function Documentation

Location location_of_interpreter (void *) [friend]

void check_index_range (abstract_interpreter * ai, oop) [friend]

void check_selector_string (abstract_interpreter * ai, oop s) [friend]

void check_branch_target (abstract_interpreter * ai, oop p) [friend]

void check_no_send_modifiers (abstract_interpreter * ai, oop) [friend]

void check_no_lexical_level (abstract_interpreter * ai, oop) [friend]

void check_no_two_send_modifiers (abstract_interpreter * ai, oop) [friend]

void check_no_operand (abstract_interpreter * ai, oop) [friend]

void check_delegatee (abstract_interpreter * ai, oop) [friend]

void check_branch_vector (abstract_interpreter * ai, oop) [friend]

void check_for_pop (abstract_interpreter * ai, oop n) [friend]

friend class frame [friend]

friend class FrameIterator [friend]

friend class InterpreterIterator [friend]

Reimplemented in interpreter.


Member Data Documentation

fint abstract_interpreter::pc

char* abstract_interpreter::error_msg [protected]

class abstract_interpreter_method_info abstract_interpreter::mi [protected]

class abstract_interpreter_bytecode_info abstract_interpreter::bc [protected]

class abstract_interpreter_interbytecode_state abstract_interpreter::is [protected]


The documentation for this class was generated from the following files:
Generated at Tue Jun 27 12:11:21 2000 for SelfVM by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999