diff options
| author | s-ol <s+removethis@s-ol.nu> | 2021-05-23 09:41:11 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2021-05-23 09:41:11 +0000 |
| commit | 8cf8176db625c93f940c2527e5e3bfb6b2d652de (patch) | |
| tree | 40ca0f2c79478f10128d42357290d6134ae6e4ba /format.py | |
| parent | revert to code detection by segment (diff) | |
| download | subv-8cf8176db625c93f940c2527e5e3bfb6b2d652de.tar.gz subv-8cf8176db625c93f940c2527e5e3bfb6b2d652de.zip | |
support offsets on labels
Diffstat (limited to 'format.py')
| -rwxr-xr-x | format.py | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -84,8 +84,12 @@ def default_slice(val, hi, lo): >>> default_slice(('label', 'imm12'), 12, 1) ('label[12:1]', 'imm12') + >>> default_slice(('label-4', 'imm12'), 12, 1) + ('label-4[12:1]', 'imm12') >>> default_slice(('label[14:3]', 'imm12'), 12, 1) ('label[14:3]', 'imm12') + >>> default_slice(('label+4[14:3]', 'imm12'), 12, 1) + ('label+4[14:3]', 'imm12') >>> default_slice(('label[14:3]', 'imm12', 'extra'), 12, 1) ('label[14:3]', 'imm12', 'extra') >>> default_slice(('label[31:0]', 'imm12'), 11, 0) @@ -97,13 +101,12 @@ def default_slice(val, hi, lo): if 'hi' not in parsed: parsed['hi'] = hi parsed['lo'] = lo - - ref = '{label}[{hi}:{lo}]'.format(**parsed) + ref = subv.format_reference(parsed) p_size = parsed['hi'] - parsed['lo'] + 1 - assert parsed['size'] == p_size, "expected {} bit slice, got {} ({} bit)".format(parsed['size'], ref, p_size) + assert parsed['size'] == p_size, "expected {} bit slice, got {} ({} bit)".format(parsed['size'], ref[0], p_size) - return (ref, *val[1:]) + return ref def slice_bit_or_ref(val, hi, lo): """ bit.slice but for bitfields and label references. |
