Merge branch 'glsl-to-tgsi'
[mesa.git] / src / gallium / auxiliary / tgsi / tgsi_exec.c
index 712e8aca794c4252804f8bb76f799bde68b3e60f..587483c049b893f4f49c064287131c8daf4d0e2a 100644 (file)
@@ -2988,6 +2988,17 @@ micro_xor(union tgsi_exec_channel *dst,
    dst->u[3] = src0->u[3] ^ src1->u[3];
 }
 
+static void
+micro_mod(union tgsi_exec_channel *dst,
+          const union tgsi_exec_channel *src0,
+          const union tgsi_exec_channel *src1)
+{
+   dst->i[0] = src0->i[0] % src1->i[0];
+   dst->i[1] = src0->i[1] % src1->i[1];
+   dst->i[2] = src0->i[2] % src1->i[2];
+   dst->i[3] = src0->i[3] % src1->i[3];
+}
+
 static void
 micro_f2i(union tgsi_exec_channel *dst,
           const union tgsi_exec_channel *src)
@@ -3691,7 +3702,7 @@ exec_instruction(
       break;
 
    case TGSI_OPCODE_MOD:
-      assert (0);
+      exec_vector_binary(mach, inst, micro_mod, TGSI_EXEC_DATA_INT, TGSI_EXEC_DATA_INT);
       break;
 
    case TGSI_OPCODE_XOR: