For the series: Reviewed-by: Marek Olšák <marek.ol...@amd.com>
Marek On Tue, Aug 22, 2017 at 5:32 PM, Nicolai Hähnle <nhaeh...@gmail.com> wrote: > From: Nicolai Hähnle <nicolai.haeh...@amd.com> > > They are only used for debug info. > > Together with making tgsi_opcode_info::opcode a bitfield, this reduces > the size of tgsi_opcode_info on 64-bit systems from 24 bytes to 4 bytes, > and makes the whole data structure a bit more linker friendly. > --- > src/gallium/auxiliary/tgsi/tgsi_info.c | 19 +++++++++++++++---- > src/gallium/auxiliary/tgsi/tgsi_info.h | 3 +-- > 2 files changed, 16 insertions(+), 6 deletions(-) > > diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.c > b/src/gallium/auxiliary/tgsi/tgsi_info.c > index 5112826aafb..08bce6380c9 100644 > --- a/src/gallium/auxiliary/tgsi/tgsi_info.c > +++ b/src/gallium/auxiliary/tgsi/tgsi_info.c > @@ -36,11 +36,11 @@ > #define OTHR TGSI_OUTPUT_OTHER > > #define OPCODE(_num_dst, _num_src, _output_mode, name, ...) \ > - { .mnemonic = #name, .opcode = TGSI_OPCODE_ ## name, \ > + { .opcode = TGSI_OPCODE_ ## name, \ > .output_mode = _output_mode, .num_dst = _num_dst, .num_src = _num_src, \ > ##__VA_ARGS__ }, > > -#define OPCODE_GAP(opc) { .mnemonic = "", .opcode = opc }, > +#define OPCODE_GAP(opc) { .opcode = opc }, > > static const struct tgsi_opcode_info opcode_info[TGSI_OPCODE_LAST] = > { > @@ -69,12 +69,23 @@ tgsi_get_opcode_info( uint opcode ) > return NULL; > } > > +#define OPCODE(_num_dst, _num_src, _output_mode, name, ...) #name, > +#define OPCODE_GAP(opc) "UNK" #opc, > + > +static const char * const opcode_names[TGSI_OPCODE_LAST] = > +{ > +#include "tgsi_info_opcodes.h" > +}; > + > +#undef OPCODE > +#undef OPCODE_GAP > > const char * > tgsi_get_opcode_name( uint opcode ) > { > - const struct tgsi_opcode_info *info = tgsi_get_opcode_info(opcode); > - return info->mnemonic; > + if (opcode >= ARRAY_SIZE(opcode_names)) > + return "UNK_OOB"; > + return opcode_names[opcode]; > } > > > diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.h > b/src/gallium/auxiliary/tgsi/tgsi_info.h > index e65f7ac3b74..74bff186924 100644 > --- a/src/gallium/auxiliary/tgsi/tgsi_info.h > +++ b/src/gallium/auxiliary/tgsi/tgsi_info.h > @@ -79,8 +79,7 @@ struct tgsi_opcode_info > unsigned pre_dedent:1; > unsigned post_indent:1; > enum tgsi_output_mode output_mode:3; > - const char *mnemonic; > - uint opcode; > + unsigned opcode:8; > }; > > const struct tgsi_opcode_info * > -- > 2.11.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev