diff options
Diffstat (limited to 'src/gallium/auxiliary/translate/translate_sse.c')
-rw-r--r-- | src/gallium/auxiliary/translate/translate_sse.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/auxiliary/translate/translate_sse.c b/src/gallium/auxiliary/translate/translate_sse.c index a78ea916a8e..a72454a808a 100644 --- a/src/gallium/auxiliary/translate/translate_sse.c +++ b/src/gallium/auxiliary/translate/translate_sse.c @@ -1121,7 +1121,9 @@ static boolean init_inputs( struct translate_sse *p, x86_cmovcc(p->func, tmp_EAX, buf_max_index, cc_AE); } - x86_imul(p->func, tmp_EAX, buf_stride); + x86_mov(p->func, p->tmp2_EDX, buf_stride); + x64_rexw(p->func); + x86_imul(p->func, tmp_EAX, p->tmp2_EDX); x64_rexw(p->func); x86_add(p->func, tmp_EAX, buf_base_ptr); @@ -1207,7 +1209,9 @@ static struct x86_reg get_buffer_ptr( struct translate_sse *p, x86_cmp(p->func, ptr, buf_max_index); x86_cmovcc(p->func, ptr, buf_max_index, cc_AE); - x86_imul(p->func, ptr, buf_stride); + x86_mov(p->func, p->tmp2_EDX, buf_stride); + x64_rexw(p->func); + x86_imul(p->func, ptr, p->tmp2_EDX); x64_rexw(p->func); x86_add(p->func, ptr, buf_base_ptr); return ptr; |