template <typename Visitor> void enumerateFields_gen(InstMem obj,  Visitor & vis) {
  vis(obj.opcode(),"opcode");
  vis(obj.type(),"type");
  for (unsigned i=0;i<5;i++) {
    vis(obj.operand(i),"operands", i);
  }
  vis(obj.segment(),"segment");
  enumerateFields(obj.modifier(), vis);
  vis(obj.equivClass(),"equivClass");
  vis(obj.width(),"width");
}