[PATCH 07/13] nv50: handle CEIL and TRUNC opcodes
Christoph Bumiller
e0425955 at student.tuwien.ac.at
Thu Sep 10 13:42:57 PDT 2009
---
src/gallium/drivers/nv50/nv50_program.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/src/gallium/drivers/nv50/nv50_program.c b/src/gallium/drivers/nv50/nv50_program.c
index 381e396..16df4d8 100644
--- a/src/gallium/drivers/nv50/nv50_program.c
+++ b/src/gallium/drivers/nv50/nv50_program.c
@@ -1499,6 +1499,14 @@ nv50_program_tx_insn(struct nv50_pc *pc,
emit_add(pc, dst[c], src[0][c], src[1][c]);
}
break;
+ case TGSI_OPCODE_CEIL:
+ for (c = 0; c < 4; c++) {
+ if (!(mask & (1 << c)))
+ continue;
+ emit_cvt(pc, dst[c], src[0][c], -1,
+ CVTOP_CEIL, CVT_F32_F32);
+ }
+ break;
case TGSI_OPCODE_COS:
if (mask & 8) {
emit_precossin(pc, temp, src[0][3]);
@@ -1678,6 +1686,14 @@ nv50_program_tx_insn(struct nv50_pc *pc,
emit_tex(pc, dst, mask, src[0], unit,
inst->InstructionExtTexture.Texture, TRUE);
break;
+ case TGSI_OPCODE_TRUNC:
+ for (c = 0; c < 4; c++) {
+ if (!(mask & (1 << c)))
+ continue;
+ emit_cvt(pc, dst[c], src[0][c], -1,
+ CVTOP_TRUNC, CVT_F32_F32);
+ }
+ break;
case TGSI_OPCODE_XPD:
temp = temp_temp(pc);
if (mask & (1 << 0)) {
--
1.6.3.3
--------------010208090904000401070505
Content-Type: text/plain;
name="0008-nv50-cleanup-nv50_reg-initialization-a-little.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename*0="0008-nv50-cleanup-nv50_reg-initialization-a-little.patch"
More information about the Nouveau
mailing list