java.lang.Object
Compil3r.Quad.QuadVisitor.EmptyVisitor
Interpreter.QuadInterpreter
- All Implemented Interfaces:
- Compil3r.Quad.QuadVisitor
- public class QuadInterpreter
- extends Compil3r.Quad.QuadVisitor.EmptyVisitor
- Version:
- $Id: QuadInterpreter.java,v 1.20 2003/05/12 10:05:17 joewhaley Exp $
| Nested classes inherited from class Compil3r.Quad.QuadVisitor |
Compil3r.Quad.QuadVisitor.AllQuadVisitor, Compil3r.Quad.QuadVisitor.EmptyVisitor |
|
Method Summary |
void |
branchTo(Compil3r.Quad.BasicBlock bb)
|
java.lang.String |
currentLocation()
|
java.lang.Object[] |
generateParamArray(Clazz.jq_Method f,
Compil3r.Quad.Operand.ParamListOperand plo)
|
java.lang.Throwable |
getCaught()
|
Compil3r.Quad.RegisterFactory.Register |
getExceptionRegister()
|
java.lang.Object |
getReg_A(Compil3r.Quad.RegisterFactory.Register r)
|
double |
getReg_D(Compil3r.Quad.RegisterFactory.Register r)
|
float |
getReg_F(Compil3r.Quad.RegisterFactory.Register r)
|
int |
getReg_I(Compil3r.Quad.RegisterFactory.Register r)
|
long |
getReg_L(Compil3r.Quad.RegisterFactory.Register r)
|
Memory.Address |
getReg_P(Compil3r.Quad.RegisterFactory.Register r)
|
java.lang.Object |
getReg(Compil3r.Quad.RegisterFactory.Register r)
|
java.lang.Object |
getReturnValue()
|
java.lang.Throwable |
getThrown()
|
void |
handleException(java.lang.Throwable x)
|
static QuadInterpreter |
interpretMethod(Clazz.jq_Method f,
java.lang.Object[] params)
|
void |
interpretMethod(Clazz.jq_Method m,
java.lang.Object[] params,
Compil3r.Quad.RegisterFactory rf,
Compil3r.Quad.ControlFlowGraph cfg)
|
QuadInterpreter |
invokeInstanceReflective(Clazz.jq_InstanceMethod f,
Compil3r.Quad.Operand.ParamListOperand plo)
|
QuadInterpreter |
invokeMethod(Clazz.jq_Method f,
Compil3r.Quad.Operand.ParamListOperand plo)
|
QuadInterpreter |
invokeReflective(Clazz.jq_Method f,
Compil3r.Quad.Operand.ParamListOperand plo)
|
QuadInterpreter |
invokeStaticReflective(Clazz.jq_StaticMethod f,
Compil3r.Quad.Operand.ParamListOperand plo)
|
void |
output()
|
void |
putReg_A(Compil3r.Quad.RegisterFactory.Register r,
java.lang.Object i)
|
void |
putReg_D(Compil3r.Quad.RegisterFactory.Register r,
double i)
|
void |
putReg_F(Compil3r.Quad.RegisterFactory.Register r,
float i)
|
void |
putReg_I(Compil3r.Quad.RegisterFactory.Register r,
int i)
|
void |
putReg_L(Compil3r.Quad.RegisterFactory.Register r,
long i)
|
void |
putReg_P(Compil3r.Quad.RegisterFactory.Register r,
Memory.Address i)
|
void |
putReg(Compil3r.Quad.RegisterFactory.Register r,
java.lang.Object i)
|
void |
replaceUninitializedReferences(java.lang.Object o,
QuadInterpreter.UninitializedReference u)
|
void |
setReturnValue(java.lang.Object o)
|
void |
setThrown(java.lang.Throwable t)
|
java.lang.String |
toString()
Convert this Object to a human-readable String. |
void |
trapOnSystemExit()
|
void |
visitNullCheck(Compil3r.Quad.Quad q)
A null pointer check instruction. |
void |
visitQuad(Compil3r.Quad.Quad q)
Any quad. |
| Methods inherited from class Compil3r.Quad.QuadVisitor.EmptyVisitor |
visitALength, visitAllocation, visitALoad, visitArray, visitAStore, visitBinary, visitBoundsCheck, visitBranch, visitCheck, visitCheckCast, visitCondBranch, visitExceptionThrower, visitGetfield, visitGetstatic, visitGoto, visitInstanceField, visitInstanceOf, visitIntIfCmp, visitInvoke, visitJsr, visitLoad, visitLookupSwitch, visitMemLoad, visitMemStore, visitMonitor, visitMove, visitNew, visitNewArray, visitPutfield, visitPutstatic, visitRet, visitReturn, visitSpecial, visitStaticField, visitStore, visitStoreCheck, visitTableSwitch, visitTypeCheck, visitUnary, visitZeroCheck |
method
Clazz.jq_Method method
registers
java.util.Map registers
cfg
Compil3r.Quad.ControlFlowGraph cfg
rf
Compil3r.Quad.RegisterFactory rf
current_bb
Compil3r.Quad.BasicBlock current_bb
current_iterator
Util.Templates.ListIterator.Quad current_iterator
current_quad
Compil3r.Quad.Quad current_quad
return_value
java.lang.Object return_value
thrown
java.lang.Throwable thrown
caught
java.lang.Throwable caught
TRACE
public static boolean TRACE
num_quads
public static long num_quads
num_nullchecks
public static long num_nullchecks
bad_methods
static java.util.Set bad_methods
bad_classes
static java.util.Set bad_classes
interpret_filter
public static Util.Collections.FilterIterator.Filter interpret_filter
QuadInterpreter
public QuadInterpreter(Clazz.jq_Method m)
visitNullCheck
public void visitNullCheck(Compil3r.Quad.Quad q)
- Description copied from class:
Compil3r.Quad.QuadVisitor.EmptyVisitor
- A null pointer check instruction.
visitQuad
public void visitQuad(Compil3r.Quad.Quad q)
- Description copied from class:
Compil3r.Quad.QuadVisitor.EmptyVisitor
- Any quad.
setReturnValue
public void setReturnValue(java.lang.Object o)
getReturnValue
public java.lang.Object getReturnValue()
getThrown
public java.lang.Throwable getThrown()
setThrown
public void setThrown(java.lang.Throwable t)
getCaught
public java.lang.Throwable getCaught()
getExceptionRegister
public Compil3r.Quad.RegisterFactory.Register getExceptionRegister()
invokeReflective
public QuadInterpreter invokeReflective(Clazz.jq_Method f,
Compil3r.Quad.Operand.ParamListOperand plo)
generateParamArray
public java.lang.Object[] generateParamArray(Clazz.jq_Method f,
Compil3r.Quad.Operand.ParamListOperand plo)
invokeInstanceReflective
public QuadInterpreter invokeInstanceReflective(Clazz.jq_InstanceMethod f,
Compil3r.Quad.Operand.ParamListOperand plo)
invokeStaticReflective
public QuadInterpreter invokeStaticReflective(Clazz.jq_StaticMethod f,
Compil3r.Quad.Operand.ParamListOperand plo)
invokeMethod
public QuadInterpreter invokeMethod(Clazz.jq_Method f,
Compil3r.Quad.Operand.ParamListOperand plo)
output
public void output()
trapOnSystemExit
public void trapOnSystemExit()
interpretMethod
public static QuadInterpreter interpretMethod(Clazz.jq_Method f,
java.lang.Object[] params)
interpretMethod
public void interpretMethod(Clazz.jq_Method m,
java.lang.Object[] params,
Compil3r.Quad.RegisterFactory rf,
Compil3r.Quad.ControlFlowGraph cfg)
branchTo
public void branchTo(Compil3r.Quad.BasicBlock bb)
handleException
public void handleException(java.lang.Throwable x)
getReg_I
public int getReg_I(Compil3r.Quad.RegisterFactory.Register r)
getReg_F
public float getReg_F(Compil3r.Quad.RegisterFactory.Register r)
getReg_L
public long getReg_L(Compil3r.Quad.RegisterFactory.Register r)
getReg_D
public double getReg_D(Compil3r.Quad.RegisterFactory.Register r)
getReg_A
public java.lang.Object getReg_A(Compil3r.Quad.RegisterFactory.Register r)
getReg_P
public Memory.Address getReg_P(Compil3r.Quad.RegisterFactory.Register r)
getReg
public java.lang.Object getReg(Compil3r.Quad.RegisterFactory.Register r)
putReg_I
public void putReg_I(Compil3r.Quad.RegisterFactory.Register r,
int i)
putReg_F
public void putReg_F(Compil3r.Quad.RegisterFactory.Register r,
float i)
putReg_L
public void putReg_L(Compil3r.Quad.RegisterFactory.Register r,
long i)
putReg_D
public void putReg_D(Compil3r.Quad.RegisterFactory.Register r,
double i)
putReg_A
public void putReg_A(Compil3r.Quad.RegisterFactory.Register r,
java.lang.Object i)
putReg_P
public void putReg_P(Compil3r.Quad.RegisterFactory.Register r,
Memory.Address i)
putReg
public void putReg(Compil3r.Quad.RegisterFactory.Register r,
java.lang.Object i)
replaceUninitializedReferences
public void replaceUninitializedReferences(java.lang.Object o,
QuadInterpreter.UninitializedReference u)
currentLocation
public java.lang.String currentLocation()
toString
public java.lang.String toString()
- Description copied from class:
java.lang.Object
- Convert this Object to a human-readable String.
There are no limits placed on how long this String
should be or what it should contain. We suggest you
make it as intuitive as possible to be able to place
it into System.out.println() 55
and such.
It is typical, but not required, to ensure that this method
never completes abruptly with a java.lang.RuntimeException.
This method will be called when performing string
concatenation with this object. If the result is
null, string concatenation will instead
use "null".
The default implementation returns
getClass().getName() + "@" +
Integer.toHexString(hashCode()).