1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include "cuobjdumpInst.h"
// Used for local memory segments
struct localMemory
{
int value;
int entryIndex;
};
class cuobjdumpInstList: public decudaInstList
{
protected:
std::string parseCuobjdumpPredicate(std::string pred);
int m_kernelCount;
std::map<std::string,int>kernelcmemmap;
std::map<std::string,int>kernellmemmap;
std::list<localMemory> m_localMemoryList;
public:
//Constructor
cuobjdumpInstList();
void setKernelCount(int k);
void readConstMemoryFromElfFile(std::string elf);
void addCuobjdumpRegister(std::string reg, bool lo=false); //add register
void addCuobjdumpMemoryOperand(std::string mem, int memType);
std::string parseCuobjdumpRegister(std::string reg, bool lo, int vectorFlag);
void addCuobjdumpDoublePredReg(std::string pred, std::string reg, bool lo=false);
void addCubojdumpLabel(std::string label);
void addEntryConstMemory(int index, int entryIndex);
void addEntryConstMemory2(char* kernel);
void addConstMemoryPtr(const char* bytes, const char* offset, const char* name);
void setConstMemoryMap(const char* kernelname, int index);
void setLocalMemoryMap(const char* kernelname, int index);
void reverseConstMemory();
void addEntryLocalMemory(int value, int entryIndex);
void readOtherConstMemoryFromBinFile(std::string binString); // read in constant memory from bin file
void printCuobjdumpLocalMemory();
void printCuobjdumpInstList();
void printCuobjdumpPtxPlusList(cuobjdumpInstList* headerInfo);
};
|