Commit 7fbde717 authored by Gaurav Kukreja's avatar Gaurav Kukreja

Adding missed increment SP annotation at beginning of function

Signed-off-by: Gaurav Kukreja's avatarGaurav Kukreja <gaurav@gauravk.in>
parent 5345bb3c
...@@ -317,8 +317,12 @@ def annotateLoadStore(listISCFunctions, listObjdumpFunctions, listLSInfo, listGl ...@@ -317,8 +317,12 @@ def annotateLoadStore(listISCFunctions, listObjdumpFunctions, listLSInfo, listGl
annot_str = "cacheSimInit();" annot_str = "cacheSimInit();"
annot = Annotation(annot_str, funcISC.fileName, funcISC.cfg.listBlocks[0].startLine-1, False) annot = Annotation(annot_str, funcISC.fileName, funcISC.cfg.listBlocks[0].startLine-1, False)
addAnnotationToDict(dictAnnotLoadStore, funcISC.cfg.listBlocks[0].startLine-1, annot) addAnnotationToDict(dictAnnotLoadStore, funcISC.cfg.listBlocks[0].startLine-1, annot)
funcObj = find(lambda fn: fn.functionName == funcISC.functionName, listObjdumpFunctions) funcObj = find(lambda fn: fn.functionName == funcISC.functionName, listObjdumpFunctions)
annot_str = "SP = SP + 0x%x;" % (funcObj.stackSize)
annot = Annotation(annot_str, funcISC.fileName, funcISC.cfg.listBlocks[0].startLine-1, False)
addAnnotationToDict(dictAnnotLoadStore, funcISC.cfg.listBlocks[0].startLine-1, annot)
for blockObj in funcObj.cfg.listBlocks: for blockObj in funcObj.cfg.listBlocks:
mappedBlocksISCInd = blockObj.mapsTo mappedBlocksISCInd = blockObj.mapsTo
blockLSInfo = findLoadStoreBetweenLines(listLSInfo, blockObj.startLine, blockObj.endLine) blockLSInfo = findLoadStoreBetweenLines(listLSInfo, blockObj.startLine, blockObj.endLine)
......
...@@ -111,6 +111,7 @@ void adpcm_coder (short indata[], unsigned long indata_addr, char outdata[], un ...@@ -111,6 +111,7 @@ void adpcm_coder (short indata[], unsigned long indata_addr, char outdata[], un
adpcm_coderbb_2: adpcm_coderbb_2:
// # PRED: ENTRY [100.0%] (fallthru,exec) // # PRED: ENTRY [100.0%] (fallthru,exec)
SP = SP + 0x30;
memAccessCycles += simDCache((SP + 0x4), 1); // Spilling Register memAccessCycles += simDCache((SP + 0x4), 1); // Spilling Register
memAccessCycles += simDCache((SP + 0xc), 1); // Spilling Register memAccessCycles += simDCache((SP + 0xc), 1); // Spilling Register
memAccessCycles += simDCache((SP + 0xc), 1); // Reading Spilt Register memAccessCycles += simDCache((SP + 0xc), 1); // Reading Spilt Register
......
...@@ -62,6 +62,7 @@ int main() { ...@@ -62,6 +62,7 @@ int main() {
mainbb_2: mainbb_2:
// # PRED: ENTRY [100.0%] (fallthru,exec) // # PRED: ENTRY [100.0%] (fallthru,exec)
cacheSimInit(); cacheSimInit();
SP = SP + 0x30;
memAccessCycles += simICache(0x354, 4); // PC Relative Load memAccessCycles += simICache(0x354, 4); // PC Relative Load
memAccessCycles += simICache(0x358, 4); // PC Relative Load memAccessCycles += simICache(0x358, 4); // PC Relative Load
memAccessCycles += simDCache(ARR_SIZE_addr, 1); memAccessCycles += simDCache(ARR_SIZE_addr, 1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment