Nikos Nikoleris has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/19248
Change subject: python: Fix AddrRange legacy ParamValue wrapper
......................................................................
python: Fix AddrRange legacy ParamValue wrapper
This change fixes a bug that would manifest if a user would
instantiate an AddrRange ParamValue using the kwargs 'intlvBits' and
'intlvHighBit' without specifying the optional 'xorHighBit'.
Change-Id: I2091c432234df9cf907d52af6ba7f0cadd8c37a8
Signed-off-by: Nikos Nikoleris <[email protected]>
---
M src/python/m5/params.py
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/python/m5/params.py b/src/python/m5/params.py
index da1304d..b9afff2 100644
--- a/src/python/m5/params.py
+++ b/src/python/m5/params.py
@@ -757,8 +757,6 @@
def __init__(self, *args, **kwargs):
# Disable interleaving and hashing by default
- self.intlvHighBit = 0
- self.xorHighBit = 0
self.intlvBits = 0
self.intlvMatch = 0
self.masks = []
@@ -782,20 +780,22 @@
self.masks = [ long(x) for x in list(kwargs.pop('masks')) ]
self.intlvBits = len(self.masks)
else:
- if 'intlvHighBit' in kwargs:
- intlv_high_bit = int(kwargs.pop('intlvHighBit'))
- if 'xorHighBit' in kwargs:
- xor_high_bit = int(kwargs.pop('xorHighBit'))
if 'intlvBits' in kwargs:
self.intlvBits = int(kwargs.pop('intlvBits'))
self.masks = [0] * self.intlvBits
- for i in range(0, self.intlvBits):
- bit1 = intlv_high_bit - i
- mask = 1 << bit1
- if xor_high_bit != 0:
- bit2 = xor_high_bit - i
- mask |= 1 << bit2
- self.masks[self.intlvBits - i - 1] = mask
+ if 'intlvHighBit' not in kwargs:
+ raise TypeError("No interleave bits specified")
+ intlv_high_bit = int(kwargs.pop('intlvHighBit'))
+ xor_high_bit = 0
+ if 'xorHighBit' in kwargs:
+ xor_high_bit = int(kwargs.pop('xorHighBit'))
+ for i in range(0, self.intlvBits):
+ bit1 = intlv_high_bit - i
+ mask = 1 << bit1
+ if xor_high_bit != 0:
+ bit2 = xor_high_bit - i
+ mask |= 1 << bit2
+ self.masks[self.intlvBits - i - 1] = mask
if len(args) == 0:
self.start = Addr(kwargs.pop('start'))
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/19248
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I2091c432234df9cf907d52af6ba7f0cadd8c37a8
Gerrit-Change-Number: 19248
Gerrit-PatchSet: 1
Gerrit-Owner: Nikos Nikoleris <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev