> > #define SERIALIZATIONINSTRUCTIONCTX(name, \ > > inst, bit_width, offset) \ > > BuildSerializationInstructionEntry name = { \ > > .table_data = table_instruction_data, \ > > .bar = bar0, \ > > .instruction = inst, \ > > .flags = 0, \ > > .register_bit_width = bit_width, \ > > .register_offset = offset, \ > > } > > SERIALIZATIONINSTRUCTIONCTX(rd_value_32_val, > > INST_READ_REGISTER_VALUE, 32, ERST_VALUE_OFFSET); > > SERIALIZATIONINSTRUCTIONCTX(rd_value_32, > > INST_READ_REGISTER, 32, ERST_VALUE_OFFSET); > > SERIALIZATIONINSTRUCTIONCTX(rd_value_64, > > INST_READ_REGISTER, 64, ERST_VALUE_OFFSET); > > SERIALIZATIONINSTRUCTIONCTX(wr_value_32_val, > > INST_WRITE_REGISTER_VALUE, 32, ERST_VALUE_OFFSET); > > SERIALIZATIONINSTRUCTIONCTX(wr_value_32, > > INST_WRITE_REGISTER, 32, ERST_VALUE_OFFSET); > > SERIALIZATIONINSTRUCTIONCTX(wr_value_64, > > INST_WRITE_REGISTER, 64, ERST_VALUE_OFFSET); > > SERIALIZATIONINSTRUCTIONCTX(wr_action, > > INST_WRITE_REGISTER_VALUE, 32, ERST_ACTION_OFFSET); > > > > These are the 7 accessors needed. > > not at all sure this one is worth the macro mess. >
I did not quite have this in my mind when I said macro but it's fine. We can improve the code later.