/** * Print a single NVIDIA vertex program instruction. */ void _mesa_print_nv_vertex_instruction(const struct vp_instruction *inst) { switch (inst->Opcode) { case VP_OPCODE_MOV: case VP_OPCODE_LIT: case VP_OPCODE_RCP: case VP_OPCODE_RSQ: case VP_OPCODE_EXP: case VP_OPCODE_LOG: case VP_OPCODE_RCC: case VP_OPCODE_ABS: _mesa_printf("%s ", Opcodes[(int) inst->Opcode]); PrintDstReg(&inst->DstReg); _mesa_printf(", "); PrintSrcReg(&inst->SrcReg[0]); _mesa_printf(";\n"); break; case VP_OPCODE_MUL: case VP_OPCODE_ADD: case VP_OPCODE_DP3: case VP_OPCODE_DP4: case VP_OPCODE_DST: case VP_OPCODE_MIN: case VP_OPCODE_MAX: case VP_OPCODE_SLT: case VP_OPCODE_SGE: case VP_OPCODE_DPH: case VP_OPCODE_SUB: _mesa_printf("%s ", Opcodes[(int) inst->Opcode]); PrintDstReg(&inst->DstReg); _mesa_printf(", "); PrintSrcReg(&inst->SrcReg[0]); _mesa_printf(", "); PrintSrcReg(&inst->SrcReg[1]); _mesa_printf(";\n"); break; case VP_OPCODE_MAD: _mesa_printf("MAD "); PrintDstReg(&inst->DstReg); _mesa_printf(", "); PrintSrcReg(&inst->SrcReg[0]); _mesa_printf(", "); PrintSrcReg(&inst->SrcReg[1]); _mesa_printf(", "); PrintSrcReg(&inst->SrcReg[2]); _mesa_printf(";\n"); break; case VP_OPCODE_ARL: _mesa_printf("ARL A0.x, "); PrintSrcReg(&inst->SrcReg[0]); _mesa_printf(";\n"); break; case VP_OPCODE_END: _mesa_printf("END\n"); break; default: _mesa_printf("BAD INSTRUCTION\n"); } }
/** * Print a single NVIDIA vertex program instruction. */ void _mesa_print_nv_vertex_instruction(const struct prog_instruction *inst) { GLuint i, n; switch (inst->Opcode) { case OPCODE_MOV: case OPCODE_LIT: case OPCODE_RCP: case OPCODE_RSQ: case OPCODE_EXP: case OPCODE_LOG: case OPCODE_RCC: case OPCODE_ABS: case OPCODE_MUL: case OPCODE_ADD: case OPCODE_DP3: case OPCODE_DP4: case OPCODE_DST: case OPCODE_MIN: case OPCODE_MAX: case OPCODE_SLT: case OPCODE_SGE: case OPCODE_DPH: case OPCODE_SUB: case OPCODE_MAD: _mesa_printf("%s ", _mesa_opcode_string(inst->Opcode)); PrintDstReg(&inst->DstReg); _mesa_printf(", "); n = _mesa_num_inst_src_regs(inst->Opcode); for (i = 0; i < n; i++) { PrintSrcReg(&inst->SrcReg[i]); if (i + 1 < n) _mesa_printf(", "); } _mesa_printf(";\n"); break; case OPCODE_ARL: _mesa_printf("ARL A0.x, "); PrintSrcReg(&inst->SrcReg[0]); _mesa_printf(";\n"); break; case OPCODE_PRINT: _mesa_printf("PRINT '%s'", inst->Data); if (inst->SrcReg[0].File != PROGRAM_UNDEFINED) { _mesa_printf(", "); PrintSrcReg(&inst->SrcReg[0]); _mesa_printf(";\n"); } else { _mesa_printf("\n"); } break; case OPCODE_END: _mesa_printf("END\n"); break; default: _mesa_printf("BAD INSTRUCTION\n"); } }