diff options
| author | Jimmy Kwa <[email protected]> | 2010-10-28 12:07:29 -0800 |
|---|---|---|
| committer | Jimmy Kwa <[email protected]> | 2010-10-28 12:07:29 -0800 |
| commit | 0586c55d7688f492d5264cb9299cf00ff73d3df7 (patch) | |
| tree | ef1ecc58933398e333f16dc56915bdffc64ef422 /decuda_to_ptxplus/decudaInst.h | |
| parent | 0efd3c00f5611bfa82b01d87d175122388d621cc (diff) | |
used p4 integrate to copy decuda_to_ptxplus into the distribtion folder. Edited baseline_ptxplus.config so the ptxplus regression runs properly.
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 7942]
Diffstat (limited to 'decuda_to_ptxplus/decudaInst.h')
| -rw-r--r-- | decuda_to_ptxplus/decudaInst.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/decuda_to_ptxplus/decudaInst.h b/decuda_to_ptxplus/decudaInst.h new file mode 100644 index 0000000..a1f0a8e --- /dev/null +++ b/decuda_to_ptxplus/decudaInst.h @@ -0,0 +1,66 @@ +#include "stringList.h" +#include <assert.h> + +class decudaInst +{ + +private: + //instruction data + char* m_label; //instruction label + char* m_predicate; //instruction predicate + char* m_base; //instruction mnemonic + stringList* m_baseModifiers; //base modifiers + stringList* m_typeModifiers; //operand types + stringList* m_operands; //operands + stringList* m_predicateModifiers; //predicate modifiers + + + int m_opPerCycle; // stores operations per cycle count for current instruction + + //next instruction in linked list + //direction is m_listStart to m_listEnd + decudaInst* m_nextDecudaInst; + + // print instruction unmodified + void printDefaultPtx(); + void printBaseModifiers(); + void printTypeModifiers(); + void printOperands(); + void printLabel(); + void printPredicate(); + +public: + //constructor + decudaInst(); + + //accessors + char* getBase(); + stringList* getOperands(); + stringList* getBaseModifiers(); + stringList* getTypeModifiers(); + decudaInst* getNextDecudaInst(); + + int getOpPerCycle() const { return m_opPerCycle; } + + bool isEntryStart(); // true if start of an entry + + //mutators + void setBase(char* setBaseValue); + void addBaseModifier(char* addBaseMod); + void addTypeModifier(char* addTypeMod); + void addOperand(char* addOp); + void setPredicate(char* setPredicateValue); + void addPredicateModifier(char* addPredicateMod); + void setLabel(char* setLabelValue); + + void setNextDecudaInst(decudaInst* setDecudaInstValue); + + //print representation + bool printHeaderInst(); + bool printHeaderInst2(); + void printDecudaInst(); + void printNewPtx(); + void printHeaderPtx(); + //TODO: translate to New PTX and print + +}; |
