r300g/compiler/tests: Add an assembly parser
[mesa.git] / src / gallium / drivers / r300 / compiler / radeon_optimize.c
index 7be9d9e525bf4af88ef651ee8c3f16e2ffb22aed..3bbfe898cc2ad599cc43da9ea73a7e61357b5d9a 100644 (file)
@@ -725,6 +725,7 @@ static int peephole_mul_omod(
        struct rc_list * writer_list;
        struct rc_variable * var;
        struct peephole_mul_cb_data cb_data;
+       unsigned writemask_sum;
 
        for (i = 0; i < 2; i++) {
                unsigned int j;
@@ -832,10 +833,11 @@ static int peephole_mul_omod(
        }
 
        /* Rewrite the instructions */
+       writemask_sum = rc_variable_writemask_sum(writer_list->Item);
        for (var = writer_list->Item; var; var = var->Friend) {
-               struct rc_variable * writer = writer_list->Item;
+               struct rc_variable * writer = var;
                unsigned conversion_swizzle = rc_make_conversion_swizzle(
-                                       writer->Inst->U.I.DstReg.WriteMask,
+                                       writemask_sum,
                                        inst_mul->U.I.DstReg.WriteMask);
                writer->Inst->U.I.Omod = omod_op;
                writer->Inst->U.I.DstReg.File = inst_mul->U.I.DstReg.File;