summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/translate
diff options
context:
space:
mode:
authorLuca Barbieri <luca@luca-barbieri.com>2010-08-24 04:16:42 +0200
committerLuca Barbieri <luca@luca-barbieri.com>2010-08-24 04:18:11 +0200
commit6b6b45403740144fa5ef2ce362a4c5b9fd0066b6 (patch)
treee5e4e239ebaa75db318bdb0765787502ca04644a /src/gallium/auxiliary/translate
parent8dd619ba6825e673a357336b69c96accaa96a7ef (diff)
translate_sse: clear state for each function emission
Fixes #29771.
Diffstat (limited to 'src/gallium/auxiliary/translate')
-rw-r--r--src/gallium/auxiliary/translate/translate_sse.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/gallium/auxiliary/translate/translate_sse.c b/src/gallium/auxiliary/translate/translate_sse.c
index 92dcd408c9..f8bf5b4669 100644
--- a/src/gallium/auxiliary/translate/translate_sse.c
+++ b/src/gallium/auxiliary/translate/translate_sse.c
@@ -1255,6 +1255,9 @@ static boolean build_vertex_emit( struct translate_sse *p,
int fixup, label;
unsigned j;
+ memset(p->reg_to_const, 0xff, sizeof(p->reg_to_const));
+ memset(p->const_to_reg, 0xff, sizeof(p->const_to_reg));
+
p->tmp_EAX = x86_make_reg(file_REG32, reg_AX);
p->idx_ESI = x86_make_reg(file_REG32, reg_SI);
p->outbuf_EBX = x86_make_reg(file_REG32, reg_BX);
@@ -1440,10 +1443,7 @@ struct translate *translate_sse2_create( const struct translate_key *key )
if (p == NULL)
goto fail;
memset(p, 0, sizeof(*p));
-
memcpy(p->consts, consts, sizeof(consts));
- memset(p->reg_to_const, 0xff, sizeof(p->reg_to_const));
- memset(p->const_to_reg, 0xff, sizeof(p->const_to_reg));
p->translate.key = *key;
p->translate.release = translate_sse_release;