From 0586c55d7688f492d5264cb9299cf00ff73d3df7 Mon Sep 17 00:00:00 2001 From: Jimmy Kwa Date: Thu, 28 Oct 2010 12:07:29 -0800 Subject: 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] --- decuda_to_ptxplus/stringList.cc | 100 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 decuda_to_ptxplus/stringList.cc (limited to 'decuda_to_ptxplus/stringList.cc') diff --git a/decuda_to_ptxplus/stringList.cc b/decuda_to_ptxplus/stringList.cc new file mode 100644 index 0000000..680a860 --- /dev/null +++ b/decuda_to_ptxplus/stringList.cc @@ -0,0 +1,100 @@ +#include "stringList.h" +#include +#include + +//Constructor +stringList::stringList() +{ + //initilize everything to empty + m_size = 0; + m_listStart = NULL; + m_listEnd = NULL; +} + +//retrieve list size +int stringList::getSize() +{ + return m_size; +} + +//retrieve pointer to list start +stringListPiece* stringList::getListStart() +{ + return m_listStart; +} + +//retrieve point to list end +stringListPiece* stringList::getListEnd() +{ + return m_listEnd; +} + +//add string to end of the list +//initilize list starting point if this is the first entry +//increment list size count +int stringList::add(stringListPiece* newString) +{ + + if(m_listStart==NULL) + m_listStart=newString; + else + m_listEnd->nextString = newString; + + m_listEnd = newString; + m_listEnd->nextString = NULL; + + return m_size++; +} + +bool stringList::remove(int index) +{ + if(index >= m_size ) return false; + + stringListPiece* m_remove; + stringListPiece* currentPiece; + + if(m_size == 1) { + m_remove = m_listStart; + m_listStart = NULL; + m_listEnd = NULL; + } else { + + if(index == 0) { + m_remove = m_listStart; + m_listStart = m_remove->nextString; + } else if(index == m_size - 1) { + m_remove = m_listEnd; + currentPiece = m_listStart; + for(int i=1; inextString; + } + currentPiece->nextString = NULL; + m_listEnd = currentPiece; + } else { + currentPiece = m_listStart; + for(int i=1; i<=index-1; i++) + { + currentPiece = currentPiece->nextString; + } + m_remove = currentPiece->nextString; + currentPiece->nextString = m_remove->nextString; + } + } + + delete m_remove; + m_size -= 1; + return true; +} + +//print out all the Decuda Instructions in the list +void stringList::printStringList() +{ + stringListPiece* currentPiece = m_listStart; + + for(int i=0; (istringText << " "; + currentPiece = currentPiece->nextString; + } +} -- cgit v1.3