Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>tags/11.0-branchpoint
| @@ -967,8 +967,8 @@ CodeEmitterGK110::emitSET(const CmpInstruction *i) | |||
| code[0] = (code[0] & ~0xfc) | ((code[0] << 3) & 0xe0); | |||
| if (i->defExists(1)) | |||
| defId(i->def(1), 2); | |||
| else | |||
| code[0] |= 0x1c; | |||
| else | |||
| code[0] |= 0x1c; | |||
| } else { | |||
| switch (i->sType) { | |||
| case TYPE_F32: op2 = 0x000; op1 = 0x800; break; | |||
| @@ -990,8 +990,12 @@ CodeEmitterGK110::emitSET(const CmpInstruction *i) | |||
| } | |||
| FTZ_(3a); | |||
| if (i->dType == TYPE_F32) | |||
| code[1] |= 1 << 23; | |||
| if (i->dType == TYPE_F32) { | |||
| if (isFloatType(i->sType)) | |||
| code[1] |= 1 << 23; | |||
| else | |||
| code[1] |= 1 << 15; | |||
| } | |||
| } | |||
| if (i->sType == TYPE_S32) | |||
| code[1] |= 1 << 19; | |||
| @@ -1830,6 +1830,7 @@ CodeEmitterGM107::emitISET() | |||
| emitCond3(0x31, insn->setCond); | |||
| emitField(0x30, 1, isSignedType(insn->sType)); | |||
| emitCC (0x2f); | |||
| emitField(0x2c, 1, insn->dType == TYPE_F32); | |||
| emitX (0x2b); | |||
| emitGPR (0x08, insn->src(0)); | |||
| emitGPR (0x00, insn->def(0)); | |||
| @@ -1078,8 +1078,14 @@ CodeEmitterNVC0::emitSET(const CmpInstruction *i) | |||
| if (!isFloatType(i->sType)) | |||
| lo = 0x3; | |||
| if (isFloatType(i->dType) || isSignedIntType(i->sType)) | |||
| if (isSignedIntType(i->sType)) | |||
| lo |= 0x20; | |||
| if (isFloatType(i->dType)) { | |||
| if (isFloatType(i->sType)) | |||
| lo |= 0x20; | |||
| else | |||
| lo |= 0x80; | |||
| } | |||
| switch (i->op) { | |||
| case OP_SET_AND: hi = 0x10000000; break; | |||