Home | History | Annotate | Download | only in priv

Lines Matching refs:dst

288 static AMD64Instr* mk_iMOVsd_RR ( HReg src, HReg dst )
291 vassert(hregClass(dst) == HRcInt64);
292 return AMD64Instr_Alu64R(Aalu_MOV, AMD64RMI_Reg(src), dst);
297 static AMD64Instr* mk_vMOVsd_RR ( HReg src, HReg dst )
300 vassert(hregClass(dst) == HRcVec128);
301 return AMD64Instr_SseReRg(Asse_MOV, src, dst);
379 instruction which computes 'e' into 'dst'. If not possible, return
383 HReg dst,
394 dst
397 return AMD64Instr_Imm64(e->Iex.Const.con->Ico.U64, dst);
403 return mk_iMOVsd_RR(src, dst);
413 dst);
420 return AMD64Instr_MovxLQ(False, src, dst);
765 HReg dst = newVRegV(env);
766 addInstr(env, AMD64Instr_SseReRg(Asse_XOR, dst, dst));
767 return dst;
774 HReg dst = newVRegV(env);
775 addInstr(env, AMD64Instr_SseReRg(Asse_CMPEQ32, dst, dst));
776 return dst;
785 HReg dst = generate_ones_V128(env);
786 addInstr(env, AMD64Instr_SseReRg(Asse_XOR, src, dst));
787 return dst;
877 HReg dst = newVRegI(env);
886 AMD64RMI_Mem(amode), dst) );
887 return dst;
890 addInstr(env, AMD64Instr_LoadEX(4,False,amode,dst));
891 return dst;
894 addInstr(env, AMD64Instr_LoadEX(2,False,amode,dst));
895 return dst;
898 addInstr(env, AMD64Instr_LoadEX(1,False,amode,dst));
899 return dst;
913 HReg dst = newVRegI(env);
915 addInstr(env, mk_iMOVsd_RR(reg,dst));
916 addInstr(env, AMD64Instr_Unary64(Aun_NEG,dst));
917 return dst;
940 HReg dst = newVRegI(env);
943 addInstr(env, mk_iMOVsd_RR(reg,dst));
944 addInstr(env, AMD64Instr_Alu64R(aluOp, rmi, dst));
945 return dst;
960 HReg dst = newVRegI(env);
964 addInstr(env, mk_iMOVsd_RR(regL,dst));
974 Aalu_AND, AMD64RMI_Imm(0xFF), dst));
978 Aalu_AND, AMD64RMI_Imm(0xFFFF), dst));
981 addInstr(env, AMD64Instr_MovxLQ(False, dst, dst));
984 addInstr(env, AMD64Instr_Sh64(Ash_SHL, 56, dst));
985 addInstr(env, AMD64Instr_Sh64(Ash_SAR, 56, dst));
988 addInstr(env, AMD64Instr_Sh64(Ash_SHL, 48, dst));
989 addInstr(env, AMD64Instr_Sh64(Ash_SAR, 48, dst));
992 addInstr(env, AMD64Instr_MovxLQ(True, dst, dst));
1009 addInstr(env, AMD64Instr_Sh64(shOp, nshift, dst));
1014 addInstr(env, AMD64Instr_Sh64(shOp, 0/* %cl */, dst));
1016 return dst;
1158 HReg dst = newVRegI(env);
1166 addInstr(env, mk_iMOVsd_RR(hregAMD64_RAX(), dst));
1167 return dst;
1179 HReg dst = newVRegI(env);
1180 addInstr(env, mk_iMOVsd_RR(src1,dst));
1186 addInstr(env, AMD64Instr_CMov64(Acc_B, AMD64RM_Reg(src2), dst));
1187 return dst;
1197 HReg dst = newVRegI(env);
1210 addInstr(env, mk_iMOVsd_RR(rax, dst));
1211 addInstr(env, AMD64Instr_Alu64R(Aalu_OR, AMD64RMI_Reg(rdx), dst));
1212 return dst;
1294 HReg dst = newVRegI(env);
1295 addInstr(env, AMD64Instr_SseUComIS(8,fL,fR,dst));
1298 addInstr(env, AMD64Instr_Alu64R(Aalu_AND, AMD64RMI_Imm(0x45), dst));
1299 return dst;
1306 HReg dst = newVRegI(env);
1308 addInstr(env, AMD64Instr_SseSF2SI( 8, szD, rf, dst ));
1310 return dst;
1316 //.. HReg dst = newVRegI(env);
1337 //.. /* movzwl 0(%esp), %dst */
1338 //.. addInstr(env, X86Instr_LoadEX(2,False,zero_esp,dst));
1340 //.. /* movl 0(%esp), %dst */
1343 //.. Xalu_MOV, X86RMI_Mem(zero_esp), dst));
1351 //.. return dst;
1359 //.. HReg dst = newVRegI(env);
1370 //.. addInstr(env, mk_iMOVsd_RR(hregX86_EAX(), dst));
1371 //.. addInstr(env, X86Instr_Alu32R(Xalu_AND, X86RMI_Imm(0x4700), dst));
1372 //.. return dst;
1387 HReg dst = newVRegI(env);
1389 addInstr(env, mk_iMOVsd_RR(src,dst) );
1391 AMD64RMI_Imm(1), dst));
1392 return dst;
1402 HReg dst = newVRegI(env);
1404 dst));
1405 return dst;
1415 HReg dst = newVRegI(env);
1417 addInstr(env, AMD64Instr_LoadEX(2,False,amode,dst));
1418 return dst;
1425 HReg dst = newVRegI(env);
1428 src, dst) );
1429 return dst;
1446 HReg dst = newVRegI(env);
1451 addInstr(env, mk_iMOVsd_RR(src,dst) );
1453 AMD64RMI_Imm(mask), dst));
1454 return dst;
1461 HReg dst = newVRegI(env);
1466 addInstr(env, mk_iMOVsd_RR(src,dst) );
1467 addInstr(env, AMD64Instr_Sh64(Ash_SHL, amt, dst));
1468 addInstr(env, AMD64Instr_Sh64(Ash_SAR, amt, dst));
1469 return dst;
1475 HReg dst = newVRegI(env);
1477 addInstr(env, mk_iMOVsd_RR(src,dst) );
1478 addInstr(env, AMD64Instr_Unary64(Aun_NOT,dst));
1479 return dst;
1494 HReg dst = newVRegI(env);
1503 addInstr(env, mk_iMOVsd_RR(src,dst) );
1504 addInstr(env, AMD64Instr_Sh64(Ash_SHR, shift, dst));
1505 return dst;
1510 HReg dst = newVRegI(env);
1512 addInstr(env, AMD64Instr_Set64(cond,dst));
1513 return dst;
1520 HReg dst = newVRegI(env);
1522 addInstr(env, AMD64Instr_Set64(cond,dst));
1523 addInstr(env, AMD64Instr_Sh64(Ash_SHL, 63, dst));
1524 addInstr(env, AMD64Instr_Sh64(Ash_SAR, 63, dst));
1525 return dst;
1529 HReg dst = newVRegI(env);
1531 addInstr(env, AMD64Instr_Bsfr64(True,src,dst));
1532 return dst;
1539 HReg dst = newVRegI(env);
1543 AMD64RMI_Imm(63), dst));
1545 AMD64RMI_Reg(tmp), dst));
1546 return dst;
1550 HReg dst = newVRegI(env);
1552 addInstr(env, mk_iMOVsd_RR(src,dst));
1553 addInstr(env, AMD64Instr_Unary64(Aun_NEG,dst));
1555 AMD64RMI_Reg(src), dst));
1556 addInstr(env, AMD64Instr_Sh64(Ash_SAR, 63, dst));
1557 return dst;
1562 HReg dst = newVRegI(env);
1566 addInstr(env, mk_iMOVsd_RR(src,dst));
1567 addInstr(env, AMD64Instr_Unary64(Aun_NEG,dst));
1569 AMD64RMI_Reg(src), dst));
1570 addInstr(env, AMD64Instr_Sh64(Ash_SAR, 63, dst));
1571 return dst;
1578 HReg dst = newVRegI(env);
1580 addInstr(env, mk_iMOVsd_RR(src, dst));
1581 addInstr(env, AMD64Instr_Unary64(Aun_NEG, dst));
1582 addInstr(env, AMD64Instr_Alu64R(Aalu_OR, AMD64RMI_Reg(src), dst));
1583 return dst;
1587 HReg dst = newVRegI(env);
1591 addInstr(env, AMD64Instr_LoadEX(4, False/*z-widen*/, rsp_m16, dst));
1592 return dst;
1599 HReg dst = newVRegI(env);
1606 AMD64RMI_Mem(rspN), dst ));
1608 return dst;
1616 HReg dst = newVRegI(env);
1622 Aalu_MOV, AMD64RMI_Mem(m8_rsp), dst));
1623 return dst;
1631 HReg dst = newVRegI(env);
1636 addInstr(env, AMD64Instr_LoadEX(4, False/*unsigned*/, m8_rsp, dst ));
1637 return dst;
1670 HReg dst = newVRegI(env);
1674 addInstr(env, mk_iMOVsd_RR(hregAMD64_RAX(), dst));
1675 return dst;
1684 HReg dst = newVRegI(env);
1690 dst));
1691 return dst;
1694 HReg dst = newVRegI(env);
1699 dst));
1700 return dst;
1710 HReg dst = newVRegI(env);
1712 addInstr(env, AMD64Instr_LoadEX( 1, False, am, dst ));
1713 return dst;
1716 addInstr(env, AMD64Instr_Alu64R( Aalu_MOV, AMD64RMI_Mem(am), dst ));
1717 return dst;
1724 HReg dst = newVRegI(env);
1735 /* Move to dst, and zero out the top 32 bits if the result type is
1738 addInstr(env, mk_iMOVsd_RR(hregAMD64_RAX(), dst));
1740 addInstr(env, AMD64Instr_MovxLQ(False, hregAMD64_RAX(), dst));
1742 return dst;
1766 HReg dst = newVRegI(env);
1767 addInstr(env, mk_iMOVsd_RR(rX,dst));
1770 addInstr(env, AMD64Instr_CMov64(Acc_Z,r0,dst));
1771 return dst;
1785 HReg dst = newVRegI(env);
1809 addInstr(env, AMD64Instr_Alu64R(Aalu_MOV,AMD64RMI_Mem(m8_rsp),dst));
1810 addInstr(env, AMD64Instr_Alu64R(Aalu_AND,AMD64RMI_Imm(0x4700),dst));
1811 return dst;
2117 HReg dst = newVRegI(env);
2118 addInstr(env, mk_iMOVsd_RR(r64,dst));
2119 addInstr(env, AMD64Instr_Alu64R(Aalu_AND,AMD64RMI_Imm(1),dst));
2780 HReg dst = newVRegV(env);
2783 addInstr(env, AMD64Instr_SseSDSS(True/*D->S*/,src,dst));
2785 return dst;
2800 HReg dst = newVRegV(env);
2804 addInstr(env, AMD64Instr_SseLdSt( True/*load*/, 4, dst, m4_rsp ));
2805 return dst;
2811 HReg dst = newVRegV(env);
2824 addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 4, dst, m8_rsp));
2829 return dst;
2951 HReg dst = newVRegV(env);
2954 addInstr(env, mk_vMOVsd_RR(argL, dst));
2957 addInstr(env, AMD64Instr_Sse64FLo(op, argR, dst));
2958 return dst;
2965 HReg dst = newVRegV(env);
2978 addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 8, dst, m8_rsp));
2983 return dst;
2997 HReg dst = newVRegV(env);
3041 addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 8, dst, m8_rsp));
3042 return dst;
3046 HReg dst = newVRegV(env);
3049 addInstr(env, AMD64Instr_SseSI2SF( 8, 8, src, dst ));
3051 return dst;
3055 HReg dst = newVRegV(env);
3058 addInstr(env, AMD64Instr_SseSI2SF( 4, 8, src, dst ));
3059 return dst;
3069 HReg dst = newVRegV(env);
3077 addInstr(env, AMD64Instr_SseLdSt(True, 16, dst, rsp0));
3080 addInstr(env, AMD64Instr_SseReRg(Asse_XOR, tmp, dst));
3082 addInstr(env, AMD64Instr_SseReRg(Asse_ANDN, tmp, dst));
3085 return dst;
3101 HReg dst = newVRegV(env);
3114 addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 8, dst, m8_rsp));
3115 return dst;
3122 //.. HReg dst = newVRegF(env);
3127 //.. True/*load*/, 4, dst,
3130 //.. return dst;
3136 HReg dst = newVRegV(env);
3141 addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 8, dst, m8_rsp));
3142 return dst;
3160 HReg r8, rX, r0, dst;
3166 dst = newVRegV(env);
3167 addInstr(env, mk_vMOVsd_RR(rX,dst));
3169 addInstr(env, AMD64Instr_SseCMov(Acc_Z,r0,dst));
3170 return dst;
3209 HReg dst = newVRegV(env);
3213 dst,
3217 return dst;
3221 HReg dst = newVRegV(env);
3223 addInstr(env, AMD64Instr_SseLdSt( True/*load*/, 16, dst, am ));
3224 return dst;
3228 HReg dst = newVRegV(env);
3232 dst = generate_zeroes_V128(env);
3235 dst = generate_ones_V128(env);
3246 addInstr(env, AMD64Instr_SseLdSt( True/*load*/, 16, dst, rsp0 ));
3251 return dst;
3280 HReg dst = newVRegV(env);
3283 addInstr(env, AMD64Instr_SseShuf(0xB1, tmp, dst));
3284 addInstr(env, AMD64Instr_SseReRg(Asse_OR, tmp, dst));
3285 return dst;
3296 HReg dst;
3299 dst = do_sse_NotV128(env, tmp);
3300 return dst;
3309 HReg dst = newVRegV(env);
3310 addInstr(env, AMD64Instr_Sse32Fx4(op, arg, dst));
3311 return dst;
3320 HReg dst = newVRegV(env);
3321 addInstr(env, AMD64Instr_Sse64Fx2(op, arg, dst));
3322 return dst;
3337 HReg dst = newVRegV(env);
3338 addInstr(env, mk_vMOVsd_RR(arg, dst));
3339 addInstr(env, AMD64Instr_Sse32FLo(op, arg, dst));
3340 return dst;
3355 HReg dst = newVRegV(env);
3356 addInstr(env, mk_vMOVsd_RR(arg, dst));
3357 addInstr(env, AMD64Instr_Sse64FLo(op, arg, dst));
3358 return dst;
3362 HReg dst = newVRegV(env);
3366 addInstr(env, AMD64Instr_SseLdzLO(4, dst, rsp_m32));
3367 return dst;
3371 HReg dst = newVRegV(env);
3375 addInstr(env, AMD64Instr_SseLdzLO(8, dst, rsp0));
3377 return dst;
3389 HReg dst = newVRegV(env);
3395 addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 16, dst, rsp_m16));
3396 return dst;
3400 HReg dst = newVRegV(env);
3406 addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 16, dst, rsp_m16));
3407 return dst;
3412 HReg dst = newVRegV(env);
3416 addInstr(env, AMD64Instr_SseLdSt(True/*load*/, 16, dst, rsp));
3418 return dst;
3435 HReg dst = newVRegV(env);
3436 addInstr(env, mk_vMOVsd_RR(argL, dst));
3437 addInstr(env, AMD64Instr_Sse32Fx4(op, argR, dst));
3438 return dst;
3455 HReg dst = newVRegV(env);
3456 addInstr(env, mk_vMOVsd_RR(argL, dst));
3457 addInstr(env, AMD64Instr_Sse64Fx2(op, argR, dst));
3458 return dst;
3474 HReg dst = newVRegV(env);
3475 addInstr(env, mk_vMOVsd_RR(argL, dst));
3476 addInstr(env, AMD64Instr_Sse32FLo(op, argR, dst));
3477 return dst;
3493 HReg dst = newVRegV(env);
3494 addInstr(env, mk_vMOVsd_RR(argL, dst));
3495 addInstr(env, AMD64Instr_Sse64FLo(op, argR, dst));
3496 return dst;
3561 HReg dst = newVRegV(env);
3563 addInstr(env, mk_vMOVsd_RR(arg2, dst));
3564 dst));
3566 addInstr(env, mk_vMOVsd_RR(arg1, dst));
3567 addInstr(env, AMD64Instr_SseReRg(op, arg2, dst));
3569 return dst;
3585 HReg dst = newVRegV(env);
3589 addInstr(env, mk_vMOVsd_RR(greg, dst));
3590 addInstr(env, AMD64Instr_SseReRg(op, ereg, dst));
3592 return dst;
3619 HReg dst = newVRegV(env);
3655 addInstr(env, AMD64Instr_SseLdSt(True/*isLoad*/, 16, dst,
3659 return dst;
3670 HReg dst = newVRegV(env);
3703 addInstr(env, AMD64Instr_SseLdSt(True/*isLoad*/, 16, dst,
3707 return dst;
3719 HReg dst = newVRegV(env);
3720 addInstr(env, mk_vMOVsd_RR(rX,dst));
3722 addInstr(env, AMD64Instr_SseCMov(Acc_Z,r0,dst));
3723 return dst;
3882 HReg dst = lookupIRTemp(env, tmp);
3888 addInstr(env, AMD64Instr_Alu64R(Aalu_MOV, AMD64RMI_Reg(src), dst));
3890 addInstr(env, AMD64Instr_Lea64(am,dst));
3898 HReg dst = lookupIRTemp(env, tmp);
3899 addInstr(env, AMD64Instr_Alu64R(Aalu_MOV,rmi,dst));
3912 HReg dst = lookupIRTemp(env, tmp);
3913 addInstr(env, AMD64Instr_Set64(cond, dst));
3917 HReg dst = lookupIRTemp(env, tmp);
3919 addInstr(env, mk_vMOVsd_RR(src, dst));
3923 HReg dst = lookupIRTemp(env, tmp);
3925 addInstr(env, mk_vMOVsd_RR(src, dst));
3929 HReg dst = lookupIRTemp(env, tmp);
3931 addInstr(env, mk_vMOVsd_RR(src, dst));
3961 HReg dst = lookupIRTemp(env, d->tmp);
3962 addInstr(env, mk_iMOVsd_RR(hregAMD64_RAX(),dst) );
4071 AMD64RI* dst;
4073 if (stmt->Ist.Exit.dst->tag != Ico_U64)
4074 vpanic("iselStmt(amd64): Ist_Exit: dst is not a 64-bit value");
4075 dst = iselIntExpr_RI(env, IRExpr_Const(stmt->Ist.Exit.dst));
4077 addInstr(env, AMD64Instr_Goto(stmt->Ist.Exit.jk, cc, dst));