mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-19 04:30:25 +01:00
r600: Print RAT instruction names in disassembly
Also print the swizzle of the address to indicate what values may be used. Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19804>
This commit is contained in:
parent
684e90b15c
commit
85e140aa5c
1 changed files with 59 additions and 2 deletions
|
|
@ -2166,6 +2166,62 @@ static int print_indent(int p, int c)
|
|||
return o;
|
||||
}
|
||||
|
||||
const char *rat_instr_name[] = {
|
||||
"NOP",
|
||||
"STORE_TYPED",
|
||||
"STORE_RAW",
|
||||
"STORE_RAW_FDENORM",
|
||||
"CMP_XCHG_INT",
|
||||
"CMP_XCHG_FLT",
|
||||
"CMP_XCHG_FDENORM",
|
||||
"ADD",
|
||||
"SUB",
|
||||
"RSUB",
|
||||
"MIN_INT",
|
||||
"MIN_UINT",
|
||||
"MAX_INT",
|
||||
"MAX_UINT",
|
||||
"AND",
|
||||
"OR",
|
||||
"XOR",
|
||||
"MSKOR",
|
||||
"INC_UINT",
|
||||
"DEC_UINT",
|
||||
"RESERVED20",
|
||||
"RESERVED21",
|
||||
"RESERVED22",
|
||||
"RESERVED23",
|
||||
"RESERVED24",
|
||||
"RESERVED25",
|
||||
"RESERVED26",
|
||||
"RESERVED27",
|
||||
"RESERVED28",
|
||||
"RESERVED29",
|
||||
"RESERVED30",
|
||||
"RESERVED31",
|
||||
"NOP_RTN",
|
||||
"RESERVED33",
|
||||
"XCHG_RTN",
|
||||
"XCHG_FDENORM_RTN",
|
||||
"CMPXCHG_INT_RTN",
|
||||
"CMPXCHG_FLT_RTN",
|
||||
"CMPXCHG_FDENORM_RTN",
|
||||
"ADD_RTN",
|
||||
"SUB_RTN",
|
||||
"RSUB_RTN",
|
||||
"MIN_INT_RTN",
|
||||
"MIN_UINT_RTN",
|
||||
"MAX_INT_RTN",
|
||||
"MAX_UINT_RTN",
|
||||
"AND_RTN",
|
||||
"OR_RTN",
|
||||
"XOR_RTN",
|
||||
"MSKOR_RTN",
|
||||
"INC_UINT_RTN",
|
||||
"DEC_UINT_RTN",
|
||||
};
|
||||
|
||||
|
||||
void r600_bytecode_disasm(struct r600_bytecode *bc)
|
||||
{
|
||||
const char *index_mode[] = {"CF_INDEX_NONE", "CF_INDEX_0", "CF_INDEX_1"};
|
||||
|
|
@ -2292,7 +2348,8 @@ void r600_bytecode_disasm(struct r600_bytecode *bc)
|
|||
if (cf->rat.index_mode) {
|
||||
o += fprintf(stderr, "[IDX%d]", cf->rat.index_mode - 1);
|
||||
}
|
||||
o += fprintf(stderr, " INST: %d ", cf->rat.inst);
|
||||
assert(ARRAY_SIZE(rat_instr_name) > cf->rat.inst);
|
||||
o += fprintf(stderr, " %s ", rat_instr_name[cf->rat.inst]);
|
||||
}
|
||||
|
||||
if (cf->output.burst_count > 1) {
|
||||
|
|
@ -2315,7 +2372,7 @@ void r600_bytecode_disasm(struct r600_bytecode *bc)
|
|||
|
||||
if (cf->output.type == V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_WRITE_IND ||
|
||||
cf->output.type == V_SQ_CF_ALLOC_EXPORT_WORD0_SQ_EXPORT_READ_IND)
|
||||
o += fprintf(stderr, " R%d", cf->output.index_gpr);
|
||||
o += fprintf(stderr, " R%d.xyz", cf->output.index_gpr);
|
||||
|
||||
o += print_indent(o, 67);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue