@@ -26,7 +26,7 @@ def prevsum(self, i, k):
2626
2727 def islegal (self , value , dependency_vals = []):
2828 is_legal = False
29- logger .debug ('Checking for isLegal for WARL: \n \t ' +
29+ logger .debug ('Checking for isLegal for WARL: \n ' +
3030 utils .pretty_print_yaml (self .warl ) + '\n With following args:' \
3131 + 'val : ' + str (value ) + ' dep_vals :' +
3232 str (dependency_vals ))
@@ -46,21 +46,15 @@ def islegal(self, value, dependency_vals=[]):
4646 if not bitmask : # if its not a bitmask
4747 if ":" in csr_vals : # range is specified
4848 [base , bound ] = csr_vals .split (':' )
49- if 'x' in base :
50- base = int (base ,16 )
51- else :
52- base = int (base ,10 )
53- if 'x' in bound :
54- bound = int (bound ,16 )
55- else :
56- bound = int (bound ,10 )
49+ base = int (base , 0 )
50+ bound = int (bound , 0 )
5751 if value >= base and value <= bound : # check legal range
5852 part_legal = True
5953 else :
6054 l_vals = csr_vals .split (',' )
6155 legal_vals = []
6256 for i in l_vals :
63- legal_vals .append (int (i ,16 ))
57+ legal_vals .append (int (i ,0 ))
6458 if value in legal_vals :
6559 part_legal = True
6660 else : # in case of bitmask there are no illegal values
@@ -100,17 +94,15 @@ def islegal(self, value, dependency_vals=[]):
10094 # check if the dependency value is satisfied.
10195 if ":" in dep_vals : # range is specified
10296 [base , bound ] = dep_vals .split (':' )
103- if 'x' in base :
104- base = int (base ,16 )
105- if 'x' in bound :
106- bound = int (bound ,16 )
97+ base = int (base , 0 )
98+ bound = int (bound , 0 )
10799 if recvd_val >= base and recvd_val <= bound : # check legal range
108100 dep_satified = True
109101 else :
110102 l_vals = dep_vals .split (',' )
111103 legal_vals = []
112104 for i in l_vals :
113- legal_vals .append (int (i ,16 ))
105+ legal_vals .append (int (i ,0 ))
114106 if recvd_val in legal_vals :
115107 dep_satified = True
116108
@@ -125,17 +117,15 @@ def islegal(self, value, dependency_vals=[]):
125117 if not bitmask : # if its not a bitmask
126118 if ":" in csr_vals : # range is specified
127119 [base , bound ] = csr_vals .split (':' )
128- if 'x' in base :
129- base = int (base ,16 )
130- if 'x' in bound :
131- bound = int (bound ,16 )
120+ base = int (base , 0 )
121+ bound = int (bound , 0 )
132122 if trunc_val >= base and trunc_val <= bound : # check legal range
133123 part_legal = True
134124 else :
135125 l_vals = csr_vals .split (',' )
136126 legal_vals = []
137127 for i in l_vals :
138- legal_vals .append (int (i ,16 ))
128+ legal_vals .append (int (i ,0 ))
139129 if trunc_val in legal_vals :
140130 part_legal = True
141131 else : # in case of bitmask there are no illegal values
@@ -196,9 +186,8 @@ def update(self, curr_val, wr_val, dependency_vals=[]):
196186 for i1 in range (len (dependency_vals )):
197187 if dependency_vals [i1 ] == int (mode [i1 ]):
198188 if op != []:
199- if int (wr_val ,
200- 16 ) in range (int (z [0 ], 16 ),
201- int (z [1 ], 16 )):
189+ if int (wr_val , 0 ) in range (int (z [0 ], 0 ),
190+ int (z [1 ], 0 )):
202191 j = i
203192 flag1 = 1
204193 break
@@ -220,7 +209,7 @@ def update(self, curr_val, wr_val, dependency_vals=[]):
220209 self .warl ['wr_illegal' ][i ])
221210 if op != []:
222211 z = re .split ("\:" , op [0 ])
223- if int (wr_val , 16 ) in range (int (z [0 ], 16 ), int (z [1 ], 16 )):
212+ if int (wr_val , 0 ) in range (int (z [0 ], 0 ), int (z [1 ], 0 )):
224213 j = i
225214 flag1 = 1
226215 break
@@ -260,7 +249,7 @@ def update(self, curr_val, wr_val, dependency_vals=[]):
260249 l = self .legal (dependency_vals )
261250 for i in range (len (l )):
262251 if len (l [i ]) == 1 :
263- a .append (abs (int (wr_val , 16 ) - int (l [i ][0 ], 16 )))
252+ a .append (abs (int (wr_val , 0 ) - int (l [i ][0 ], 0 )))
264253 for i in range (len (a ) - 1 , - 1 , - 1 ):
265254 if a [i ] == min (a ):
266255 j = i
@@ -274,7 +263,7 @@ def update(self, curr_val, wr_val, dependency_vals=[]):
274263 l = self .legal (dependency_vals )
275264 for i in range (len (l )):
276265 if len (l [i ]) == 1 :
277- a .append (abs (int (wr_val , 16 ) - int (l [i ][0 ], 16 )))
266+ a .append (abs (int (wr_val , 0 ) - int (l [i ][0 ], 0 )))
278267 for i in range (len (a )):
279268 if a [i ] == min (a ):
280269 j = i
@@ -286,7 +275,7 @@ def update(self, curr_val, wr_val, dependency_vals=[]):
286275 elif wr .lower ().strip () == "nextup" :
287276 l = self .legal (dependency_vals )
288277 for i in range (len (l )):
289- if int (l [i ][0 ], 16 ) > int (wr_val , 16 ) and len (l [i ]) == 1 :
278+ if int (l [i ][0 ], 0 ) > int (wr_val , 0 ) and len (l [i ]) == 1 :
290279 j = i
291280 flag2 = 1
292281 break
@@ -298,7 +287,7 @@ def update(self, curr_val, wr_val, dependency_vals=[]):
298287 elif wr .lower ().strip () == "nextdown" :
299288 l = self .legal (dependency_vals )
300289 for i in range (len (l )):
301- if int (l [i ][0 ], 16 ) > int (wr_val , 16 ) and len (l [i ]) == 1 :
290+ if int (l [i ][0 ], 0 ) > int (wr_val , 0 ) and len (l [i ]) == 1 :
302291 j = i
303292 flag2 = 1
304293 break
@@ -338,7 +327,7 @@ def update(self, curr_val, wr_val, dependency_vals=[]):
338327 return y [0 ]
339328
340329 elif wr .lower ().strip () == "addr" :
341- wr = format (int (wr_val , 16 ),
330+ wr = format (int (wr_val , 0 ),
342331 '#0{}b' .format (4 * self .bitsum + 2 ))
343332 wr = wr [2 :]
344333 if wr [0 :1 ] == '0' :
@@ -347,7 +336,7 @@ def update(self, curr_val, wr_val, dependency_vals=[]):
347336 wr_final = '0' + wr [1 :]
348337 else :
349338 print ("Invalid binary bit" )
350- return hex (int (wr_final , 2 ))
339+ return hex (int (wr_final , 0 ))
351340
352341 else :
353342 return "Invalid update mode"
@@ -358,9 +347,9 @@ def update(self, curr_val, wr_val, dependency_vals=[]):
358347 z = re .findall (
359348 r'\s*.*\s*\[(.*)\]\s*{}\s*\[.*?,.*?\]' .format ("bitmask" ), inp1 )
360349 y = re .split ("\," , x [0 ])
361- bitmask = int (y [0 ], 16 )
362- fixedval = int (y [1 ], 16 )
363- currval = int (wr_val , 16 )
350+ bitmask = int (y [0 ], 0 )
351+ fixedval = int (y [1 ], 0 )
352+ currval = int (wr_val , 0 )
364353 legal = ((currval & bitmask ) | fixedval )
365354 return hex (legal )
366355
0 commit comments