@@ -69,7 +69,7 @@ def __init__(self, *nodes, **opts):
6969
7070 self .aswire = opts ['aswire' ] if 'aswire' in opts else True
7171 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
7373 self .dump_mode = opts ['dump_mode' ] if 'dump_mode' in opts else 'all'
7474
7575 self .seq = None
@@ -290,23 +290,37 @@ def get_name(obj):
290290 length = len (name ) + 6
291291 longest_name_len = max (longest_name_len , length )
292292
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 )
307307
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 ])
310324
311325 enables = []
312326 for input_var in sorted (input_vars , key = lambda x : x .object_id ):
@@ -316,8 +330,7 @@ def get_name(obj):
316330 hasattr (input_var , 'dump' ) and input_var .dump )):
317331 continue
318332
319- vfmt = (val_fmt if not hasattr (input_var , 'dump_fmt' ) else
320- input_var .dump_fmt )
333+ vfmt = input_var .dump_fmt
321334
322335 name = get_name (input_var .sig_data )
323336 name_alignment = ' ' * (longest_name_len - len (name ) -
@@ -343,8 +356,7 @@ def get_name(obj):
343356 hasattr (var , 'dump' ) and var .dump )):
344357 continue
345358
346- vfmt = (val_fmt if not hasattr (var , 'dump_fmt' ) else
347- var .dump_fmt )
359+ vfmt = var .dump_fmt
348360
349361 name = get_name (var .sig_data )
350362 name_alignment = ' ' * (longest_name_len - len (name ))
@@ -369,8 +381,7 @@ def get_name(obj):
369381 hasattr (output_var , 'dump' ) and output_var .dump )):
370382 continue
371383
372- vfmt = (val_fmt if not hasattr (output_var , 'dump_fmt' ) else
373- output_var .dump_fmt )
384+ vfmt = output_var .dump_fmt
374385
375386 name = get_name (output_var .output_sig_data )
376387 name_alignment = ' ' * (longest_name_len - len (name ) -
0 commit comments