diff options
Diffstat (limited to 'format.py')
| -rw-r--r-- | format.py | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -96,10 +96,11 @@ def pack_b(instr): return [op, imm_11, imm_lo, sub, rs1, rs2, imm_md, imm_12] def format(iter): + segment = None for line in iter: line = subv.parse(line) - if line['type'] == 'instr': + if segment == 'code' and line['type'] == 'instr': instr = line['instr'] op = instr[0] if len(op) != 2: @@ -121,11 +122,15 @@ def format(iter): out = pack_s(instr) elif format == 'j': out = pack_j(instr) + elif format == 'b': + out = pack_b(instr) else: raise NotImplementedError() yield subv.format_instr(out) else: + if line['type'] == 'segment': + segment = line['segment'][0] yield line['raw'] if __name__ == '__main__': |
