tgsi: add support for TGSI_OPCODE_MOD in tgsi_exec
authorBryan Cain <bryancain3@gmail.com>
Mon, 13 Jun 2011 22:52:54 +0000 (17:52 -0500)
committerBryan Cain <bryancain3@gmail.com>
Mon, 1 Aug 2011 22:59:08 +0000 (17:59 -0500)
src/gallium/auxiliary/tgsi/tgsi_exec.c

index 9cf74a838fecad8aa8b7f278ef65449869d457fe..072772eaa7e0836458808661fc95e8131dfc735a 100644 (file)
@@ -2977,6 +2977,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)
@@ -3680,7 +3691,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: