551a552,553
> class AddrRange(ParamValue):
> cxx_type = 'Range<Addr>'
553,562d554
< class MetaRange(MetaParamValue):
< def __init__(cls, name, bases, dict):
< super(MetaRange, cls).__init__(name, bases, dict)
< if name == 'Range':
< return
< cls.cxx_type = 'Range< %s >' % cls.type.cxx_type
<
< class Range(ParamValue):
< __metaclass__ = MetaRange
< type = Int # default; can be overridden in subclasses
566c558
< self.second = self.type(kwargs.pop('end'))
---
> self.end = Addr(kwargs.pop('end'))
568c560
< self.second = self.first + self.type(kwargs.pop('size')) - 1
---
> self.end = self.start + Addr(kwargs.pop('size')) - 1
573c565
< self.first = self.type(kwargs.pop('start'))
---
> self.start = Addr(kwargs.pop('start'))
578c570
< self.first = self.type(args[0])
---
> self.start = Addr(args[0])
580,582d571
< elif isinstance(args[0], Range):
< self.first = self.type(args[0].first)
< self.second = self.type(args[0].second)
584,585c573,574
< self.first = self.type(args[0][0])
< self.second = self.type(args[0][1])
---
> self.start = Addr(args[0][0])
> self.end = Addr(args[0][1])
587,588c576,577
< self.first = self.type(0)
< self.second = self.type(args[0]) - 1
---
> self.start = Addr(0)
> self.end = Addr(args[0]) - 1
591,592c580,581
< self.first = self.type(args[0])
< self.second = self.type(args[1])
---
> self.start = Addr(args[0])
> self.end = Addr(args[1])
597c586
< raise TypeError, "too many keywords: %s" % kwargs.keys()
---
> raise TypeError, "Too many keywords: %s" % kwargs.keys()
600c589
< return '%s:%s' % (self.first, self.second)
---
> return '%s:%s' % (self.start, self.end)
601a591,593
> def size(self):
> return long(self.end) - long(self.start) + 1
>
604c596
< cls.type.cxx_predecls(code)
---
> Addr.cxx_predecls(code)
609c601
< cls.type.swig_predecls(code)
---
> Addr.swig_predecls(code)
612,614d603
< class AddrRange(Range):
< type = Addr
<
619,620c608,609
< value.start = long(self.first)
< value.end = long(self.second)
---
> value.start = long(self.start)
> value.end = long(self.end)
623,633d611
< class TickRange(Range):
< type = Tick
<
< def getValue(self):
< from m5.internal.range import TickRange
<
< value = TickRange()
< value.start = long(self.first)
< value.end = long(self.second)
< return value
<
1646c1624
< 'Range', 'AddrRange', 'TickRange',
---
> 'AddrRange',