diff --git a/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp b/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp index 82826a90921..7f1dd0a7a0e 100644 --- a/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp +++ b/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp @@ -933,6 +933,11 @@ void bc_finalizer::cf_peephole() { cf_node *c = static_cast(*I); if (c->jump_after_target) { + if (c->jump_target->next == NULL) { + c->jump_target->insert_after(sh.create_cf(CF_OP_NOP)); + if (last_cf == c->jump_target) + last_cf = static_cast(c->jump_target->next); + } c->jump_target = static_cast(c->jump_target->next); c->jump_after_target = false; }