Esempio n. 1
0
void CVPParser::ParseInstruction(struct nvfx_insn *insn,opcode *opc,const char *param_str)
{
	u32 i;
	char *token = SkipSpaces(strtok((char*)param_str,","));

	if(opc->is_imm)
		ParseMaskedDstAddr(token,insn);
	else
		ParseMaskedDstReg(token,insn);

	for(i=0;i<opc->nr_src;i++) {
		token = SkipSpaces(strtok(NULL,","));
		ParseSwizzledSrcReg(token,&insn->src[opc->src_slots[i]]);
	}

	if(opc->opcode == OPCODE_TEX) {
	  uint8_t unit = ~0, target = ~0;

	  token = SkipSpaces(strtok(NULL,","));
	  ParseTextureUnit(token,&unit);
	  
	  token = SkipSpaces(strtok(NULL,","));
	  ParseTextureTarget(token,&target);

	  insn->src[1] = nvfx_src(nvfx_reg(NVFXSR_VPTEXINPUT,unit));
	}
}
Esempio n. 2
0
void CVPParser::ParseInstruction(struct nvfx_insn *insn,opcode *opc,const char *param_str)
{
    u32 i;
    char *token = SkipSpaces(strtok((char*)param_str,","));

    if(opc->is_imm)
        ParseMaskedDstAddr(token,insn);
    else
        ParseMaskedDstReg(token,insn);

    for(i=0; i<opc->nr_src; i++) {
        token = SkipSpaces(strtok(NULL,","));
        ParseSwizzledSrcReg(token,&insn->src[opc->src_slots[i]]);
    }
}