bool
ImmediateValue::isPow2() const
{
- switch (reg.type) {
- case TYPE_U8:
- case TYPE_U16:
- case TYPE_U32: return util_is_power_of_two(reg.data.u32);
- default:
- return false;
- }
+ return util_is_power_of_two(reg.data.u32);
}
void
encSize = 0;
ipa = 0;
mask = 0;
+ precise = 0;
lanes = 0xf;
tex.rIndirectSrc = -1;
tex.sIndirectSrc = -1;
+
+ if (op == OP_TXF)
+ sType = TYPE_U32;
}
TexInstruction::~TexInstruction()
PROG_TYPE_CASE(FRAGMENT, FRAGMENT);
PROG_TYPE_CASE(COMPUTE, COMPUTE);
default:
- type = nv50_ir::Program::TYPE_COMPUTE;
- break;
+ INFO_DBG(info->dbgFlags, VERBOSE, "unsupported program type %u\n", info->type);
+ return -1;
}
INFO_DBG(info->dbgFlags, VERBOSE, "translating program of type %u\n", type);
return -1;
nv50_ir::Program *prog = new nv50_ir::Program(type, targ);
- if (!prog)
+ if (!prog) {
+ nv50_ir::Target::destroy(targ);
return -1;
+ }
prog->driver = info;
prog->dbgFlags = info->dbgFlags;
prog->optLevel = info->optLevel;
switch (info->bin.sourceRep) {
-#if 0
- case PIPE_IR_LLVM:
- case PIPE_IR_GLSL:
- return -1;
- case PIPE_IR_SM4:
- ret = prog->makeFromSM4(info) ? 0 : -2;
+ case PIPE_SHADER_IR_TGSI:
+ ret = prog->makeFromTGSI(info) ? 0 : -2;
break;
- case PIPE_IR_TGSI:
-#endif
default:
- ret = prog->makeFromTGSI(info) ? 0 : -2;
+ ret = -1;
break;
}
if (ret < 0)