[Mesa-dev] [PATCH 2/7] gk110/ir: add emission for OP_MADSP
Ilia Mirkin
imirkin at alum.mit.edu
Wed Apr 20 20:29:55 UTC 2016
Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
On Wed, Apr 20, 2016 at 4:25 PM, Samuel Pitoiset
<samuel.pitoiset at gmail.com> wrote:
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
> .../drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp | 23 ++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
> index c8cb266..16d9421 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp
> @@ -95,6 +95,7 @@ private:
> void emitISAD(const Instruction *);
> void emitFMAD(const Instruction *);
> void emitDMAD(const Instruction *);
> + void emitMADSP(const Instruction *i);
>
> void emitNOT(const Instruction *);
> void emitLogicOp(const Instruction *, uint8_t subOp);
> @@ -517,6 +518,25 @@ CodeEmitterGK110::emitDMAD(const Instruction *i)
> }
>
> void
> +CodeEmitterGK110::emitMADSP(const Instruction *i)
> +{
> + emitForm_21(i, 0x140, 0xa40);
> +
> + if (i->subOp == NV50_IR_SUBOP_MADSP_SD) {
> + code[1] |= 0x00c00000;
> + } else {
> + code[1] |= (i->subOp & 0x00f) << 19; // imadp1
> + code[1] |= (i->subOp & 0x0f0) << 20; // imadp2
> + code[1] |= (i->subOp & 0x100) << 11; // imadp3
> + code[1] |= (i->subOp & 0x200) << 15; // imadp3
> + code[1] |= (i->subOp & 0xc00) << 12; // imadp3
> + }
> +
> + if (i->flagsDef >= 0)
> + code[1] |= 1 << 18;
> +}
> +
> +void
> CodeEmitterGK110::emitFMUL(const Instruction *i)
> {
> bool neg = (i->src(0).mod ^ i->src(1).mod).neg();
> @@ -2001,6 +2021,9 @@ CodeEmitterGK110::emitInstruction(Instruction *insn)
> else
> emitIMAD(insn);
> break;
> + case OP_MADSP:
> + emitMADSP(insn);
> + break;
> case OP_SAD:
> emitISAD(insn);
> break;
> --
> 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