summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2008-12-09 13:15:05 -0800
committerXiang, Haihao <haihao.xiang@intel.com>2008-12-16 14:39:25 +0800
commitfe328107998e65d979aa3d14415b4d88114207cf (patch)
tree779892e616f6c8a7e71b9f93673752c977c60e91 /src
parentea371c5779433db3b749121e069c930794f756ec (diff)
tnl: Fix zeroing of the 3ub part of a 3ub+1ub attrib pair in SSE.
Bug #16520. (cherry picked from commit 3b9bc821e1dfe39905585746166183264c335416)
Diffstat (limited to 'src')
-rw-r--r--src/mesa/tnl/t_vertex_sse.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mesa/tnl/t_vertex_sse.c b/src/mesa/tnl/t_vertex_sse.c
index 07adc1ed79..7a255d680a 100644
--- a/src/mesa/tnl/t_vertex_sse.c
+++ b/src/mesa/tnl/t_vertex_sse.c
@@ -354,6 +354,7 @@ static GLboolean build_vertex_emit( struct x86_program *p )
struct x86_reg temp = x86_make_reg(file_XMM, 0);
struct x86_reg vp0 = x86_make_reg(file_XMM, 1);
struct x86_reg vp1 = x86_make_reg(file_XMM, 2);
+ struct x86_reg temp2 = x86_make_reg(file_XMM, 3);
GLubyte *fixup, *label;
/* Push a few regs?
@@ -526,7 +527,8 @@ static GLboolean build_vertex_emit( struct x86_program *p )
sse_shufps(&p->func, temp, temp, SHUF(W,X,Y,Z));
get_src_ptr(p, srcECX, vtxESI, &a[1]);
- emit_load(p, temp, 1, x86_deref(srcECX), a[1].inputsize);
+ emit_load(p, temp2, 1, x86_deref(srcECX), a[1].inputsize);
+ sse_movss(&p->func, temp, temp2);
update_src_ptr(p, srcECX, vtxESI, &a[1]);
/* Rearrange and possibly do BGR conversion: