Can be implemented with CMP src2, src1, src0tags/mesa_7_6_rc1
| @@ -187,11 +187,7 @@ TGSI Instruction Specification | |||
| 1.2.6 CND0 - Condition Zero | |||
| dst.x = (src2.x >= 0.0) ? src0.x : src1.x | |||
| dst.y = (src2.y >= 0.0) ? src0.y : src1.y | |||
| dst.z = (src2.z >= 0.0) ? src0.z : src1.z | |||
| dst.w = (src2.w >= 0.0) ? src0.w : src1.w | |||
| Removed. Use (CMP src2, src1, src0) instead. | |||
| 1.2.7 DOT2ADD - 2-component Dot Product And Add | |||
| @@ -2329,16 +2329,6 @@ exec_instruction( | |||
| } | |||
| break; | |||
| case TGSI_OPCODE_CND0: | |||
| FOR_EACH_ENABLED_CHANNEL(*inst, chan_index) { | |||
| FETCH(&r[0], 0, chan_index); | |||
| FETCH(&r[1], 1, chan_index); | |||
| FETCH(&r[2], 2, chan_index); | |||
| micro_le(&r[0], &mach->Temps[TEMP_0_I].xyzw[TEMP_0_C], &r[2], &r[0], &r[1]); | |||
| STORE(&r[0], 0, chan_index); | |||
| } | |||
| break; | |||
| case TGSI_OPCODE_DP2A: | |||
| FETCH( &r[0], 0, CHAN_X ); | |||
| FETCH( &r[1], 1, CHAN_X ); | |||
| @@ -51,7 +51,7 @@ static const struct tgsi_opcode_info opcode_info[TGSI_OPCODE_LAST] = | |||
| { 1, 2, 0, 0, "SUB", TGSI_OPCODE_SUB }, | |||
| { 1, 3, 0, 0, "LRP", TGSI_OPCODE_LRP }, | |||
| { 1, 3, 0, 0, "CND", TGSI_OPCODE_CND }, | |||
| { 1, 3, 0, 0, "CND0", TGSI_OPCODE_CND0 }, | |||
| { 0, 0, 0, 0, "", 20 }, /* removed */ | |||
| { 1, 3, 0, 0, "DP2A", TGSI_OPCODE_DP2A }, | |||
| { 0, 0, 0, 0, "", 22 }, /* removed */ | |||
| { 0, 0, 0, 0, "", 23 }, /* removed */ | |||
| @@ -60,7 +60,6 @@ OP13(MAD) | |||
| OP12(SUB) | |||
| OP13(LRP) | |||
| OP13(CND) | |||
| OP13(CND0) | |||
| OP13(DP2A) | |||
| OP11(FRC) | |||
| OP13(CLAMP) | |||
| @@ -2089,10 +2089,6 @@ emit_instruction( | |||
| return 0; | |||
| break; | |||
| case TGSI_OPCODE_CND0: | |||
| return 0; | |||
| break; | |||
| case TGSI_OPCODE_DP2A: | |||
| FETCH( func, *inst, 0, 0, CHAN_X ); /* xmm0 = src[0].x */ | |||
| FETCH( func, *inst, 1, 1, CHAN_X ); /* xmm1 = src[1].x */ | |||
| @@ -1150,10 +1150,6 @@ exec_instruction( | |||
| ASSERT (0); | |||
| break; | |||
| case TGSI_OPCODE_CND0: | |||
| ASSERT (0); | |||
| break; | |||
| case TGSI_OPCODE_DP2A: | |||
| ASSERT (0); | |||
| break; | |||
| @@ -687,10 +687,6 @@ emit_instruction( | |||
| return 0; | |||
| break; | |||
| case TGSI_OPCODE_CND0: | |||
| return 0; | |||
| break; | |||
| case TGSI_OPCODE_DP2A: | |||
| tmp0 = emit_fetch( bld, inst, 0, CHAN_X ); /* xmm0 = src[0].x */ | |||
| tmp1 = emit_fetch( bld, inst, 1, CHAN_X ); /* xmm1 = src[1].x */ | |||
| @@ -53,7 +53,6 @@ static unsigned translate_opcode(unsigned opcode) | |||
| case TGSI_OPCODE_SUB: return OPCODE_SUB; | |||
| case TGSI_OPCODE_LRP: return OPCODE_LRP; | |||
| /* case TGSI_OPCODE_CND: return OPCODE_CND; */ | |||
| /* case TGSI_OPCODE_CND0: return OPCODE_CND0; */ | |||
| case TGSI_OPCODE_DP2A: return OPCODE_DP2A; | |||
| /* gap */ | |||
| case TGSI_OPCODE_FRC: return OPCODE_FRC; | |||
| @@ -184,7 +184,7 @@ union tgsi_immediate_data | |||
| #define TGSI_OPCODE_SUB 17 | |||
| #define TGSI_OPCODE_LRP 18 | |||
| #define TGSI_OPCODE_CND 19 | |||
| #define TGSI_OPCODE_CND0 20 | |||
| /* gap */ | |||
| #define TGSI_OPCODE_DP2A 21 | |||
| /* gap */ | |||
| #define TGSI_OPCODE_FRC 24 | |||