MethodPrettyPrinter Class Reference

Inheritance diagram for MethodPrettyPrinter:

Inheritance graph
[legend]
Collaboration diagram for MethodPrettyPrinter:

Collaboration graph
[legend]
List of all members.

Public Member Functions

void _push (astNode *node)
astNode_pop ()
astNode_top ()
int _size () const
scopeNodescope () const
 MethodPrettyPrinter (scopeNode *scope)
void if_node (IfNode *node)
void cond_node (CondNode *node)
void while_node (WhileNode *node)
void primitive_call_node (PrimitiveCallNode *node)
void dll_call_node (DLLCallNode *node)
void pop ()
void method_return (int nofArgs)
void nonlocal_return (int nofArgs)
void allocate_closure (AllocationType type, int nofArgs, methodOop meth)
void allocate_context (int nofTemps, bool forMethod)
void normal_send (InterpretedIC *ic)
void self_send (InterpretedIC *ic)
void super_send (InterpretedIC *ic)
void double_equal ()
void double_not_equal ()
void push_self ()
void push_tos ()
void push_literal (oop obj)
void push_argument (int no)
void push_temporary (int no)
void push_temporary (int no, int context)
void push_instVar (int offset)
void push_instVar_name (symbolOop name)
void push_classVar (associationOop assoc)
void push_classVar_name (symbolOop name)
void push_global (associationOop obj)
void store_temporary (int no)
void store_temporary (int no, int context)
void store_instVar (int offset)
void store_instVar_name (symbolOop name)
void store_classVar (associationOop assoc)
void store_classVar_name (symbolOop name)
void store_global (associationOop obj)
void allocate_temporaries (int nofTemps)
void set_self_via_context ()
void copy_self_into_context ()
void copy_argument_into_context (int argNo, int no)
void zap_scope ()
void predict_prim_call (primitive_desc *pdesc, int failure_start)
void float_allocate (int nofFloatTemps, int nofFloatExprs)
void float_floatify (Floats::Function f, int tof)
void float_move (int tof, int from)
void float_set (int tof, doubleOop value)
void float_nullary (Floats::Function f, int tof)
void float_unary (Floats::Function f, int tof)
void float_binary (Floats::Function f, int tof)
void float_unaryToOop (Floats::Function f, int tof)
void float_binaryToOop (Floats::Function f, int tof)

Private Member Functions

void normal_send (symbolOop selector, bool is_prim=false)
void special_send (astNode *receiver, symbolOop selector, bool is_prim=false)
astNodegenerateInlineBlock (MethodInterval *interval, bool produces_result, astNode *push_elem=NULL)
void store (astNode *node)

Private Attributes

GrowableArray< astNode * > * _stack
scopeNode_scope

Detailed Description

Definition at line 1294 of file prettyPrinter.cpp.


Constructor & Destructor Documentation

MethodPrettyPrinter::MethodPrettyPrinter ( scopeNode scope  ) 

Definition at line 1409 of file prettyPrinter.cpp.

References _push(), _scope, _stack, methodOopDesc::is_blockMethod(), scopeNode::method(), methodOopDesc::number_of_arguments(), and scope().

Here is the call graph for this function:


Member Function Documentation

astNode* MethodPrettyPrinter::_pop (  )  [inline]

Definition at line 1309 of file prettyPrinter.cpp.

References _stack, and GrowableArray< E >::pop().

Referenced by allocate_closure(), dll_call_node(), generateInlineBlock(), method_return(), nonlocal_return(), normal_send(), pop(), special_send(), and store().

Here is the call graph for this function:

void MethodPrettyPrinter::_push ( astNode node  )  [inline]

Definition at line 1308 of file prettyPrinter.cpp.

References _stack, and GrowableArray< E >::push().

Referenced by allocate_closure(), cond_node(), dll_call_node(), float_binary(), float_binaryToOop(), float_move(), float_unary(), float_unaryToOop(), generateInlineBlock(), if_node(), MethodPrettyPrinter(), normal_send(), pop(), primitive_call_node(), push_argument(), push_classVar(), push_classVar_name(), push_global(), push_instVar(), push_instVar_name(), push_literal(), push_self(), push_temporary(), push_tos(), special_send(), store(), and while_node().

Here is the call graph for this function:

int MethodPrettyPrinter::_size (  )  const [inline]

Definition at line 1311 of file prettyPrinter.cpp.

References _stack, and GenericGrowableArray::length().

Referenced by generate(), method_return(), nonlocal_return(), StackChecker::StackChecker(), and StackChecker::~StackChecker().

Here is the call graph for this function:

astNode* MethodPrettyPrinter::_top (  )  [inline]

Definition at line 1310 of file prettyPrinter.cpp.

References _stack, and GrowableArray< E >::top().

Referenced by generate(), method_return(), nonlocal_return(), pop(), and push_tos().

Here is the call graph for this function:

void MethodPrettyPrinter::allocate_closure ( AllocationType  type,
int  nofArgs,
methodOop  meth 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1329 of file prettyPrinter.cpp.

References _pop(), _push(), generateForBlock(), scope(), and tos_as_scope.

Here is the call graph for this function:

void MethodPrettyPrinter::allocate_context ( int  nofTemps,
bool  forMethod 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1333 of file prettyPrinter.cpp.

References scopeNode::context_allocated(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::allocate_temporaries ( int  nofTemps  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1365 of file prettyPrinter.cpp.

void MethodPrettyPrinter::cond_node ( CondNode node  )  [virtual]

Implements MethodClosure.

Definition at line 1554 of file prettyPrinter.cpp.

References _push(), CondNode::expr_code(), generateInlineBlock(), normal_send(), and InlineSendNode::selector().

Here is the call graph for this function:

void MethodPrettyPrinter::copy_argument_into_context ( int  argNo,
int  no 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1368 of file prettyPrinter.cpp.

void MethodPrettyPrinter::copy_self_into_context (  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1367 of file prettyPrinter.cpp.

void MethodPrettyPrinter::dll_call_node ( DLLCallNode node  )  [virtual]

Implements MethodClosure.

Definition at line 1579 of file prettyPrinter.cpp.

References _pop(), _push(), dllNode::add_param(), GrowableArray< E >::at(), MethodClosure::bci(), DLLCallNode::dll_name(), DLLCallNode::function_name(), DLLCallNode::nofArgs(), GrowableArray< E >::push(), scope(), and dllNode::set_proxy().

Here is the call graph for this function:

void MethodPrettyPrinter::double_equal (  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1341 of file prettyPrinter.cpp.

References normal_send().

Here is the call graph for this function:

void MethodPrettyPrinter::double_not_equal (  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1342 of file prettyPrinter.cpp.

References normal_send().

Here is the call graph for this function:

void MethodPrettyPrinter::float_allocate ( int  nofFloatTemps,
int  nofFloatExprs 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1372 of file prettyPrinter.cpp.

void MethodPrettyPrinter::float_binary ( Floats::Function  f,
int  tof 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1389 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), normal_send(), pop(), scope(), and Floats::selector_for().

Here is the call graph for this function:

void MethodPrettyPrinter::float_binaryToOop ( Floats::Function  f,
int  tof 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1401 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), normal_send(), scope(), and Floats::selector_for().

Here is the call graph for this function:

void MethodPrettyPrinter::float_floatify ( Floats::Function  f,
int  tof 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1373 of file prettyPrinter.cpp.

References normal_send(), pop(), and Floats::selector_for().

Here is the call graph for this function:

void MethodPrettyPrinter::float_move ( int  tof,
int  from 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1377 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), pop(), scope(), and store().

Here is the call graph for this function:

void MethodPrettyPrinter::float_nullary ( Floats::Function  f,
int  tof 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1383 of file prettyPrinter.cpp.

void MethodPrettyPrinter::float_set ( int  tof,
doubleOop  value 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1382 of file prettyPrinter.cpp.

void MethodPrettyPrinter::float_unary ( Floats::Function  f,
int  tof 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1384 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), normal_send(), pop(), scope(), and Floats::selector_for().

Here is the call graph for this function:

void MethodPrettyPrinter::float_unaryToOop ( Floats::Function  f,
int  tof 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1396 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), normal_send(), scope(), and Floats::selector_for().

Here is the call graph for this function:

astNode * MethodPrettyPrinter::generateInlineBlock ( MethodInterval interval,
bool  produces_result,
astNode push_elem = NULL 
) [private]

Definition at line 1534 of file prettyPrinter.cpp.

References _pop(), _push(), MethodClosure::bci(), pop(), and scope().

Referenced by cond_node(), if_node(), primitive_call_node(), and while_node().

Here is the call graph for this function:

void MethodPrettyPrinter::if_node ( IfNode node  )  [virtual]

Implements MethodClosure.

Definition at line 1544 of file prettyPrinter.cpp.

References _push(), IfNode::else_code(), generateInlineBlock(), normal_send(), pop(), IfNode::produces_result(), IfNode::selector(), and IfNode::then_code().

Here is the call graph for this function:

void MethodPrettyPrinter::method_return ( int  nofArgs  )  [virtual]

Implements MethodClosure.

Definition at line 1480 of file prettyPrinter.cpp.

References _pop(), _size(), _top(), astNode::add(), MethodClosure::bci(), fatal1, astNode::is_code(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::nonlocal_return ( int  nofArgs  )  [virtual]

Implements MethodClosure.

Definition at line 1498 of file prettyPrinter.cpp.

References _pop(), _size(), _top(), MethodClosure::bci(), fatal1, astNode::is_code(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::normal_send ( InterpretedIC ic  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1338 of file prettyPrinter.cpp.

References normal_send(), and InterpretedIC::selector().

Here is the call graph for this function:

void MethodPrettyPrinter::normal_send ( symbolOop  selector,
bool  is_prim = false 
) [private]

Definition at line 1419 of file prettyPrinter.cpp.

References _pop(), _push(), messageNode::add_param(), GrowableArray< E >::at(), MethodClosure::bci(), byteArrayOopDesc::number_of_arguments(), GrowableArray< E >::push(), scope(), and messageNode::set_receiver().

Referenced by cond_node(), double_equal(), double_not_equal(), float_binary(), float_binaryToOop(), float_floatify(), float_unary(), float_unaryToOop(), if_node(), normal_send(), primitive_call_node(), and while_node().

Here is the call graph for this function:

void MethodPrettyPrinter::pop (  )  [virtual]

Implements MethodClosure.

Definition at line 1453 of file prettyPrinter.cpp.

References _pop(), _push(), _top(), astNode::add(), MethodClosure::bci(), astNode::is_code(), astNode::is_message(), and scope().

Referenced by float_binary(), float_floatify(), float_move(), float_unary(), generateInlineBlock(), if_node(), and while_node().

Here is the call graph for this function:

void MethodPrettyPrinter::predict_prim_call ( primitive_desc pdesc,
int  failure_start 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1370 of file prettyPrinter.cpp.

void MethodPrettyPrinter::primitive_call_node ( PrimitiveCallNode node  )  [virtual]

Implements MethodClosure.

Definition at line 1569 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), ExternalCallNode::failure_code(), generateInlineBlock(), PrimitiveCallNode::has_receiver(), PrimitiveCallNode::name(), normal_send(), scope(), and special_send().

Here is the call graph for this function:

void MethodPrettyPrinter::push_argument ( int  no  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1348 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::push_classVar ( associationOop  assoc  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1353 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::push_classVar_name ( symbolOop  name  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1354 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::push_global ( associationOop  obj  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1355 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::push_instVar ( int  offset  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1351 of file prettyPrinter.cpp.

References _push(), as_smiOop(), MethodClosure::bci(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::push_instVar_name ( symbolOop  name  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1352 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::push_literal ( oop  obj  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1347 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), get_literal_node(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::push_self (  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1345 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::push_temporary ( int  no,
int  context 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1350 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::push_temporary ( int  no  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1349 of file prettyPrinter.cpp.

References _push(), MethodClosure::bci(), and scope().

Here is the call graph for this function:

void MethodPrettyPrinter::push_tos (  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1346 of file prettyPrinter.cpp.

References _push(), and _top().

Here is the call graph for this function:

scopeNode* MethodPrettyPrinter::scope (  )  const [inline]

Definition at line 1312 of file prettyPrinter.cpp.

References _scope.

Referenced by allocate_closure(), allocate_context(), dll_call_node(), float_binary(), float_binaryToOop(), float_move(), float_unary(), float_unaryToOop(), generateInlineBlock(), method_return(), MethodPrettyPrinter(), nonlocal_return(), normal_send(), pop(), primitive_call_node(), push_argument(), push_classVar(), push_classVar_name(), push_global(), push_instVar(), push_instVar_name(), push_literal(), push_self(), push_temporary(), self_send(), special_send(), store(), store_classVar(), store_classVar_name(), store_global(), store_instVar(), store_instVar_name(), store_temporary(), and super_send().

void MethodPrettyPrinter::self_send ( InterpretedIC ic  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1339 of file prettyPrinter.cpp.

References MethodClosure::bci(), scope(), InterpretedIC::selector(), and special_send().

Here is the call graph for this function:

void MethodPrettyPrinter::set_self_via_context (  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1366 of file prettyPrinter.cpp.

void MethodPrettyPrinter::special_send ( astNode receiver,
symbolOop  selector,
bool  is_prim = false 
) [private]

Definition at line 1436 of file prettyPrinter.cpp.

References _pop(), _push(), messageNode::add_param(), GrowableArray< E >::at(), MethodClosure::bci(), byteArrayOopDesc::number_of_arguments(), GrowableArray< E >::push(), scope(), and messageNode::set_receiver().

Referenced by primitive_call_node(), self_send(), and super_send().

Here is the call graph for this function:

void MethodPrettyPrinter::store ( astNode node  )  [inline, private]

Definition at line 1305 of file prettyPrinter.cpp.

References _pop(), _push(), MethodClosure::bci(), and scope().

Referenced by float_move(), store_classVar(), store_classVar_name(), store_global(), store_instVar(), store_instVar_name(), and store_temporary().

Here is the call graph for this function:

void MethodPrettyPrinter::store_classVar ( associationOop  assoc  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1360 of file prettyPrinter.cpp.

References MethodClosure::bci(), scope(), and store().

Here is the call graph for this function:

void MethodPrettyPrinter::store_classVar_name ( symbolOop  name  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1361 of file prettyPrinter.cpp.

References MethodClosure::bci(), scope(), and store().

Here is the call graph for this function:

void MethodPrettyPrinter::store_global ( associationOop  obj  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1362 of file prettyPrinter.cpp.

References MethodClosure::bci(), scope(), and store().

Here is the call graph for this function:

void MethodPrettyPrinter::store_instVar ( int  offset  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1358 of file prettyPrinter.cpp.

References as_smiOop(), MethodClosure::bci(), scope(), and store().

Here is the call graph for this function:

void MethodPrettyPrinter::store_instVar_name ( symbolOop  name  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1359 of file prettyPrinter.cpp.

References MethodClosure::bci(), scope(), and store().

Here is the call graph for this function:

void MethodPrettyPrinter::store_temporary ( int  no,
int  context 
) [inline, virtual]

Implements MethodClosure.

Definition at line 1357 of file prettyPrinter.cpp.

References MethodClosure::bci(), scope(), and store().

Here is the call graph for this function:

void MethodPrettyPrinter::store_temporary ( int  no  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1356 of file prettyPrinter.cpp.

References MethodClosure::bci(), scope(), and store().

Here is the call graph for this function:

void MethodPrettyPrinter::super_send ( InterpretedIC ic  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1340 of file prettyPrinter.cpp.

References MethodClosure::bci(), scope(), InterpretedIC::selector(), and special_send().

Here is the call graph for this function:

void MethodPrettyPrinter::while_node ( WhileNode node  )  [virtual]

Implements MethodClosure.

Definition at line 1560 of file prettyPrinter.cpp.

References _push(), WhileNode::body_code(), WhileNode::expr_code(), generateInlineBlock(), normal_send(), pop(), and WhileNode::selector().

Here is the call graph for this function:

void MethodPrettyPrinter::zap_scope (  )  [inline, virtual]

Implements MethodClosure.

Definition at line 1369 of file prettyPrinter.cpp.


Member Data Documentation

scopeNode* MethodPrettyPrinter::_scope [private]

Definition at line 1297 of file prettyPrinter.cpp.

Referenced by MethodPrettyPrinter(), and scope().

GrowableArray<astNode*>* MethodPrettyPrinter::_stack [private]

Definition at line 1296 of file prettyPrinter.cpp.

Referenced by _pop(), _push(), _size(), _top(), and MethodPrettyPrinter().


The documentation for this class was generated from the following file:
Generated on Mon Oct 9 14:09:07 2006 for Strongtalk VM by  doxygen 1.4.7