aboutsummaryrefslogtreecommitdiffstats
path: root/format.py
diff options
context:
space:
mode:
Diffstat (limited to 'format.py')
-rw-r--r--format.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/format.py b/format.py
index 6a6a3b2..053e04e 100644
--- a/format.py
+++ b/format.py
@@ -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__':