mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
nv50/ir: Add sat modifier for mul
Signed-off-by: Roy Spliet <rspliet@eclipso.eu> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
parent
ec3e1e6194
commit
44673512a8
2 changed files with 7 additions and 1 deletions
|
|
@ -1059,16 +1059,22 @@ CodeEmitterNV50::emitFMUL(const Instruction *i)
|
||||||
emitForm_IMM(i);
|
emitForm_IMM(i);
|
||||||
if (neg)
|
if (neg)
|
||||||
code[0] |= 0x8000;
|
code[0] |= 0x8000;
|
||||||
|
if (i->saturate)
|
||||||
|
code[0] |= 1 << 8;
|
||||||
} else
|
} else
|
||||||
if (i->encSize == 8) {
|
if (i->encSize == 8) {
|
||||||
code[1] = i->rnd == ROUND_Z ? 0x0000c000 : 0;
|
code[1] = i->rnd == ROUND_Z ? 0x0000c000 : 0;
|
||||||
if (neg)
|
if (neg)
|
||||||
code[1] |= 0x08000000;
|
code[1] |= 0x08000000;
|
||||||
|
if (i->saturate)
|
||||||
|
code[1] |= 1 << 20;
|
||||||
emitForm_MAD(i);
|
emitForm_MAD(i);
|
||||||
} else {
|
} else {
|
||||||
emitForm_MUL(i);
|
emitForm_MUL(i);
|
||||||
if (neg)
|
if (neg)
|
||||||
code[0] |= 0x8000;
|
code[0] |= 0x8000;
|
||||||
|
if (i->saturate)
|
||||||
|
code[0] |= 1 << 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ static const struct opProperties _initProps[] =
|
||||||
// neg abs not sat c[] s[], a[], imm
|
// neg abs not sat c[] s[], a[], imm
|
||||||
{ OP_ADD, 0x3, 0x0, 0x0, 0x8, 0x2, 0x1, 0x1, 0x2 },
|
{ OP_ADD, 0x3, 0x0, 0x0, 0x8, 0x2, 0x1, 0x1, 0x2 },
|
||||||
{ OP_SUB, 0x3, 0x0, 0x0, 0x0, 0x2, 0x1, 0x1, 0x2 },
|
{ OP_SUB, 0x3, 0x0, 0x0, 0x0, 0x2, 0x1, 0x1, 0x2 },
|
||||||
{ OP_MUL, 0x3, 0x0, 0x0, 0x0, 0x2, 0x1, 0x1, 0x2 },
|
{ OP_MUL, 0x3, 0x0, 0x0, 0x8, 0x2, 0x1, 0x1, 0x2 },
|
||||||
{ OP_MAX, 0x3, 0x3, 0x0, 0x0, 0x2, 0x1, 0x1, 0x0 },
|
{ OP_MAX, 0x3, 0x3, 0x0, 0x0, 0x2, 0x1, 0x1, 0x0 },
|
||||||
{ OP_MIN, 0x3, 0x3, 0x0, 0x0, 0x2, 0x1, 0x1, 0x0 },
|
{ OP_MIN, 0x3, 0x3, 0x0, 0x0, 0x2, 0x1, 0x1, 0x0 },
|
||||||
{ OP_MAD, 0x7, 0x0, 0x0, 0x8, 0x6, 0x1, 0x1, 0x0 }, // special constraint
|
{ OP_MAD, 0x7, 0x0, 0x0, 0x8, 0x6, 0x1, 0x1, 0x0 }, // special constraint
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue