This is overall, fairly mechanical. Instructions are ordered in the same way as in the RISC-V User-Level ISA Specification.
A future patch will add support for pseudoinstructions and other instruction expansions (e.g. 0-arg fence -> fence iorw, iorw).
style: shouldn't this be isImm12?