Lines Matching defs:src
37 #include "src/codegen/ia32/assembler-ia32.h"
50 #include "src/base/bits.h"
51 #include "src/base/cpu.h"
52 #include "src/codegen/assembler-inl.h"
53 #include "src/codegen/macro-assembler.h"
54 #include "src/codegen/string-constants.h"
55 #include "src/deoptimizer/deoptimizer.h"
56 #include "src/diagnostics/disassembler.h"
57 #include "src/init/v8.h"
58 #include "src/numbers/conversions-inl.h"
535 void Assembler::push(Register src) {
537 EMIT(0x50 | src.code());
540 void Assembler::push(Operand src) {
543 emit_operand(esi, src);
563 void Assembler::mov_b(Register dst, Operand src) {
567 emit_operand(dst, src);
570 void Assembler::mov_b(Operand dst, const Immediate& src) {
574 EMIT(static_cast<int8_t>(src.immediate()));
577 void Assembler::mov_b(Operand dst, Register src) {
578 CHECK(src.is_byte_register());
581 emit_operand(src, dst);
584 void Assembler::mov_w(Register dst, Operand src) {
588 emit_operand(dst, src);
591 void Assembler::mov_w(Operand dst, Register src) {
595 emit_operand(src, dst);
598 void Assembler::mov_w(Operand dst, const Immediate& src) {
603 EMIT(static_cast<int8_t>(src.immediate() & 0xFF));
604 EMIT(static_cast<int8_t>(src.immediate() >> 8));
625 void Assembler::mov(Register dst, Operand src) {
628 emit_operand(dst, src);
631 void Assembler::mov(Register dst, Register src) {
634 EMIT(0xC0 | src.code() << 3 | dst.code());
644 void Assembler::mov(Operand dst, Address src, RelocInfo::Mode rmode) {
648 emit(src, rmode);
658 void Assembler::mov(Operand dst, Register src) {
661 emit_operand(src, dst);
664 void Assembler::movsx_b(Register dst, Operand src) {
665 DCHECK_IMPLIES(src.is_reg_only(), src.reg().is_byte_register());
669 emit_operand(dst, src);
672 void Assembler::movsx_w(Register dst, Operand src) {
676 emit_operand(dst, src);
679 void Assembler::movzx_b(Register dst, Operand src) {
680 DCHECK_IMPLIES(src.is_reg_only(), src.reg().is_byte_register());
684 emit_operand(dst, src);
687 void Assembler::movzx_w(Register dst, Operand src) {
691 emit_operand(dst, src);
694 void Assembler::movq(XMMRegister dst, Operand src) {
699 emit_operand(dst, src);
702 void Assembler::movq(Operand dst, XMMRegister src) {
707 emit_operand(src, dst);
710 void Assembler::cmov(Condition cc, Register dst, Operand src) {
715 emit_operand(dst, src);
740 void Assembler::xadd(Operand dst, Register src) {
744 emit_operand(src, dst);
747 void Assembler::xadd_b(Operand dst, Register src) {
748 DCHECK(src.is_byte_register());
752 emit_operand(src, dst);
755 void Assembler::xadd_w(Operand dst, Register src) {
760 emit_operand(src, dst);
763 void Assembler::xchg(Register dst, Register src) {
765 if (src == eax || dst == eax) { // Single-byte encoding.
766 EMIT(0x90 | (src == eax ? dst.code() : src.code()));
769 EMIT(0xC0 | src.code() << 3 | dst.code());
773 void Assembler::xchg(Register dst, Operand src) {
776 emit_operand(dst, src);
798 void Assembler::cmpxchg(Operand dst, Register src) {
802 emit_operand(src, dst);
805 void Assembler::cmpxchg_b(Operand dst, Register src) {
806 DCHECK(src.is_byte_register());
810 emit_operand(src, dst);
813 void Assembler::cmpxchg_w(Operand dst, Register src) {
818 emit_operand(src, dst);
853 void Assembler::adc(Register dst, Operand src) {
856 emit_operand(dst, src);
859 void Assembler::add(Register dst, Operand src) {
862 emit_operand(dst, src);
865 void Assembler::add(Operand dst, Register src) {
868 emit_operand(src, dst);
886 void Assembler::and_(Register dst, Operand src) {
889 emit_operand(dst, src);
897 void Assembler::and_(Operand dst, Register src) {
900 emit_operand(src, dst);
1026 void Assembler::idiv(Operand src) {
1029 emit_operand(edi, src);
1032 void Assembler::div(Operand src) {
1035 emit_operand(esi, src);
1044 void Assembler::imul(Register dst, Operand src) {
1048 emit_operand(dst, src);
1051 void Assembler::imul(Register dst, Register src, int32_t imm32) {
1052 imul(dst, Operand(src), imm32);
1055 void Assembler::imul(Register dst, Operand src, int32_t imm32) {
1059 emit_operand(dst, src);
1063 emit_operand(dst, src);
1079 void Assembler::lea(Register dst, Operand src) {
1082 emit_operand(dst, src);
1085 void Assembler::mul(Register src) {
1088 EMIT(0xE0 | src.code());
1120 void Assembler::or_(Register dst, Operand src) {
1123 emit_operand(dst, src);
1131 void Assembler::or_(Operand dst, Register src) {
1134 emit_operand(src, dst);
1220 void Assembler::sbb(Register dst, Operand src) {
1223 emit_operand(dst, src);
1226 void Assembler::shld(Register dst, Register src, uint8_t shift) {
1231 emit_operand(src, Operand(dst));
1235 void Assembler::shld_cl(Register dst, Register src) {
1239 emit_operand(src, Operand(dst));
1280 void Assembler::shrd(Register dst, Register src, uint8_t shift) {
1285 emit_operand(src, Operand(dst));
1289 void Assembler::shrd_cl(Operand dst, Register src) {
1293 emit_operand(src, dst);
1301 void Assembler::sub(Register dst, Operand src) {
1304 emit_operand(dst, src);
1307 void Assembler::sub(Operand dst, Register src) {
1310 emit_operand(src, dst);
1434 void Assembler::xor_(Register dst, Operand src) {
1437 emit_operand(dst, src);
1440 void Assembler::xor_(Operand dst, Register src) {
1443 emit_operand(src, dst);
1457 void Assembler::bt(Operand dst, Register src) {
1461 emit_operand(src, dst);
1464 void Assembler::bts(Operand dst, Register src) {
1468 emit_operand(src, dst);
1471 void Assembler::bsr(Register dst, Operand src) {
1475 emit_operand(dst, src);
1478 void Assembler::bsf(Register dst, Operand src) {
1482 emit_operand(dst, src);
2148 void Assembler::cvttss2si(Register dst, Operand src) {
2150 // The [src] might contain ebx's register code, but in
2155 emit_operand(dst, src);
2158 void Assembler::cvttsd2si(Register dst, Operand src) {
2160 // The [src] might contain ebx's register code, but in
2165 emit_operand(dst, src);
2168 void Assembler::cvtsd2si(Register dst, XMMRegister src) {
2173 emit_sse_operand(dst, src);
2176 void Assembler::cvtsi2ss(XMMRegister dst, Operand src) {
2181 emit_sse_operand(dst, src);
2184 void Assembler::cvtsi2sd(XMMRegister dst, Operand src) {
2189 emit_sse_operand(dst, src);
2192 void Assembler::cvtss2sd(XMMRegister dst, Operand src) {
2197 emit_sse_operand(dst, src);
2200 void Assembler::cvtdq2pd(XMMRegister dst, XMMRegister src) {
2205 emit_sse_operand(dst, src);
2208 void Assembler::cvtpd2ps(XMMRegister dst, XMMRegister src) {
2213 emit_sse_operand(dst, src);
2216 void Assembler::cvttps2dq(XMMRegister dst, Operand src) {
2221 emit_sse_operand(dst, src);
2224 void Assembler::cvttpd2dq(XMMRegister dst, XMMRegister src) {
2229 emit_sse_operand(dst, src);
2232 void Assembler::cmpps(XMMRegister dst, Operand src, uint8_t cmp) {
2236 emit_sse_operand(dst, src);
2240 void Assembler::cmppd(XMMRegister dst, Operand src, uint8_t cmp) {
2245 emit_sse_operand(dst, src);
2249 void Assembler::haddps(XMMRegister dst, Operand src) {
2255 emit_sse_operand(dst, src);
2258 void Assembler::ucomisd(XMMRegister dst, Operand src) {
2263 emit_sse_operand(dst, src);
2266 void Assembler::roundps(XMMRegister dst, XMMRegister src, RoundingMode mode) {
2273 emit_sse_operand(dst, src);
2278 void Assembler::roundpd(XMMRegister dst, XMMRegister src, RoundingMode mode) {
2285 emit_sse_operand(dst, src);
2290 void Assembler::roundss(XMMRegister dst, XMMRegister src, RoundingMode mode) {
2297 emit_sse_operand(dst, src);
2302 void Assembler::roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode) {
2309 emit_sse_operand(dst, src);
2314 void Assembler::movmskpd(Register dst, XMMRegister src) {
2319 emit_sse_operand(dst, src);
2322 void Assembler::movmskps(Register dst, XMMRegister src) {
2326 emit_sse_operand(dst, src);
2329 void Assembler::pmovmskb(Register dst, XMMRegister src) {
2334 emit_sse_operand(dst, src);
2337 void Assembler::cmpltsd(XMMRegister dst, XMMRegister src) {
2342 emit_sse_operand(dst, src);
2346 void Assembler::movaps(XMMRegister dst, Operand src) {
2350 emit_sse_operand(dst, src);
2353 void Assembler::movups(XMMRegister dst, Operand src) {
2357 emit_sse_operand(dst, src);
2360 void Assembler::movups(Operand dst, XMMRegister src) {
2364 emit_sse_operand(src, dst);
2367 void Assembler::movddup(XMMRegister dst, Operand src) {
2373 emit_sse_operand(dst, src);
2376 void Assembler::movshdup(XMMRegister dst, XMMRegister src) {
2382 emit_sse_operand(dst, src);
2385 void Assembler::shufps(XMMRegister dst, XMMRegister src, byte imm8) {
2390 emit_sse_operand(dst, src);
2394 void Assembler::shufpd(XMMRegister dst, XMMRegister src, byte imm8) {
2400 emit_sse_operand(dst, src);
2404 void Assembler::movhlps(XMMRegister dst, XMMRegister src) {
2408 emit_sse_operand(dst, src);
2411 void Assembler::movlhps(XMMRegister dst, XMMRegister src) {
2415 emit_sse_operand(dst, src);
2418 void Assembler::movlps(XMMRegister dst, Operand src) {
2422 emit_sse_operand(dst, src);
2425 void Assembler::movlps(Operand dst, XMMRegister src) {
2429 emit_sse_operand(src, dst);
2432 void Assembler::movhps(XMMRegister dst, Operand src) {
2436 emit_sse_operand(dst, src);
2439 void Assembler::movhps(Operand dst, XMMRegister src) {
2443 emit_sse_operand(src, dst);
2446 void Assembler::movdqa(Operand dst, XMMRegister src) {
2451 emit_sse_operand(src, dst);
2454 void Assembler::movdqa(XMMRegister dst, Operand src) {
2459 emit_sse_operand(dst, src);
2462 void Assembler::movdqa(XMMRegister dst, XMMRegister src) {
2467 emit_sse_operand(dst, src);
2470 void Assembler::movdqu(Operand dst, XMMRegister src) {
2475 emit_sse_operand(src, dst);
2478 void Assembler::movdqu(XMMRegister dst, Operand src) {
2483 emit_sse_operand(dst, src);
2486 void Assembler::movdqu(XMMRegister dst, XMMRegister src) {
2491 emit_sse_operand(src, dst);
2494 void Assembler::prefetch(Operand src, int level) {
2501 emit_sse_operand(code, src);
2504 void Assembler::movsd(Operand dst, XMMRegister src) {
2509 emit_sse_operand(src, dst);
2512 void Assembler::movsd(XMMRegister dst, Operand src) {
2517 emit_sse_operand(dst, src);
2520 void Assembler::movss(Operand dst, XMMRegister src) {
2525 emit_sse_operand(src, dst);
2528 void Assembler::movss(XMMRegister dst, Operand src) {
2533 emit_sse_operand(dst, src);
2536 void Assembler::movd(XMMRegister dst, Operand src) {
2541 emit_sse_operand(dst, src);
2544 void Assembler::movd(Operand dst, XMMRegister src) {
2549 emit_sse_operand(src, dst);
2552 void Assembler::extractps(Operand dst, XMMRegister src, byte imm8) {
2560 emit_sse_operand(src, dst);
2564 void Assembler::extractps(Register dst, XMMRegister src, byte imm8) {
2572 emit_sse_operand(src, dst);
2576 void Assembler::pcmpgtq(XMMRegister dst, XMMRegister src) {
2583 emit_sse_operand(dst, src);
2658 void Assembler::pshufhw(XMMRegister dst, Operand src, uint8_t shuffle) {
2663 emit_sse_operand(dst, src);
2667 void Assembler::pshuflw(XMMRegister dst, Operand src, uint8_t shuffle) {
2672 emit_sse_operand(dst, src);
2676 void Assembler::pshufd(XMMRegister dst, Operand src, uint8_t shuffle) {
2681 emit_sse_operand(dst, src);
2685 void Assembler::pblendw(XMMRegister dst, Operand src, uint8_t mask) {
2692 emit_sse_operand(dst, src);
2696 void Assembler::palignr(XMMRegister dst, Operand src, uint8_t mask) {
2703 emit_sse_operand(dst, src);
2707 void Assembler::pextrb(Operand dst, XMMRegister src, uint8_t offset) {
2714 emit_sse_operand(src, dst);
2718 void Assembler::pextrw(Operand dst, XMMRegister src, uint8_t offset) {
2725 emit_sse_operand(src, dst);
2729 void Assembler::pextrd(Operand dst, XMMRegister src, uint8_t offset) {
2736 emit_sse_operand(src, dst);
2740 void Assembler::insertps(XMMRegister dst, Operand src, uint8_t offset) {
2747 emit_sse_operand(dst, src);
2751 void Assembler::pinsrb(XMMRegister dst, Operand src, uint8_t offset) {
2758 emit_sse_operand(dst, src);
2762 void Assembler::pinsrw(XMMRegister dst, Operand src, uint8_t offset) {
2768 emit_sse_operand(dst, src);
2772 void Assembler::pinsrd(XMMRegister dst, Operand src, uint8_t offset) {
2779 emit_sse_operand(dst, src);
2783 void Assembler::addss(XMMRegister dst, Operand src) {
2788 emit_sse_operand(dst, src);
2791 void Assembler::subss(XMMRegister dst, Operand src) {
2796 emit_sse_operand(dst, src);
2799 void Assembler::mulss(XMMRegister dst, Operand src) {
2804 emit_sse_operand(dst, src);
2807 void Assembler::divss(XMMRegister dst, Operand src) {
2812 emit_sse_operand(dst, src);
2815 void Assembler::sqrtss(XMMRegister dst, Operand src) {
2820 emit_sse_operand(dst, src);
2823 void Assembler::ucomiss(XMMRegister dst, Operand src) {
2827 emit_sse_operand(dst, src);
2830 void Assembler::maxss(XMMRegister dst, Operand src) {
2835 emit_sse_operand(dst, src);
2838 void Assembler::minss(XMMRegister dst, Operand src) {
2843 emit_sse_operand(dst, src);
2847 void Assembler::ps(byte opcode, XMMRegister dst, Operand src) {
2851 emit_sse_operand(dst, src);
2855 void Assembler::pd(byte opcode, XMMRegister dst, Operand src) {
2860 emit_sse_operand(dst, src);
2896 void Assembler::vmovlps(Operand dst, XMMRegister src) {
2897 vinstr(0x13, src, xmm0, dst, kNoPrefix, k0F, kWIG);
2904 void Assembler::vmovhps(Operand dst, XMMRegister src) {
2905 vinstr(0x17, src, xmm0, dst, kNoPrefix, k0F, kWIG);
2927 void Assembler::vpsllw(XMMRegister dst, XMMRegister src, uint8_t imm8) {
2929 vinstr(0x71, iop, dst, Operand(src), k66, k0F, kWIG);
2933 void Assembler::vpslld(XMMRegister dst, XMMRegister src, uint8_t imm8) {
2935 vinstr(0x72, iop, dst, Operand(src), k66, k0F, kWIG);
2939 void Assembler::vpsllq(XMMRegister dst, XMMRegister src, uint8_t imm8) {
2941 vinstr(0x73, iop, dst, Operand(src), k66, k0F, kWIG);
2945 void Assembler::vpsrlw(XMMRegister dst, XMMRegister src, uint8_t imm8) {
2947 vinstr(0x71, iop, dst, Operand(src), k66, k0F, kWIG);
2951 void Assembler::vpsrld(XMMRegister dst, XMMRegister src, uint8_t imm8) {
2953 vinstr(0x72, iop, dst, Operand(src), k66, k0F, kWIG);
2957 void Assembler::vpsrlq(XMMRegister dst, XMMRegister src, uint8_t imm8) {
2959 vinstr(0x73, iop, dst, Operand(src), k66, k0F, kWIG);
2963 void Assembler::vpsraw(XMMRegister dst, XMMRegister src, uint8_t imm8) {
2965 vinstr(0x71, iop, dst, Operand(src), k66, k0F, kWIG);
2969 void Assembler::vpsrad(XMMRegister dst, XMMRegister src, uint8_t imm8) {
2971 vinstr(0x72, iop, dst, Operand(src), k66, k0F, kWIG);
2975 void Assembler::vpshufhw(XMMRegister dst, Operand src, uint8_t shuffle) {
2976 vinstr(0x70, dst, xmm0, src, kF3, k0F, kWIG);
2980 void Assembler::vpshuflw(XMMRegister dst, Operand src, uint8_t shuffle) {
2981 vinstr(0x70, dst, xmm0, src, kF2, k0F, kWIG);
2985 void Assembler::vpshufd(XMMRegister dst, Operand src, uint8_t shuffle) {
2986 vinstr(0x70, dst, xmm0, src, k66, k0F, kWIG);
3020 void Assembler::vpextrb(Operand dst, XMMRegister src, uint8_t offset) {
3021 vinstr(0x14, src, xmm0, dst, k66, k0F3A, kWIG);
3025 void Assembler::vpextrw(Operand dst, XMMRegister src, uint8_t offset) {
3026 vinstr(0x15, src, xmm0, dst, k66, k0F3A, kWIG);
3030 void Assembler::vpextrd(Operand dst, XMMRegister src, uint8_t offset) {
3031 vinstr(0x16, src, xmm0, dst, k66, k0F3A, kWIG);
3069 void Assembler::vroundps(XMMRegister dst, XMMRegister src, RoundingMode mode) {
3070 vinstr(0x08, dst, xmm0, Operand(src), k66, k0F3A, kWIG);
3073 void Assembler::vroundpd(XMMRegister dst, XMMRegister src, RoundingMode mode) {
3074 vinstr(0x09, dst, xmm0, Operand(src), k66, k0F3A, kWIG);
3078 void Assembler::vmovmskpd(Register dst, XMMRegister src) {
3083 emit_sse_operand(dst, src);
3086 void Assembler::vmovmskps(Register dst, XMMRegister src) {
3091 emit_sse_operand(dst, src);
3094 void Assembler::vpmovmskb(Register dst, XMMRegister src) {
3099 emit_sse_operand(dst, src);
3102 void Assembler::vextractps(Operand dst, XMMRegister src, byte imm8) {
3103 vinstr(0x17, src, xmm0, dst, k66, k0F3A, VexW::kWIG);
3119 void Assembler::tzcnt(Register dst, Operand src) {
3125 emit_operand(dst, src);
3128 void Assembler::lzcnt(Register dst, Operand src) {
3134 emit_operand(dst, src);
3137 void Assembler::popcnt(Register dst, Operand src) {
3143 emit_operand(dst, src);
3155 void Assembler::rorx(Register dst, Operand src, byte imm8) {
3162 emit_operand(dst, src);
3166 void Assembler::sse_instr(XMMRegister dst, Operand src, byte escape,
3171 emit_sse_operand(dst, src);
3174 void Assembler::sse2_instr(XMMRegister dst, Operand src, byte prefix,
3180 emit_sse_operand(dst, src);
3183 void Assembler::ssse3_instr(XMMRegister dst, Operand src, byte prefix,
3191 emit_sse_operand(dst, src);
3194 void Assembler::sse4_instr(XMMRegister dst, Operand src, byte prefix,
3202 emit_sse_operand(dst, src);
3242 void Assembler::emit_sse_operand(XMMRegister dst, XMMRegister src) {
3243 EMIT(0xC0 | dst.code() << 3 | src.code());
3246 void Assembler::emit_sse_operand(Register dst, XMMRegister src) {
3247 EMIT(0xC0 | dst.code() << 3 | src.code());
3250 void Assembler::emit_sse_operand(XMMRegister dst, Register src) {
3251 EMIT(0xC0 | (dst.code() << 3) | src.code());