From 6af42f32801f27d25feb4a7470b13bf23f2cd751 Mon Sep 17 00:00:00 2001 From: Jimmy Kwa Date: Thu, 9 Dec 2010 11:56:44 -0800 Subject: Copied cuobjdump_to_ptxplus into fermi branch. Minor modifications were made to decuda_to_ptxplus to support this. [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 8229] --- decuda_to_ptxplus/decudaInst.cc | 21 +++++++++++++-------- decuda_to_ptxplus/decudaInst.h | 2 +- decuda_to_ptxplus/decudaInstList.h | 3 +++ 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/decuda_to_ptxplus/decudaInst.cc b/decuda_to_ptxplus/decudaInst.cc index 2328bc2..8b17135 100644 --- a/decuda_to_ptxplus/decudaInst.cc +++ b/decuda_to_ptxplus/decudaInst.cc @@ -11,7 +11,7 @@ decudaInst::decudaInst() { //initilize everything to empty m_label = ""; - m_predicate = ""; + m_predicate = new stringList(); m_base = ""; m_baseModifiers = new stringList(); m_typeModifiers = new stringList(); @@ -83,7 +83,10 @@ void decudaInst::addOperand(const char* addOp) void decudaInst::setPredicate(const char* setPredicateValue) { - m_predicate = setPredicateValue; + stringListPiece* tempPiece = new stringListPiece; + tempPiece->stringText = setPredicateValue; + + m_predicate->add(tempPiece); } void decudaInst::addPredicateModifier(const char* addPredicateMod) @@ -292,15 +295,17 @@ void decudaInst::printLabel() void decudaInst::printPredicate() { - if(m_predicate != "") { - output(m_predicate); + stringListPiece* currentPiece = m_predicate->getListStart(); + if(currentPiece!=NULL) + { + output(currentPiece->stringText); - stringListPiece* currentPiece = m_predicateModifiers->getListStart(); - for(int i=0; (igetSize())&&(currentPiece!=NULL); i++) + stringListPiece* currentPiece2 = m_predicateModifiers->getListStart(); + for(int i=0; (igetSize())&&(currentPiece2!=NULL); i++) { - output(currentPiece->stringText); + output(currentPiece2->stringText); - currentPiece = currentPiece->nextString; + currentPiece2 = currentPiece2->nextString; } output(" "); diff --git a/decuda_to_ptxplus/decudaInst.h b/decuda_to_ptxplus/decudaInst.h index 8b73cf1..bdf02d6 100644 --- a/decuda_to_ptxplus/decudaInst.h +++ b/decuda_to_ptxplus/decudaInst.h @@ -7,7 +7,7 @@ class decudaInst protected: //instruction data const char* m_label; //instruction label - const char* m_predicate; //instruction predicate + stringList* m_predicate; //instruction predicate const char* m_base; //instruction mnemonic stringList* m_baseModifiers; //base modifiers stringList* m_typeModifiers; //operand types diff --git a/decuda_to_ptxplus/decudaInstList.h b/decuda_to_ptxplus/decudaInstList.h index d1707c3..743815f 100644 --- a/decuda_to_ptxplus/decudaInstList.h +++ b/decuda_to_ptxplus/decudaInstList.h @@ -56,6 +56,9 @@ struct decudaEntry // Local memory size int m_lMemSize; + //use for recording used labels + std::list m_labelList; + // Histogram for operation per cycle count std::map m_opPerCycleHistogram; }; -- cgit v1.3