r300/compiler: print opcode names instead of numbers
[mesa.git] / src / mesa / drivers / dri / r300 / compiler / r300_fragprog_emit.c
index 375838d98e76a4c8a969babfe7525e5d978fc17f..b27a683c397955d6cf0ed556506b8878a3260b6a 100644 (file)
@@ -95,7 +95,7 @@ static unsigned int translate_rgb_opcode(struct r300_fragment_program_compiler *
        case RC_OPCODE_DP4: return R300_ALU_OUTC_DP4;
        case RC_OPCODE_FRC: return R300_ALU_OUTC_FRC;
        default:
-               error("translate_rgb_opcode(%i): Unknown opcode", opcode);
+               error("translate_rgb_opcode: Unknown opcode %s", rc_get_opcode_info(opcode)->Name);
                /* fall through */
        case RC_OPCODE_NOP:
                /* fall through */
@@ -116,7 +116,7 @@ static unsigned int translate_alpha_opcode(struct r300_fragment_program_compiler
        case RC_OPCODE_FRC: return R300_ALU_OUTA_FRC;
        case RC_OPCODE_LG2: return R300_ALU_OUTA_LG2;
        default:
-               error("translate_rgb_opcode(%i): Unknown opcode", opcode);
+               error("translate_rgb_opcode: Unknown opcode %s", rc_get_opcode_info(opcode)->Name);
                /* fall through */
        case RC_OPCODE_NOP:
                /* fall through */
@@ -176,7 +176,9 @@ static int emit_alu(struct r300_emit_state * emit, struct rc_pair_instruction* i
                        (inst->RGB.WriteMask << R300_ALU_DSTC_REG_MASK_SHIFT);
        }
        if (inst->RGB.OutputWriteMask) {
-               code->alu.inst[ip].rgb_addr |= (inst->RGB.OutputWriteMask << R300_ALU_DSTC_OUTPUT_MASK_SHIFT);
+               code->alu.inst[ip].rgb_addr |=
+            (inst->RGB.OutputWriteMask << R300_ALU_DSTC_OUTPUT_MASK_SHIFT) |
+            R300_RGB_TARGET(inst->RGB.Target);
                emit->node_flags |= R300_RGBA_OUT;
        }
 
@@ -187,7 +189,8 @@ static int emit_alu(struct r300_emit_state * emit, struct rc_pair_instruction* i
                        R300_ALU_DSTA_REG;
        }
        if (inst->Alpha.OutputWriteMask) {
-               code->alu.inst[ip].alpha_addr |= R300_ALU_DSTA_OUTPUT;
+               code->alu.inst[ip].alpha_addr |= R300_ALU_DSTA_OUTPUT |
+            R300_ALPHA_TARGET(inst->Alpha.Target);
                emit->node_flags |= R300_RGBA_OUT;
        }
        if (inst->Alpha.DepthWriteMask) {
@@ -299,7 +302,7 @@ static int emit_tex(struct r300_emit_state * emit, struct rc_instruction * inst)
        case RC_OPCODE_TXB: opcode = R300_TEX_OP_TXB; break;
        case RC_OPCODE_TXP: opcode = R300_TEX_OP_TXP; break;
        default:
-               error("Unknown texture opcode %i", inst->U.I.Opcode);
+               error("Unknown texture opcode %s", rc_get_opcode_info(inst->U.I.Opcode)->Name);
                return 0;
        }
 
@@ -350,7 +353,7 @@ void r300BuildFragmentProgramHwCode(struct r300_fragment_program_compiler *compi
                }
        }
 
-       if (code->pixsize >= R300_PFS_NUM_TEMP_REGS)
+       if (code->pixsize >= compiler->Base.max_temp_regs)
                rc_error(&compiler->Base, "Too many hardware temporaries used.\n");
 
        if (compiler->Base.Error)