Home | History | Annotate | Download | only in translate

Lines Matching refs:func

97    struct x86_function *func;
160 sse_movaps(p->func, reg,
178 x86_movzx8(p->func, tmp, src);
179 sse2_movd(p->func, data, tmp);
182 x86_movzx16(p->func, tmp, src);
183 sse2_movd(p->func, data, tmp);
186 x86_movzx8(p->func, tmp, x86_make_disp(src, 2));
187 x86_shl_imm(p->func, tmp, 16);
188 x86_mov16(p->func, tmp, src);
189 sse2_movd(p->func, data, tmp);
192 sse2_movd(p->func, data, src);
195 sse2_movd(p->func, data, src);
196 x86_movzx16(p->func, tmp, x86_make_disp(src, 4));
197 sse2_movd(p->func, tmpXMM, tmp);
198 sse2_punpckldq(p->func, data, tmpXMM);
201 sse2_movq(p->func, data, src);
204 sse2_movq(p->func, data, src);
205 sse2_movd(p->func, tmpXMM, x86_make_disp(src, 8));
206 sse2_punpcklqdq(p->func, data, tmpXMM);
209 sse2_movdqu(p->func, data, src);
239 sse_movss(p->func, data, arg0);
241 sse_orps(p->func, data, get_const(p, CONST_IDENTITY) );
248 sse_shufps(p->func, data, get_const(p, CONST_IDENTITY), SHUF(X, Y, Z, W) );
250 sse_movlhps(p->func, data, get_const(p, CONST_IDENTITY) );
251 sse_movlps(p->func, data, arg0);
261 sse_movss(p->func, data, x86_make_disp(arg0, 8));
263 sse_shufps(p->func, data, get_const(p, CONST_IDENTITY), SHUF(X,Y,Z,W) );
264 sse_shufps(p->func, data, data, SHUF(Y,Z,X,W) );
265 sse_movlps(p->func, data, arg0);
268 sse_movups(p->func, data, arg0);
286 sse2_movsd(p->func, data, arg0);
288 sse2_cvtpd2ps(p->func, data, data);
290 sse2_cvtsd2ss(p->func, data, data);
292 sse_shufps(p->func, data, get_const(p, CONST_IDENTITY), SHUF(X, Y, Z, W) );
295 sse2_movupd(p->func, data, arg0);
296 sse2_cvtpd2ps(p->func, data, data);
298 sse_shufps(p->func, data, get_const(p, CONST_IDENTITY), SHUF(X, Y, Z, W) );
300 sse_movlhps(p->func, data, get_const(p, CONST_IDENTITY) );
303 sse2_movupd(p->func, data, arg0);
304 sse2_cvtpd2ps(p->func, data, data);
305 sse2_movsd(p->func, tmpXMM, x86_make_disp(arg0, 16));
307 sse2_cvtpd2ps(p->func, tmpXMM, tmpXMM);
309 sse2_cvtsd2ss(p->func, tmpXMM, tmpXMM);
310 sse_movlhps(p->func, data, tmpXMM);
312 sse_orps(p->func, data, get_const(p, CONST_IDENTITY) );
315 sse2_movupd(p->func, data, arg0);
316 sse2_cvtpd2ps(p->func, data, data);
317 sse2_movupd(p->func, tmpXMM, x86_make_disp(arg0, 16));
318 sse2_cvtpd2ps(p->func, tmpXMM, tmpXMM);
319 sse_movlhps(p->func, data, tmpXMM);
326 if(x86_target(p->func) != X86_32)
327 x64_mov64(p->func, dst_gpr, src_gpr);
331 if(x86_target_caps(p->func) & X86_SSE2)
332 sse2_movq(p->func, dst_xmm, src_xmm);
334 sse_movlps(p->func, dst_xmm, src_xmm);
350 if(x86_target_caps(p->func) & X86_SSE2)
351 sse2_movdqu(p->func, dst, src);
353 sse_movups(p->func, dst, src);
372 x86_mov8(p->func, dataGPR, src);
373 x86_mov8(p->func, dst, dataGPR);
376 x86_mov16(p->func, dataGPR, src);
377 x86_mov16(p->func, dst, dataGPR);
380 x86_mov16(p->func, dataGPR, src);
381 x86_mov8(p->func, dataGPR2, x86_make_disp(src, 2));
382 x86_mov16(p->func, dst, dataGPR);
383 x86_mov8(p->func, x86_make_disp(dst, 2), dataGPR2);
386 x86_mov(p->func, dataGPR, src);
387 x86_mov(p->func, dst, dataGPR);
390 x86_mov(p->func, dataGPR, src);
391 x86_mov16(p->func, dataGPR2, x86_make_disp(src, 4));
392 x86_mov(p->func, dst, dataGPR);
393 x86_mov16(p->func, x86_make_disp(dst, 4), dataGPR2);
397 else if(!(x86_target_caps(p->func) & X86_SSE))
403 x86_mov(p->func, dataGPR, x86_make_disp(src, i));
404 x86_mov(p->func, x86_make_disp(dst, i), dataGPR);
417 x86_mov(p->func, dataGPR, x86_make_disp(src, 8));
419 x86_mov(p->func, x86_make_disp(dst, 8), dataGPR);
484 if((x86_target_caps(p->func) & X86_SSE) && (0
511 if(!(x86_target_caps(p->func) & X86_SSE2))
520 sse2_punpcklbw(p->func, dataXMM, get_const(p, CONST_IDENTITY));
521 sse2_punpcklbw(p->func, dataXMM, get_const(p, CONST_IDENTITY));
524 sse2_punpcklwd(p->func, dataXMM, get_const(p, CONST_IDENTITY));
527 sse2_psrld_imm(p->func, dataXMM, 1);
532 sse2_cvtdq2ps(p->func
555 sse_mulps(p->func, dataXMM, factor);
558 sse_addps(p->func, dataXMM, dataXMM); /* compensate for the bit we threw away to fit u32 into s32 */
561 if(!(x86_target_caps(p->func) & X86_SSE2))
569 sse2_punpcklbw(p->func, dataXMM, dataXMM);
570 sse2_punpcklbw(p->func, dataXMM, dataXMM);
571 sse2_psrad_imm(p->func, dataXMM, 24);
574 sse2_punpcklwd(p->func, dataXMM, dataXMM);
575 sse2_psrad_imm(p->func, dataXMM, 16);
582 sse2_cvtdq2ps(p->func, dataXMM, dataXMM);
605 sse_mulps(p->func, dataXMM, factor);
624 if(!(x86_target_caps(p->func) & X86_SSE2))
637 sse_shufps(p->func, dataXMM, dataXMM, SHUF(swizzle[0], swizzle[1], swizzle[2], swizzle[3]) );
646 sse_movups(p->func, dst, dataXMM);
652 sse_movlps(p->func, dst, dataXMM);
656 sse_movss(p->func, dst, dataXMM);
658 x86_mov_imm(p->func, dst, imms[swizzle[0] - UTIL_FORMAT_SWIZZLE_0]);
664 sse_shufps(p->func, dataXMM, dataXMM, SHUF(1, 1, 2, 3));
665 sse_movss(p->func, x86_make_disp(dst, 4), dataXMM);
668 x86_mov_imm(p->func, x86_make_disp(dst, 4), imms[swizzle[1] - UTIL_FORMAT_SWIZZLE_0]);
677 sse_movhps(p->func, x86_make_disp(dst, 8), dataXMM);
682 sse_shufps(p->func, dataXMM, dataXMM, SHUF(2, 2, 2, 3));
683 sse_movss(p->func, x86_make_disp(dst, 8), dataXMM);
686 x86_mov_imm(p->func, x86_make_disp(dst, 8), imms[swizzle[2] - UTIL_FORMAT_SWIZZLE_0]);
692 sse_shufps(p->func, dataXMM, dataXMM, SHUF(3, 3, 3, 3));
693 sse_movss(p->func, x86_make_disp(dst, 12), dataXMM);
696 x86_mov_imm(p->func, x86_make_disp(dst, 12), imms[swizzle[3] - UTIL_FORMAT_SWIZZLE_0]);
703 else if((x86_target_caps(p->func) & X86_SSE2) && input_desc->channel[0].size == 8 && output_desc->channel[0].size == 16
739 sse2_punpcklbw(p->func, dataXMM, dataXMM);
741 sse2_psrlw_imm(p->func, dataXMM, 1);
744 sse2_punpcklbw(p->func, dataXMM, get_const(p, CONST_IDENTITY));
749 sse2_movq(p->func, tmpXMM, get_const(p, CONST_IDENTITY));
750 sse2_punpcklbw(p->func, tmpXMM, dataXMM);
751 sse2_psllw_imm(p->func, dataXMM, 9);
752 sse2_psrlw_imm(p->func, dataXMM, 8);
753 sse2_por(p->func, tmpXMM, dataXMM);
754 sse2_psrlw_imm(p->func, dataXMM, 7);
755 sse2_por(p->func, tmpXMM, dataXMM);
764 sse2_punpcklbw(p->func, dataXMM, dataXMM);
765 sse2_psraw_imm(p->func, dataXMM, 8);
776 sse2_pshuflw(p->func, dataXMM, dataXMM, (swizzle[0] & 3) | ((swizzle[1] & 3) << 2) | ((swizzle[2] & 3) << 4) | ((swizzle[3] & 3) << 6));
785 sse2_movq(p->func, dst, dataXMM);
791 sse2_movd(p->func, dst, dataXMM);
794 sse2_movd(p->func, tmp, dataXMM);
795 x86_mov16(p->func, dst, tmp);
797 x86_mov16_imm(p->func, x86_make_disp(dst, 2), imms[swizzle[1] - UTIL_FORMAT_SWIZZLE_0]);
803 x86_mov_imm(p->func, dst, (imms[swizzle[1] - UTIL_FORMAT_SWIZZLE_0] << 16) | imms[swizzle[0] - UTIL_FORMAT_SWIZZLE_0]);
806 x86_mov16_imm(p->func, dst, imms[swizzle[0] - UTIL_FORMAT_SWIZZLE_0]);
809 sse2_movd(p->func, tmp, dataXMM);
810 x86_shr_imm(p->func, tmp, 16);
811 x86_mov16(p->func, x86_make_disp(dst, 2), tmp);
822 sse2_psrlq_imm(p->func, dataXMM, 32);
823 sse2_movd(p->func, x86_make_disp(dst, 4), dataXMM);
827 sse2_psrlq_imm(p->func, dataXMM, 32);
828 sse2_movd(p->func, tmp, dataXMM);
829 x86_mov16(p->func, x86_make_disp(dst, 4), tmp);
832 x86_mov16_imm(p->func, x86_make_disp(dst, 6), imms[swizzle[3] - UTIL_FORMAT_SWIZZLE_0]);
839 x86_mov_imm(p->func, x86_make_disp(dst, 4), (imms[swizzle[3] - UTIL_FORMAT_SWIZZLE_0] << 16) | imms[swizzle[2] - UTIL_FORMAT_SWIZZLE_0]);
842 x86_mov16_imm(p->func, x86_make_disp(dst, 4), imms[swizzle[2] - UTIL_FORMAT_SWIZZLE_0]);
846 sse2_psrlq_imm(p->func, dataXMM, 48);
847 sse2_movd(p->func, tmp, dataXMM);
848 x86_mov16(p->func, x86_make_disp(dst, 6), tmp);
867 x86_mov(p->func, tmp, src);
868 x86_bswap(p->func, tmp);
869 x86_mov(p->func, dst, tmp);
895 x86_mov8_imm(p->func, x86_make_disp(dst, i * 1), v);
899 x86_mov8(p->func, tmp, x86_make_disp(src, swizzle[i] * 1));
900 x86_mov8(p->func, x86_make_disp(dst, i * 1), tmp);
924 x86_mov16_imm(p->func, x86_make_disp(dst, i * 2), v);
927 x86_mov16_imm(p->func, x86_make_disp(dst, i * 2), 0);
930 x86_mov16(p->func, tmp, x86_make_disp(src, swizzle[i] * 2));
931 x86_mov16(p->func, x86_make_disp(dst, i * 2), tmp);
955 x86_mov_imm(p->func, x86_make_disp(dst, i * 4), v);
959 x86_mov(p->func, tmp, x86_make_disp(src, swizzle[i] * 4));
960 x86_mov(p->func, x86_make_disp(dst, i * 4), tmp);
988 x86_mov_imm(p->func, x86_make_disp(dst, i * 8), l);
989 x86_mov_imm(p->func, x86_make_disp(dst, i * 8 + 4), h);
993 if(x86_target_caps(p->func) & X86_SSE)
1001 x86_mov(p->func, tmp, x86_make_disp(src, swizzle[i] * 8));
1002 x86_mov(p->func, x86_make_disp(dst, i * 8), tmp);
1003 x86_mov(p->func, tmp, x86_make_disp(src, swizzle[i] * 8 + 4));
1004 x86_mov(p->func, x86_make_disp(dst, i * 8 + 4), tmp);
1015 else if((x86_target_caps(p->func) & X86_SSE2) &&
1024 sse_movups(p->func, dataXMM, src);
1027 sse_shufps(p->func, dataXMM, dataXMM, SHUF(2,1,0,3));
1030 sse_mulps(p->func, dataXMM, get_const(p, CONST_255));
1033 sse2_cvtps2dq(p->func, dataXMM, dataXMM);
1034 sse2_packssdw(p->func, dataXMM, dataXMM);
1035 sse2_packuswb(p->func, dataXMM, dataXMM);
1036 sse2_movd(p->func, dst, dataXMM);
1087 x86_mov(p->func, tmp_EAX, instance_id);
1097 x86_xor(p->func, tmp_EDX, tmp_EDX);
1098 x86_mov_reg_imm(p->func, tmp_ECX, variant->instance_divisor);
1099 x86_div(p->func, tmp_ECX); /* EAX = EDX:EAX / ECX */
1107 x86_mov(p->func, tmp_EAX, elt);
1111 x86_cmp(p->func, tmp_EAX, buf_max_index);
1112 x86_cmovcc(p->func, tmp_EAX, buf_max_index, cc_AE);
1115 x86_imul(p->func, tmp_EAX, buf_stride);
1116 x64_rexw(p->func);
1117 x86_add(p->func, tmp_EAX, buf_base_ptr);
1119 x86_cmp(p->func, p->count_EBP, p->tmp_EAX);
1126 x64_rexw(p->func);
1127 x86_mov(p->func, elt, tmp_EAX);
1131 x64_rexw(p->func);
1132 x86_mov(p->func, buf_ptr, tmp_EAX);
1159 x64_rexw(p->func);
1160 x86_mov(p->func, ptr, buf_ptr);
1186 x86_movzx8(p->func, ptr, elt);
1189 x86_movzx16(p->func, ptr, elt);
1192 x86_mov(p->func, ptr, elt);
1198 x86_cmp(p->func, ptr, buf_max_index);
1199 x86_cmovcc(p->func, ptr, buf_max_index, cc_AE);
1201 x86_imul(p->func, ptr, buf_stride);
1202 x64_rexw(p->func);
1203 x86_add(p->func, ptr, buf_base_ptr);
1218 x64_rexw(p->func);
1219 x86_add(p->func, p->idx_ESI, stride);
1220 sse_prefetchnta(p->func, x86_make_disp(p->idx_ESI, 192));
1236 x86_mov(p->func, p->tmp_EAX, buf_stride);
1237 x64_rexw(p->func);
1238 x86_add(p->func, p->tmp_EAX, buf_ptr);
1239 if (i == 0) sse_prefetchnta(p->func, x86_make_disp(p->tmp_EAX, 192));
1240 x64_rexw(p->func);
1241 x86_mov(p->func, buf_ptr, p->tmp_EAX);
1246 x64_rexw(p->func);
1247 x86_lea(p->func, p->idx_ESI, x86_make_disp(p->idx_ESI, index_size));
1271 struct x86_function *func,
1288 p->func = func;
1290 x86_init_func(p->func);
1292 if(x86_target(p->func) == X86_64_WIN64_ABI)
1295 sse2_movdqa(p->func, x86_make_disp(x86_make_reg(file_REG32, reg_SP), 8), x86_make_reg(file_XMM, 6));
1296 sse2_movdqa(p->func, x86_make_disp(x86_make_reg(file_REG32, reg_SP), 24), x86_make_reg(file_XMM, 7));
1299 x86_push(p->func, p->outbuf_EBX);
1300 x86_push(p->func, p->count_EBP);
1303 if(x86_target(p->func) != X86_64_STD_ABI)
1305 x86_push(p->func, p->machine_EDI);
1306 x86_push(p->func, p->idx_ESI);
1308 x86_mov(p->func, p->machine_EDI, x86_fn_arg(p->func, 1));
1309 x86_mov(p->func, p->idx_ESI, x86_fn_arg(p->func, 2));
1312 x86_mov(p->func, p->count_EBP, x86_fn_arg(p->func, 3));
1314 if(x86_target(p->func) != X86_32)
1315 x64_mov64(p->func, p->outbuf_EBX, x86_fn_arg(p->func, 5));
1317 x86_mov(p->func, p->outbuf_EBX, x86_fn_arg(p->func, 5));
1322 x86_mov(p->func,
1324 x86_fn_arg(p->func, 4));
1325 x86_mov(p->func,
1332 x86_xor(p->func, p->tmp_EAX, p->tmp_EAX);
1333 x86_cmp(p->func, p->count_EBP, p->tmp_EAX);
1334 fixup = x86_jcc_forward(p->func, cc_E);
1342 label = x86_get_label(p->func);
1367 x64_rexw(p->func);
1368 x86_lea(p->func,
1380 x86_dec(p->func, p->count_EBP);
1381 x86_jcc(p->func, cc_NZ, label);
1385 if (p->func->need_emms)
1386 mmx_emms(p->func);
1390 x86_fixup_fwd_jump(p->func, fixup);
1395 if(x86_target(p->func) != X86_64_STD_ABI)
1397 x86_pop(p->func, p->idx_ESI);
1398 x86_pop(p->func, p->machine_EDI);
1401 x86_pop(p->func, p->count_EBP);
1402 x86_pop(p->func, p->outbuf_EBX);
1404 if(x86_target(p->func) == X86_64_WIN64_ABI)
1406 sse2_movdqa(p->func, x86_make_reg(file_XMM, 6), x86_make_disp(x86_make_reg(file_REG32, reg_SP), 8));
1407 sse2_movdqa(p->func, x86_make_reg(file_XMM, 7), x86_make_disp(x86_make_reg(file_REG32, reg_SP), 24));
1409 x86_ret(p->func);