summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i915
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/dri/i915')
-rw-r--r--src/mesa/drivers/dri/i915/i915_fragprog.c148
1 files changed, 0 insertions, 148 deletions
diff --git a/src/mesa/drivers/dri/i915/i915_fragprog.c b/src/mesa/drivers/dri/i915/i915_fragprog.c
index 691bae359fb..1944b3db0a2 100644
--- a/src/mesa/drivers/dri/i915/i915_fragprog.c
+++ b/src/mesa/drivers/dri/i915/i915_fragprog.c
@@ -789,68 +789,6 @@ upload_program(struct i915_fragment_program *p)
}
break;
- case OPCODE_SEQ:
- tmp = i915_get_utemp(p);
- flags = get_result_flags(inst);
- dst = get_result_vector(p, inst);
-
- /* If both operands are uniforms or constants, we get 5 instructions
- * like:
- *
- * U[1] = MOV CONST[1]
- * U[0].xyz = SGE CONST[0].xxxx, U[1]
- * U[1] = MOV CONST[1].-x-y-z-w
- * R[0].xyz = SGE CONST[0].-x-x-x-x, U[1]
- * R[0].xyz = MUL R[0], U[0]
- *
- * This code is stupid. Instead of having the individual calls to
- * i915_emit_arith generate the moves to utemps, do it in the caller.
- * This results in code like:
- *
- * U[1] = MOV CONST[1]
- * U[0].xyz = SGE CONST[0].xxxx, U[1]
- * R[0].xyz = SGE CONST[0].-x-x-x-x, U[1].-x-y-z-w
- * R[0].xyz = MUL R[0], U[0]
- */
- src0 = src_vector(p, &inst->SrcReg[0], program);
- src1 = src_vector(p, &inst->SrcReg[1], program);
-
- if (GET_UREG_TYPE(src0) == REG_TYPE_CONST
- && GET_UREG_TYPE(src1) == REG_TYPE_CONST) {
- unsigned tmp = i915_get_utemp(p);
-
- i915_emit_arith(p, A0_MOV, tmp, A0_DEST_CHANNEL_ALL, 0,
- src1, 0, 0);
-
- src1 = tmp;
- }
-
- /* tmp = src1 >= src2 */
- i915_emit_arith(p,
- A0_SGE,
- tmp,
- flags, 0,
- src0,
- src1,
- 0);
- /* dst = src1 <= src2 */
- i915_emit_arith(p,
- A0_SGE,
- dst,
- flags, 0,
- negate(src0, 1, 1, 1, 1),
- negate(src1, 1, 1, 1, 1),
- 0);
- /* dst = tmp && dst */
- i915_emit_arith(p,
- A0_MUL,
- dst,
- flags, 0,
- dst,
- tmp,
- 0);
- break;
-
case OPCODE_SIN:
src0 = src_vector(p, &inst->SrcReg[0], program);
tmp = i915_get_utemp(p);
@@ -939,96 +877,10 @@ upload_program(struct i915_fragment_program *p)
EMIT_2ARG_ARITH(A0_SGE);
break;
- case OPCODE_SGT:
- i915_emit_arith(p,
- A0_SLT,
- get_result_vector( p, inst ),
- get_result_flags( inst ), 0,
- negate(src_vector( p, &inst->SrcReg[0], program),
- 1, 1, 1, 1),
- negate(src_vector( p, &inst->SrcReg[1], program),
- 1, 1, 1, 1),
- 0);
- break;
-
- case OPCODE_SLE:
- i915_emit_arith(p,
- A0_SGE,
- get_result_vector( p, inst ),
- get_result_flags( inst ), 0,
- negate(src_vector( p, &inst->SrcReg[0], program),
- 1, 1, 1, 1),
- negate(src_vector( p, &inst->SrcReg[1], program),
- 1, 1, 1, 1),
- 0);
- break;
-
case OPCODE_SLT:
EMIT_2ARG_ARITH(A0_SLT);
break;
- case OPCODE_SNE:
- tmp = i915_get_utemp(p);
- flags = get_result_flags(inst);
- dst = get_result_vector(p, inst);
-
- /* If both operands are uniforms or constants, we get 5 instructions
- * like:
- *
- * U[1] = MOV CONST[1]
- * U[0].xyz = SLT CONST[0].xxxx, U[1]
- * U[1] = MOV CONST[1].-x-y-z-w
- * R[0].xyz = SLT CONST[0].-x-x-x-x, U[1]
- * R[0].xyz = MUL R[0], U[0]
- *
- * This code is stupid. Instead of having the individual calls to
- * i915_emit_arith generate the moves to utemps, do it in the caller.
- * This results in code like:
- *
- * U[1] = MOV CONST[1]
- * U[0].xyz = SLT CONST[0].xxxx, U[1]
- * R[0].xyz = SLT CONST[0].-x-x-x-x, U[1].-x-y-z-w
- * R[0].xyz = MUL R[0], U[0]
- */
- src0 = src_vector(p, &inst->SrcReg[0], program);
- src1 = src_vector(p, &inst->SrcReg[1], program);
-
- if (GET_UREG_TYPE(src0) == REG_TYPE_CONST
- && GET_UREG_TYPE(src1) == REG_TYPE_CONST) {
- unsigned tmp = i915_get_utemp(p);
-
- i915_emit_arith(p, A0_MOV, tmp, A0_DEST_CHANNEL_ALL, 0,
- src1, 0, 0);
-
- src1 = tmp;
- }
-
- /* tmp = src1 < src2 */
- i915_emit_arith(p,
- A0_SLT,
- tmp,
- flags, 0,
- src0,
- src1,
- 0);
- /* dst = src1 > src2 */
- i915_emit_arith(p,
- A0_SLT,
- dst,
- flags, 0,
- negate(src0, 1, 1, 1, 1),
- negate(src1, 1, 1, 1, 1),
- 0);
- /* dst = tmp || dst */
- i915_emit_arith(p,
- A0_ADD,
- dst,
- flags | A0_DEST_SATURATE, 0,
- dst,
- tmp,
- 0);
- break;
-
case OPCODE_SSG:
dst = get_result_vector(p, inst);
flags = get_result_flags(inst);