From 3a02bbd9167a29487a8dd6a331a22be3d318283e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Mon, 11 Nov 2024 12:03:59 +0100 Subject: [PATCH] aco/print_asm: allow for empty blocks with arbitrary offsets We will add empty blocks at the end of the shader, in order to store some branch offset information. Part-of: --- src/amd/compiler/aco_print_asm.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_print_asm.cpp b/src/amd/compiler/aco_print_asm.cpp index 691be619415..be3616ff3d9 100644 --- a/src/amd/compiler/aco_print_asm.cpp +++ b/src/amd/compiler/aco_print_asm.cpp @@ -42,7 +42,9 @@ void print_block_markers(FILE* output, Program* program, const std::vector& referenced_blocks, unsigned* next_block, unsigned pos) { - while (*next_block < program->blocks.size() && pos == program->blocks[*next_block].offset) { + while (*next_block < program->blocks.size() && pos >= program->blocks[*next_block].offset) { + assert(pos == program->blocks[*next_block].offset || + program->blocks[*next_block].instructions.empty()); if (referenced_blocks[*next_block]) fprintf(output, "BB%u:\n", *next_block); (*next_block)++;