aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/tgsi
diff options
context:
space:
mode:
authorBryan Cain <[email protected]>2011-06-13 17:52:54 -0500
committerBryan Cain <[email protected]>2011-08-01 17:59:08 -0500
commitf95169deb40f8245f4b3b07b17b222746da29bdd (patch)
tree2ca146f3ef587ffe5d96c901a440f0b55a9ad479 /src/gallium/auxiliary/tgsi
parent6d89abadbcd68bbe9e08f041412549f8dc1fc73c (diff)
tgsi: add support for TGSI_OPCODE_MOD in tgsi_exec
Diffstat (limited to 'src/gallium/auxiliary/tgsi')
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_exec.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index 9cf74a838fe..072772eaa7e 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -2978,6 +2978,17 @@ micro_xor(union tgsi_exec_channel *dst,
}
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: