projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2382dc8
)
tgsi: Implement OPCODE_TRUNC.
author
michal
<michal@quad.(none)>
Wed, 5 Nov 2008 10:48:56 +0000
(11:48 +0100)
committer
Alan Hourihane
<alanh@tungstengraphics.com>
Wed, 5 Nov 2008 11:59:36 +0000
(11:59 +0000)
src/gallium/auxiliary/tgsi/tgsi_sse2.c
patch
|
blob
|
history
diff --git
a/src/gallium/auxiliary/tgsi/tgsi_sse2.c
b/src/gallium/auxiliary/tgsi/tgsi_sse2.c
index f79170b9d65964de0ea312373e470fe5891a413e..47e52c84247663c5cca91ce61318748d01c2c442 100644
(file)
--- a/
src/gallium/auxiliary/tgsi/tgsi_sse2.c
+++ b/
src/gallium/auxiliary/tgsi/tgsi_sse2.c
@@
-784,6
+784,17
@@
emit_f2it(
make_xmm( xmm ) );
}
+static void
+emit_i2f(
+ struct x86_function *func,
+ unsigned xmm )
+{
+ sse2_cvtdq2ps(
+ func,
+ make_xmm( xmm ),
+ make_xmm( xmm ) );
+}
+
static void PIPE_CDECL
flr4f(
float *store )
@@
-2104,7
+2115,12
@@
emit_instruction(
break;
case TGSI_OPCODE_TRUNC:
- return 0;
+ FOR_EACH_DST0_ENABLED_CHANNEL( *inst, chan_index ) {
+ FETCH( func, *inst, 0, 0, chan_index );
+ emit_f2it( func, 0 );
+ emit_i2f( func, 0 );
+ STORE( func, *inst, 0, 0, chan_index );
+ }
break;
case TGSI_OPCODE_SHL: