From: Christoph Bumiller Date: Sun, 6 Feb 2011 12:09:24 +0000 (+0100) Subject: nvc0: do not generate a backwards jump if a loop ends with BRK X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c485368efea8527da68a476af4ed48541b5ed93e;p=mesa.git nvc0: do not generate a backwards jump if a loop ends with BRK --- diff --git a/src/gallium/drivers/nvc0/nvc0_tgsi_to_nc.c b/src/gallium/drivers/nvc0/nvc0_tgsi_to_nc.c index 8c0967dfa87..8b6cb0e7c76 100644 --- a/src/gallium/drivers/nvc0/nvc0_tgsi_to_nc.c +++ b/src/gallium/drivers/nvc0/nvc0_tgsi_to_nc.c @@ -1693,9 +1693,11 @@ bld_instruction(struct bld_context *bld, { struct nv_basic_block *bb = bld->loop_bb[bld->loop_lvl - 1]; - bld_flow(bld, NV_OP_BRA, NULL, bb, FALSE); + if (bld->out_kind != CFG_EDGE_FAKE) { /* else we already had BRK/CONT */ + bld_flow(bld, NV_OP_BRA, NULL, bb, FALSE); - nvc0_bblock_attach(bld->pc->current_block, bb, CFG_EDGE_BACK); + nvc0_bblock_attach(bld->pc->current_block, bb, CFG_EDGE_BACK); + } bld_loop_end(bld, bb); /* replace loop-side operand of the phis */