def statAndShowAddrMode(stats, fmode="", picName="", picTitle="The Addressing Mode Distribution", xlabel="Frequency of Addressing Mode", ylabel="Addressing Mode", labelDict=Addressing.modeLabelDict): modeDict = {} for stat in stats: for i in range(0, stat['nOPs']): mode = stat['op' + str(i + 1) + '_mode'] if modeDict.has_key(mode): modeDict[mode] += 1 else: modeDict[mode] = 1 if len(fmode) > 0: Toolkit.writeJsonFile(fmode, modeDict) # Toolkit.showProportion(modeDict, picName, picTitle) Toolkit.showHistogram(modeDict, picName, picTitle, xlabel, ylabel, labelDict) return modeDict
def statAndShowAddrLength(stats, modes, fname="", picName="", picTitle="Address Length Distribution", xlabel="Frequency of Address Length", ylabel="Address Length"): lenDict = {} for stat in stats: for i in range(0, stat['nOPs']): op = 'op' + str(i + 1) mode = stat[op + '_mode'] if mode in modes: length = Addressing.checkAddrLen(stat[op], mode) if lenDict.has_key(length): lenDict[length] += 1 else: lenDict[length] = 1 if len(fname) > 0: Toolkit.writeJsonFile(fname, lenDict) # Toolkit.showProportion(lenDict, picName, picTitle) Toolkit.showHistogram(lenDict, picName, picTitle, xlabel, ylabel) return lenDict