Lines Matching refs:self

54     def __init__(self):
56 self.ids = set(all_ids)
58 def __and__(self, rhs):
61 ret.ids = self.ids.intersection(rhs.ids)
66 def to_striped_block(self, select):
70 def get_inst(self):
74 def get_line(self):
78 def __repr__(self):
79 return self.__class__.__name__ + '().from_string(' + \
80 self.__str__() + ')'
82 def __str__(self):
87 def __init__(self):
88 self.isFault = False
89 self.threadId = 0
90 self.streamSeqNum = 0
91 self.predictionSeqNum = 0
92 self.lineSeqNum = 0
93 self.fetchSeqNum = 0
94 self.execSeqNum = 0
96 def as_list(self):
97 return [self.threadId, self.streamSeqNum, self.predictionSeqNum,
98 self.lineSeqNum, self.fetchSeqNum, self.execSeqNum]
100 def __cmp__(self, right):
101 return cmp(self.as_list(), right.as_list())
103 def from_string(self, string):
119 self.isFault = True
121 self.isFault = False
123 self.threadId = seqnum_from_string(elems[1])
124 self.streamSeqNum = seqnum_from_string(elems[2])
125 self.predictionSeqNum = seqnum_from_string(elems[3])
126 self.lineSeqNum = seqnum_from_string(elems[4])
127 self.fetchSeqNum = seqnum_from_string(elems[6])
128 self.execSeqNum = seqnum_from_string(elems[8])
129 return self
131 def get_inst(self):
132 if self.fetchSeqNum != 0:
133 return self
137 def get_line(self):
138 return self
140 def __str__(self):
143 str(self.threadId) + '/' +
144 str(self.streamSeqNum) + '.' +
145 str(self.predictionSeqNum) + '/' +
146 str(self.lineSeqNum) + '/' +
147 str(self.fetchSeqNum) + '.' +
148 str(self.execSeqNum))
150 def to_striped_block(self, select):
153 if self.isFault:
157 ret.append(colours.number_to_colour(self.threadId))
159 ret.append(colours.number_to_colour(self.streamSeqNum))
161 ret.append(colours.number_to_colour(self.predictionSeqNum))
163 ret.append(colours.number_to_colour(self.lineSeqNum))
164 if self.fetchSeqNum != 0 and 'F' in select.ids:
165 ret.append(colours.number_to_colour(self.fetchSeqNum))
166 if self.execSeqNum != 0 and 'E' in select.ids:
167 ret.append(colours.number_to_colour(self.execSeqNum))
172 if self.isFault:
180 def __init__(self):
181 self.newStreamSeqNum = 0
182 self.newPredictionSeqNum = 0
183 self.newPC = 0
184 self.reason = "NoBranch"
185 self.id = Id()
187 def from_string(self, string):
191 self.reason, newStreamSeqNum, newPredictionSeqNum, \
194 self.newStreamSeqNum = int(newStreamSeqNum)
195 self.newPredictionSeqNum = int(newPredictionSeqNum)
196 self.newPC = int(newPC, 0)
197 self.id = special_view_decoder(Id)(id)
198 # self.branch = special_view_decoder(Branch)(branch)
201 return self
203 def to_striped_block(self, select):
204 return [colours.number_to_colour(self.newStreamSeqNum),
205 colours.number_to_colour(self.newPredictionSeqNum),
206 colours.number_to_colour(self.newPC)]
211 def __init__(self):
212 self.counts = []
214 def from_string(self, string):
215 self.counts = map(int, re.split('/', string))
216 return self
218 def to_striped_block(self, select):
219 return map(colours.number_to_colour, self.counts)
223 def __init__(self, colour):
224 self.colour = colour
226 def to_striped_block(self, select):
227 return [self.colour]
231 def __init__(self):
232 self.direc = 'R'
233 self.id = Id()
235 def from_string(self, string):
236 self.direc, id = re.match('^([RW]);([^;]*);.*$', string).groups()
237 self.id.from_string(id)
238 return self
240 def get_inst(self):
241 return self.id
243 def to_striped_block(self, select):
244 if self.direc == 'R':
246 elif self.direc == 'R':
250 return [direc_colour] + self.id.to_striped_block(select)
255 def elems(self):
258 def to_striped_block(self, select):
274 def __init__(self, blockss):
275 self.blockss = blockss
329 def elems(self):
332 for blocks in self.blockss:
336 def to_striped_block(self, select):
337 return parse.map2(lambda d: d.to_striped_block(select), self.blockss)
343 def __init__(self, block, numBlankSlots):
344 self.numBlankSlots = numBlankSlots
345 self.block = block
361 def elems(self):
362 return [self.block]
364 def to_striped_block(self, select):
365 return ([[self.block.to_striped_block(select)]] +
366 (self.numBlankSlots * [[[colours.backgroundColour]]]))
426 def __init__(self, id, pairs={}):
427 self.id = id
428 self.pairs = pairs
430 def __cmp__(self, right):
431 return cmp(self.id, right.id)
433 def table_line(self):
439 def __repr__(self):
440 return ' '.join(self.table_line())
444 def __init__(self, id, disassembly, addr, pairs={}):
445 super(Inst,self).__init__(id, pairs)
447 self.nextAddr = int(pairs['nextAddr'], 0)
450 self.nextAddr = None
451 self.disassembly = disassembly
452 self.addr = addr
454 def table_line(self):
455 if self.nextAddr is not None:
456 addrStr = '0x%x->0x%x' % (self.addr, self.nextAddr)
458 addrStr = '0x%x' % self.addr
459 ret = [addrStr, self.disassembly]
460 for name, value in self.pairs.iteritems():
466 def __init__(self, id, fault, addr, pairs={}):
467 super(InstFault,self).__init__(id, pairs)
468 self.fault = fault
469 self.addr = addr
471 def table_line(self):
472 ret = ["0x%x" % self.addr, self.fault]
473 for name, value in self.pairs:
479 def __init__(self, id, vaddr, paddr, size, pairs={}):
480 super(Line,self).__init__(id, pairs)
481 self.vaddr = vaddr
482 self.paddr = paddr
483 self.size = size
485 def table_line(self):
486 ret = ["0x%x/0x%x" % (self.vaddr, self.paddr), "%d" % self.size]
487 for name, value in self.pairs:
493 def __init__(self, id, fault, vaddr, pairs={}):
494 super(LineFault,self).__init__(id, pairs)
495 self.vaddr = vaddr
496 self.fault = fault
498 def table_line(self):
499 ret = ["0x%x" % self.vaddr, self.fault]
500 for name, value in self.pairs:
506 def __init__(self, unit, time, pairs = {}):
508 self.unit = unit
509 self.time = time
511 self.visuals = {}
513 self.pairs = pairs
515 self.comments = []
517 def find_ided_objects(self, model, picChar, includeInstLines):
521 if picChar in self.visuals:
522 blocks = self.visuals[picChar].elems()
542 def __init__(self, unitNamePrefix=''):
543 self.blobs = []
544 self.unitNameToBlobs = {}
545 self.unitEvents = {}
546 self.clear_events()
547 self.picSize = Point(20,10)
548 self.lastTime = 0
549 self.unitNamePrefix = unitNamePrefix
551 def clear_events(self):
553 self.lastTime = 0
554 self.times = []
555 self.insts = {}
556 self.lines = {}
557 self.numEvents = 0
559 for unit, events in self.unitEvents.iteritems():
560 self.unitEvents[unit] = []
562 def add_blob(self, blob):
564 self.blobs.append(blob)
565 if blob.unit not in self.unitNameToBlobs:
566 self.unitNameToBlobs[blob.unit] = []
568 self.unitNameToBlobs[blob.unit].append(blob)
570 def add_inst(self, inst):
577 if inst.id.execSeqNum != 0 and macroop_key not in self.insts:
578 self.insts[macroop_key] = inst
580 self.insts[full_key] = inst
582 def find_inst(self, id):
587 if full_key in self.insts:
588 return self.insts[full_key]
589 elif macroop_key in self.insts:
590 return self.insts[macroop_key]
594 def add_line(self, line):
596 self.lines[line.id.lineSeqNum] = line
598 def add_unit_event(self, event):
601 if event.unit in self.unitEvents:
602 events = self.unitEvents[event.unit]
606 self.numEvents += 1
607 self.lastTime = max(self.lastTime, event.time)
609 def extract_times(self):
613 for unitEvents in self.unitEvents.itervalues():
616 self.times = times.keys()
617 self.times.sort()
619 def find_line(self, id):
622 return self.lines.get(key, None)
624 def find_event_bisection(self, unit, time, events,
651 def find_unit_event_by_time(self, unit, time):
653 if unit in self.unitEvents:
654 events = self.unitEvents[unit]
655 ret = self.find_event_bisection(unit, time, events,
662 def find_time_index(self, time):
666 lastIndex = len(self.times) - 1
667 while ret < lastIndex and self.times[ret + 1] <= time:
671 def add_minor_inst(self, rest):
690 self.add_inst(inst)
696 self.add_inst(inst)
698 def add_minor_line(self, rest):
715 self.add_line(Line(id,
720 self.add_line(LineFault(id, pairs['fault'], vaddr, other_pairs))
722 def load_events(self, file, startTime=0, endTime=None):
729 event = self.find_unit_event_by_time(commentUnit, time)
734 self.add_unit_event(event)
741 self.add_unit_event(event)
744 self.clear_events()
792 unit = re.sub('^' + self.unitNamePrefix + '\.?(.*)$',
797 if self.numEvents > next_progress_print_event_count:
800 self.numEvents + 1000)
819 blobs = self.unitNameToBlobs.get(unit, [])
825 self.add_unit_event(event)
828 self.add_minor_inst(rest)
830 self.add_minor_line(rest)
838 self.extract_times()
844 self.numEvents
847 def add_blob_picture(self, offset, pic, nameDict):
860 self.picSize = Point(pic_width, pic_height)
914 self.add_blob(blobs.Arrow('_', start + offset,
935 self.add_blob(blobs.Arrow('_', point + offset,
938 self.add_blob(blobs.Arrow('_', point + offset,
950 self.add_blob(blobs.Block(char,
958 self.add_blob(blob)
963 def load_picture(self, filename):
1071 self.unitEvents = {}
1072 self.clear_events()
1102 self.unitEvents[unit] = []
1108 self.blobs = []
1109 self.add_blob_picture(Point(0,1), picture, blob_char_dict)