From 5cae4779c2e2276da3720fdde136fbf623c3c983 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 30 Dec 2020 12:03:06 -0800 Subject: [PATCH] freedreno/ir3: Switch over to new encoder/decoder Signed-off-by: Rob Clark Part-of: --- src/freedreno/ir3/ir3_shader.c | 10 ++++++++-- src/freedreno/ir3/meson.build | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/freedreno/ir3/ir3_shader.c b/src/freedreno/ir3/ir3_shader.c index 8197764d112..a4feb9be8f1 100644 --- a/src/freedreno/ir3/ir3_shader.c +++ b/src/freedreno/ir3/ir3_shader.c @@ -36,6 +36,8 @@ #include "ir3_compiler.h" #include "ir3_nir.h" +#include "isa/isa.h" + #include "disasm.h" int @@ -144,7 +146,7 @@ void * ir3_shader_assemble(struct ir3_shader_variant *v) */ info->size = align(info->size, compiler->instr_align * sizeof(instr_t)); - bin = ir3_assemble(v); + bin = isa_assemble(v); if (!bin) return NULL; @@ -613,7 +615,11 @@ ir3_shader_disasm(struct ir3_shader_variant *so, uint32_t *bin, FILE *out) const_state->immediates[i * 4 + 3]); } - disasm_a3xx(bin, so->info.sizedwords, 0, out, ir->compiler->gpu_id); + isa_decode(bin, so->info.sizedwords * 4, out, &(struct isa_decode_options){ + .gpu_id = ir->compiler->gpu_id, + .show_errors = true, + .branch_labels = true, + }); fprintf(out, "; %s: outputs:", type); for (i = 0; i < so->outputs_count; i++) { diff --git a/src/freedreno/ir3/meson.build b/src/freedreno/ir3/meson.build index 35884b8c758..534dd02b84d 100644 --- a/src/freedreno/ir3/meson.build +++ b/src/freedreno/ir3/meson.build @@ -112,6 +112,7 @@ libfreedreno_ir3 = static_library( include_directories : [inc_freedreno, inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux], c_args : [no_override_init_args], gnu_symbol_visibility : 'hidden', + link_with: [libir3decode, libir3encode], dependencies : [idep_nir_headers, dep_dl, idep_mesautil], build_by_default : false, )