From 22881712c8bda560f98c21179cc1f4738d65678a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 11 Dec 2024 14:28:46 +0100 Subject: [PATCH] aco/assembler: Don't emit target basic block index when chaining branches This could erroneously cause an assertion to fail if the target block index was larger than UINT16_MAX. Fixes: cab5639a09ab954e67af27486a0f9b41a0373d98 ('aco/assembler: chain branches instead of emitting long jumps') Part-of: --- src/amd/compiler/aco_assembler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amd/compiler/aco_assembler.cpp b/src/amd/compiler/aco_assembler.cpp index 7590ceeef60..d8c5e97189f 100644 --- a/src/amd/compiler/aco_assembler.cpp +++ b/src/amd/compiler/aco_assembler.cpp @@ -1617,7 +1617,7 @@ chain_branches(asm_context& ctx, std::vector& out, branch_info& branch } const unsigned block_offset = insert_at + code.size(); - branch_instr = bld.sopp(aco_opcode::s_branch, target); + branch_instr = bld.sopp(aco_opcode::s_branch, 0); emit_sopp_instruction(ctx, code, branch_instr, true); insert_code(ctx, out, insert_at, code.size(), code.data());