[Mesa-dev] [PATCH] gm107/ir: add missing setcond flags for LOP variants

Ilia Mirkin imirkin at alum.mit.edu
Mon Jun 27 22:01:49 UTC 2016


Hm, dangerous:

CodeEmitterGM107::emitCC(int pos)
{
   emitField(pos, 1, insn->defExists(1));
}

That should *probably* be insn->flagsDef >= 0. IIRC I fixed up
gf100/gk110 before. But that might have been nv50-specific, I forget
(which has somewhat different flags).

On Mon, Jun 27, 2016 at 5:55 PM, Samuel Pitoiset
<samuel.pitoiset at gmail.com> wrote:
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> Cc: <mesa-stable at lists.freedesktop.org>
> ---
>  src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
> index 80761e2..c7bd4e1 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp
> @@ -1632,12 +1632,14 @@ CodeEmitterGM107::emitLOP()
>        }
>        emitPRED (0x30);
>        emitX    (0x2b);
> +      emitCC   (0x2f);

The pattern might not be obvious, but these are sorted by decreasing
bitfield position. Please keep the order.

>        emitField(0x29, 2, lop);
>        emitINV  (0x28, insn->src(1));
>        emitINV  (0x27, insn->src(0));
>     } else {
>        emitInsn (0x04000000);
>        emitX    (0x39);
> +      emitCC   (0x34);
>        emitINV  (0x38, insn->src(1));
>        emitINV  (0x37, insn->src(0));
>        emitField(0x35, 2, lop);
> --
> 2.8.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list