nv50/ir: Add emit support for MAD IMM format

But don't enable generation of it in the opProperties, because we can't
guarantee the SDST==SRC2 constraint until after register assignment. We'll
add a post-RA folding pass to utilise this.

Signed-off-by: Roy Spliet <rspliet@eclipso.eu>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Roy Spliet 2015-02-06 22:46:55 +01:00 committed by Ilia Mirkin
parent fb63df2215
commit 3dc39d0bca

View file

@ -939,6 +939,14 @@ CodeEmitterNV50::emitFMAD(const Instruction *i)
code[0] = 0xe0000000;
if (i->src(1).getFile() == FILE_IMMEDIATE) {
code[1] = 0;
emitForm_IMM(i);
code[0] |= neg_mul << 15;
code[0] |= neg_add << 22;
if (i->saturate)
code[0] |= 1 << 8;
} else
if (i->encSize == 4) {
emitForm_MUL(i);
code[0] |= neg_mul << 15;