> > #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.

Reply via email to