r600g/sb: use MULADD workaround on R7xx for MULADD_IEEE

Looks like the same issue that was seen with MULADD in trans slot on
R7xx also affects MULADD_IEEE (maybe all OP3 instructions and MULADD is
just a most frequently used?). So the workaround is to not allow affected
instructions to be placed into the trans slot.

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

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
Cc: "9.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 17bb96b03d)
This commit is contained in:
Vadim Girlin 2013-08-11 02:52:34 +04:00 committed by Ian Romanick
parent cb8e109492
commit b76ff3dbcd

View file

@ -1490,7 +1490,8 @@ unsigned post_scheduler::try_add_instruction(node *n) {
// FIXME workaround for some problems with MULADD in trans slot on r700,
// (is it really needed on r600?)
if (a->bc.op == ALU_OP3_MULADD && !ctx.is_egcm()) {
if ((a->bc.op == ALU_OP3_MULADD || a->bc.op == ALU_OP3_MULADD_IEEE) &&
!ctx.is_egcm()) {
allowed_slots &= 0x0F;
}