gallivm: fix nested cont statements
authorZack Rusin <zackr@vmware.com>
Thu, 22 Apr 2010 17:45:25 +0000 (13:45 -0400)
committerZack Rusin <zackr@vmware.com>
Thu, 22 Apr 2010 17:57:18 +0000 (13:57 -0400)
src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c

index b87817dd0d49786f77c9a2d3bf894fc0def3092d..e55e3dce674c69eaa5d63bce20928b6de3c0a776 100644 (file)
@@ -234,6 +234,7 @@ static void lp_exec_bgnloop(struct lp_exec_mask *mask)
       mask->cond_mask = LLVMConstAllOnes(mask->int_vec_type);
 
    mask->break_stack[mask->break_stack_size++] = mask->break_mask;
+   mask->cont_stack[mask->cont_stack_size++] = mask->cont_mask;
    mask->loop_stack[mask->loop_stack_size++] = mask->loop_block;
    mask->loop_block = lp_build_insert_new_block(mask->bld->builder, "bgnloop");
    LLVMBuildBr(mask->bld->builder, mask->loop_block);
@@ -264,7 +265,6 @@ static void lp_exec_continue(struct lp_exec_mask *mask)
                                          mask->exec_mask,
                                          "");
 
-   mask->cont_stack[mask->cont_stack_size++] = mask->cont_mask;
    if (mask->cont_stack_size > 1) {
       mask->cont_mask = LLVMBuildAnd(mask->bld->builder,
                                      mask->cont_mask,