r300/compiler: Don't merge instructions that write output regs and ALU result

https://bugs.freedesktop.org/show_bug.cgi?id=30415

NOTE: This is a candidate for the 7.9 branch.
This commit is contained in:
Tom Stellard 2010-09-28 23:10:09 -07:00
parent 1b76dde0cd
commit b27a809266

View file

@ -475,6 +475,12 @@ static int merge_instructions(struct rc_pair_instruction * rgb, struct rc_pair_i
{
struct rc_pair_instruction backup;
/*Instructions can't write output registers and ALU result at the
* same time. */
if ((rgb->WriteALUResult && alpha->Alpha.OutputWriteMask)
|| (rgb->RGB.OutputWriteMask && alpha->WriteALUResult)) {
return 0;
}
memcpy(&backup, rgb, sizeof(struct rc_pair_instruction));
if (destructive_merge_instructions(rgb, alpha))