[reggen] Fix layout in register table
I messed this up in commit 94926ae (by closing the <td> containing a
register description when there was an enum to follow).
This patch fixes that and, I think, simplifies the logic a bit. Now,
we collect up "desc_parts", which contains any register description
and any enum. The surrounding <td> ... </td> get added together at the
end. Doing it this way should avoid things coming unstuck again in the
future.
Signed-off-by: Rupert Swarbrick <rswarbrick@lowrisc.org>
diff --git a/util/reggen/gen_html.py b/util/reggen/gen_html.py
index 9e3a978..e063913 100644
--- a/util/reggen/gen_html.py
+++ b/util/reggen/gen_html.py
@@ -155,8 +155,8 @@
wen=regwen_div))
if desc_body:
genout(outfile,
- '<tr><td colspan=5><p>{}</p></td></tr>'
- .format('</p><p>'.join(desc_body)))
+ '<tr><td colspan=5>{}</td></tr>'
+ .format(''.join(desc_body)))
if toc is not None:
toc.append((toclvl, comp + "." + rname, "Reg_" + rname.lower()))
@@ -192,24 +192,31 @@
('x' if field.resval is None else hex(field.resval)) +
"</td>")
genout(outfile, "<td class=\"regfn\">" + fname + "</td>")
+
+ # Collect up any description and enum table
+ desc_parts = []
+
if field.desc is not None:
- genout(outfile, render_td(field.desc, rnames, 'regde'))
- else:
- genout(outfile, "<td>\n")
+ desc_parts += expand_paras(field.desc, rnames)
if field.enum is not None:
- genout(outfile, " <table>")
+ desc_parts.append('<table>')
for enum in field.enum:
- ename = enum.name
- genout(outfile, " <tr><td>" + str(enum.value) + "</td>")
- genout(outfile, "<td>" + ename + "</td>")
- genout(outfile, render_td(enum.desc, rnames, None))
- genout(outfile, "</tr>\n")
-
- genout(outfile, " </table>")
+ enum_desc_paras = expand_paras(enum.desc, rnames)
+ desc_parts.append('<tr>'
+ '<td>{val}</td>'
+ '<td>{name}</td>'
+ '<td>{desc}</td>'
+ '</tr>\n'
+ .format(val=enum.value,
+ name=enum.name,
+ desc=''.join(enum_desc_paras)))
+ desc_parts.append('</table>')
if field.has_incomplete_enum():
- genout(outfile, "Other values are reserved.")
- genout(outfile, "</td></tr>\n")
+ desc_parts.append("<p>Other values are reserved.</p>")
+
+ genout(outfile,
+ '<td class="regde">{}</td>'.format(''.join(desc_parts)))
nextbit = fieldlsb + field.bits.width()
genout(outfile, "</table>\n<br>\n")