@@ -69,7 +69,7 @@ def __init__(self, *nodes, **opts):
69
69
70
70
self .aswire = opts ['aswire' ] if 'aswire' in opts else True
71
71
self .dump = opts ['dump' ] if 'dump' in opts else False
72
- self .dump_fmt = opts ['dump_fmt ' ] if 'dump_fmt ' in opts else None
72
+ self .dump_base = opts ['dump_base ' ] if 'dump_base ' in opts else 10
73
73
self .dump_mode = opts ['dump_mode' ] if 'dump_mode' in opts else 'all'
74
74
75
75
self .seq = None
@@ -290,23 +290,37 @@ def get_name(obj):
290
290
length = len (name ) + 6
291
291
longest_name_len = max (longest_name_len , length )
292
292
293
- if self . dump_fmt is None :
294
- longest_var_len = 0
295
- for var in sorted ( all_vars , key = lambda x : ( - 1 , x . object_id )
296
- if x .start_stage is None else
297
- ( x . start_stage , x . object_id )):
298
- bit_length = var . sig_data . bit_length ()
299
- if bit_length is None :
300
- bit_length = 1
301
- if bit_length <= 0 :
302
- bit_length = 1
303
- length = int ( math . ceil ( bit_length / math . log ( 10 , 2 )))
304
- longest_var_len = max ( longest_name_len , length )
305
-
306
- val_fmt = '' . join ([ '%' , '%d' % ( longest_var_len + 1 ), 'd' ] )
293
+ longest_var_len = 0
294
+ for var in sorted ( all_vars , key = lambda x : ( - 1 , x . object_id )
295
+ if x . start_stage is None else
296
+ ( x .start_stage , x . object_id )):
297
+ bit_length = var . sig_data . bit_length ()
298
+ if bit_length is None :
299
+ bit_length = 1
300
+ if bit_length <= 0 :
301
+ bit_length = 1
302
+
303
+ base = ( var . dump_base if hasattr ( var , 'dump_base' ) else
304
+ self . dump_base )
305
+ length = int ( math . ceil ( bit_length / math . log ( base , 2 )))
306
+ longest_var_len = max ( longest_var_len , length )
307
307
308
- else :
309
- val_fmt = self .dump_fmt
308
+ for var in sorted (all_vars , key = lambda x : (- 1 , x .object_id )
309
+ if x .start_stage is None else
310
+ (x .start_stage , x .object_id )):
311
+
312
+ base = (var .dump_base if hasattr (var , 'dump_base' ) else
313
+ self .dump_base )
314
+ base_char = ('b' if base == 2 else
315
+ 'o' if base == 8 else
316
+ 'd' if base == 10 else
317
+ 'x' )
318
+ prefix = ('0b' if base == 2 else
319
+ '0o' if base == 8 else
320
+ ' ' if base == 10 else
321
+ '0x' )
322
+ var .dump_fmt = '' .join (
323
+ [prefix , '%' , '%d' % (longest_var_len + 1 ), base_char ])
310
324
311
325
enables = []
312
326
for input_var in sorted (input_vars , key = lambda x : x .object_id ):
@@ -316,8 +330,7 @@ def get_name(obj):
316
330
hasattr (input_var , 'dump' ) and input_var .dump )):
317
331
continue
318
332
319
- vfmt = (val_fmt if not hasattr (input_var , 'dump_fmt' ) else
320
- input_var .dump_fmt )
333
+ vfmt = input_var .dump_fmt
321
334
322
335
name = get_name (input_var .sig_data )
323
336
name_alignment = ' ' * (longest_name_len - len (name ) -
@@ -343,8 +356,7 @@ def get_name(obj):
343
356
hasattr (var , 'dump' ) and var .dump )):
344
357
continue
345
358
346
- vfmt = (val_fmt if not hasattr (var , 'dump_fmt' ) else
347
- var .dump_fmt )
359
+ vfmt = var .dump_fmt
348
360
349
361
name = get_name (var .sig_data )
350
362
name_alignment = ' ' * (longest_name_len - len (name ))
@@ -369,8 +381,7 @@ def get_name(obj):
369
381
hasattr (output_var , 'dump' ) and output_var .dump )):
370
382
continue
371
383
372
- vfmt = (val_fmt if not hasattr (output_var , 'dump_fmt' ) else
373
- output_var .dump_fmt )
384
+ vfmt = output_var .dump_fmt
374
385
375
386
name = get_name (output_var .output_sig_data )
376
387
name_alignment = ' ' * (longest_name_len - len (name ) -
0 commit comments