#include <JumpInstruction.h>
Inheritance diagram for Jump:

Public Member Functions | |
| Jump (TProgramCounter pc) | |
| virtual | ~Jump () | 
| virtual void | exec (TProgramCounter &pc) const | 
| void | describe (string &out, bool values) const | 
Static Public Member Functions | |
| static const char * | longName () | 
| static const char * | shortName () | 
| static int | numArgs () | 
| static InstructionSignature | signature (StandardTypeDescriptorOrdinal type) | 
| static Instruction * | create (InstructionSignature const &sig) | 
Protected Member Functions | |
| virtual void | describeHelper (string &out, bool values, const char *longName, const char *shortName) const | 
| void | describeHelper (string &out, bool values, const char *longName, const char *shortName, RegisterReference *result, RegisterReference *op1, RegisterReference *op2) const | 
Protected Attributes | |
| TProgramCounter | mJumpTo | 
| RegisterRef< bool > * | mOp | 
Friends | |
| class | fennel::Calculator | 
Definition at line 61 of file JumpInstruction.h.
| Jump::Jump | ( | TProgramCounter | pc | ) |  [inline, explicit] | 
        
| virtual Jump::~Jump | ( | ) |  [inline, virtual] | 
        
| virtual void Jump::exec | ( | TProgramCounter & | pc | ) |  const [inline, virtual] | 
        
Implements Instruction.
Definition at line 73 of file JumpInstruction.h.
00073 { 00074 pc = mJumpTo; 00075 }
| const char * Jump::longName | ( | ) |  [static] | 
        
| const char * Jump::shortName | ( | ) |  [static] | 
        
| int Jump::numArgs | ( | ) |  [static] | 
        
| void Jump::describe | ( | string & | out, | |
| bool | values | |||
| ) |  const [virtual] | 
        
Implements Instruction.
Definition at line 78 of file JumpInstruction.cpp.
References JumpInstruction::describeHelper(), longName(), and shortName().
00078 { 00079 describeHelper(out, values, longName(), shortName()); 00080 }
| static InstructionSignature Jump::signature | ( | StandardTypeDescriptorOrdinal | type | ) |  [inline, static] | 
        
Definition at line 83 of file JumpInstruction.h.
00083 { 00084 vector<StandardTypeDescriptorOrdinal> v(numArgs(), type); 00085 return InstructionSignature(shortName(), 0, v); 00086 }
| static Instruction* Jump::create | ( | InstructionSignature const & | sig | ) |  [inline, static] | 
        
Definition at line 89 of file JumpInstruction.h.
References InstructionSignature::getPc(), and InstructionSignature::size().
| void JumpInstruction::describeHelper | ( | string & | out, | |
| bool | values, | |||
| const char * | longName, | |||
| const char * | shortName | |||
| ) |  const [protected, virtual, inherited] | 
        
Definition at line 34 of file JumpInstruction.cpp.
References RegisterRef< TMPLT >::isNull(), RegisterReference::isValid(), JumpInstruction::mJumpTo, JumpInstruction::mOp, RegisterReference::toString(), and RegisterRef< TMPLT >::valueToString().
Referenced by JumpNotNull::describe(), JumpNull::describe(), JumpFalse::describe(), JumpTrue::describe(), and describe().
00039 { 00040 out = longName; 00041 out += " To Addr: "; 00042 out += boost::lexical_cast<std::string>(mJumpTo); 00043 out += " "; 00044 out += shortName; 00045 out += " "; 00046 00047 if (mOp && mOp->isValid()) { 00048 out += mOp->toString(); 00049 if (values) { 00050 out += " ( "; 00051 if (mOp->isNull()) { 00052 out += "NULL"; 00053 } else { 00054 out += mOp->valueToString(); 00055 } 00056 out += " ) "; 00057 } 00058 } 00059 }
| void Instruction::describeHelper | ( | string & | out, | |
| bool | values, | |||
| const char * | longName, | |||
| const char * | shortName, | |||
| RegisterReference * | result, | |||
| RegisterReference * | op1, | |||
| RegisterReference * | op2 | |||
| ) |  const [inline, protected, inherited] | 
        
Definition at line 68 of file Instruction.h.
References RegisterReference::isNull(), RegisterReference::isValid(), RegisterReference::toString(), and RegisterReference::valueToString().
Referenced by PointerToNull< PTR_TYPE >::describe(), PointerRef< PTR_TYPE >::describe(), PointerMove< PTR_TYPE >::describe(), PointerSub< PTR_TYPE >::describe(), PointerAdd< PTR_TYPE >::describe(), PointerPutSize< PTR_TYPE >::describe(), NativeToNull< TMPLT >::describe(), NativeRef< TMPLT >::describe(), NativeMove< TMPLT >::describe(), NativeRound< TMPLT >::describe(), NativeNeg< TMPLT >::describe(), NativeDiv< TMPLT >::describe(), NativeMul< TMPLT >::describe(), NativeSub< TMPLT >::describe(), NativeAdd< TMPLT >::describe(), PointerGetMaxSize< PTR_TYPE >::describe(), PointerGetSize< PTR_TYPE >::describe(), IntegralNativeShiftRight< TMPLT >::describe(), IntegralNativeShiftLeft< TMPLT >::describe(), IntegralNativeOr< TMPLT >::describe(), IntegralNativeAnd< TMPLT >::describe(), IntegralNativeMod< TMPLT >::describe(), CastCast< RESULT_T, SOURCE_T >::describe(), BoolPointerIsNotNull< PTR_TYPE >::describe(), BoolPointerIsNull< PTR_TYPE >::describe(), BoolPointerLessEqual< PTR_TYPE >::describe(), BoolPointerLess< PTR_TYPE >::describe(), BoolPointerGreaterEqual< PTR_TYPE >::describe(), BoolPointerGreater< PTR_TYPE >::describe(), BoolPointerNotEqual< PTR_TYPE >::describe(), BoolPointerEqual< PTR_TYPE >::describe(), BoolNativeIsNotNull< TMPLT >::describe(), BoolNativeIsNull< TMPLT >::describe(), BoolNativeLessEqual< TMPLT >::describe(), BoolNativeLess< TMPLT >::describe(), BoolNativeGreaterEqual< TMPLT >::describe(), BoolNativeGreater< TMPLT >::describe(), BoolNativeNotEqual< TMPLT >::describe(), BoolNativeEqual< TMPLT >::describe(), BoolToNull::describe(), BoolIsNotNull::describe(), BoolIsNull::describe(), BoolLessEqual::describe(), BoolLess::describe(), BoolGreaterEqual::describe(), BoolGreater::describe(), BoolNotEqual::describe(), BoolEqual::describe(), BoolIsNot::describe(), BoolIs::describe(), BoolRef::describe(), BoolMove::describe(), BoolNot::describe(), BoolAnd::describe(), and BoolOr::describe().
00076 { 00077 out = longName; 00078 out += ": "; 00079 out += result->toString(); 00080 if (values) { 00081 out += " ( "; 00082 if (result->isNull()) { 00083 out += "NULL"; 00084 } else { 00085 out += result->valueToString(); 00086 } 00087 out += " ) "; 00088 } 00089 out += " = "; 00090 00091 if (!op2 || !op2->isValid()) { // if < 2 operands 00092 out += " "; 00093 out += shortName; 00094 out += " "; 00095 } 00096 if (op1 && op1->isValid()) { // 1 or 2 operands 00097 out += op1->toString(); 00098 if (values) { 00099 out += " ( "; 00100 if (op1->isNull()) { 00101 out += "NULL"; 00102 } else { 00103 out += op1->valueToString(); 00104 } 00105 out += " ) "; 00106 } 00107 } 00108 if (op2 && op2->isValid()) { // 2 operands 00109 out += " "; 00110 out += shortName; 00111 out += " "; 00112 out += op2->toString(); 00113 if (values) { 00114 out += " ( "; 00115 if (op2->isNull()) { 00116 out += "NULL"; 00117 } else { 00118 out += op2->valueToString(); 00119 } 00120 out += " ) "; 00121 } 00122 } 00123 }
friend class fennel::Calculator [friend, inherited]           | 
        
Definition at line 64 of file Instruction.h.
TProgramCounter JumpInstruction::mJumpTo [protected, inherited]           | 
        
RegisterRef<bool>* JumpInstruction::mOp [protected, inherited]           | 
        
 1.5.1