Lines Matching defs:dst
446 void TurboAssembler::Move(Register dst, Smi smi) { mov(dst, Operand(smi)); }
448 void TurboAssembler::Move(Register dst, Handle<HeapObject> value) {
453 IndirectLoadConstant(dst, value);
456 mov(dst, Operand(value));
459 void TurboAssembler::Move(Register dst, ExternalReference reference) {
464 IndirectLoadExternalReference(dst, reference);
467 mov(dst, Operand(reference));
470 void TurboAssembler::Move(Register dst, Register src, Condition cond) {
471 if (dst != src) {
472 mov(dst, src, LeaveCC, cond);
476 void TurboAssembler::Move(SwVfpRegister dst, SwVfpRegister src,
478 if (dst != src) {
479 vmov(dst, src, cond);
483 void TurboAssembler::Move(DwVfpRegister dst, DwVfpRegister src,
485 if (dst != src) {
486 vmov(dst, src, cond);
490 void TurboAssembler::Move(QwNeonRegister dst, QwNeonRegister src) {
491 if (dst != src) {
492 vmov(dst, src);
542 void MacroAssembler::Mls(Register dst, Register src1, Register src2,
546 mls(dst, src1, src2, srcA, cond);
552 sub(dst, srcA, scratch, LeaveCC, cond);
556 void MacroAssembler::And(Register dst, Register src1, const Operand& src2,
560 mov(dst, Operand::Zero(), LeaveCC, cond);
566 ubfx(dst, src1, 0,
571 and_(dst, src1, src2, LeaveCC, cond);
575 void MacroAssembler::Ubfx(Register dst, Register src1, int lsb, int width,
580 and_(dst, src1, Operand(mask), LeaveCC, cond);
582 mov(dst, Operand(dst, LSR, lsb), LeaveCC, cond);
586 ubfx(dst, src1, lsb, width, cond);
590 void MacroAssembler::Sbfx(Register dst, Register src1, int lsb, int width,
595 and_(dst, src1, Operand(mask), LeaveCC, cond);
599 mov(dst, Operand(dst, LSL, shift_up), LeaveCC, cond);
602 mov(dst, Operand(dst, ASR, shift_down), LeaveCC, cond);
606 sbfx(dst, src1, lsb, width, cond);
610 void TurboAssembler::Bfc(Register dst, Register src, int lsb, int width,
615 bic(dst, src, Operand(mask));
618 Move(dst, src, cond);
619 bfc(dst, lsb, width, cond);
860 void TurboAssembler::VFPCanonicalizeNaN(const DwVfpRegister dst,
866 vsub(dst, src, kDoubleRegZero, cond);
933 void TurboAssembler::VmovHigh(Register dst, DwVfpRegister src) {
936 vmov(dst, loc.high());
938 vmov(NeonS32, dst, src, 1);
942 void TurboAssembler::VmovHigh(DwVfpRegister dst, Register src) {
943 if (dst.code() < 16) {
944 const LowDwVfpRegister loc = LowDwVfpRegister::from_code(dst.code());
947 vmov(NeonS32, dst, 1, src);
951 void TurboAssembler::VmovLow(Register dst, DwVfpRegister src) {
954 vmov(dst, loc.low());
956 vmov(NeonS32, dst, src, 0);
960 void TurboAssembler::VmovLow(DwVfpRegister dst, Register src) {
961 if (dst.code() < 16) {
962 const LowDwVfpRegister loc = LowDwVfpRegister::from_code(dst.code());
965 vmov(NeonS32, dst, 0, src);
969 void TurboAssembler::VmovExtended(Register dst, int src_code) {
973 VmovHigh(dst, DwVfpRegister::from_code(src_code / 2));
975 VmovLow(dst, DwVfpRegister::from_code(src_code / 2));
994 // src and dst are both s-registers.
1030 // Without Neon, use the scratch registers to move src and/or dst into
1038 // src is an s-register, dst is not.
1044 // dst is an s-register, src is not.
1049 // Neither src or dst are s-registers. Both scratch double registers are
1073 void TurboAssembler::VmovExtended(const MemOperand& dst, int src_code) {
1075 vstr(SwVfpRegister::from_code(src_code), dst);
1082 vstr(SwVfpRegister::from_code(src_s_code), dst);
1086 void TurboAssembler::ExtractLane(Register dst, QwNeonRegister src,
1095 vmov(dt, dst, double_source, double_lane);
1098 void TurboAssembler::ExtractLane(Register dst, DwVfpRegister src,
1104 vmov(dt, dst, src, double_lane);
1107 void TurboAssembler::ExtractLane(SwVfpRegister dst, QwNeonRegister src,
1110 VmovExtended(dst.code(), s_code);
1113 void TurboAssembler::ExtractLane(DwVfpRegister dst, QwNeonRegister src,
1116 vmov(dst, double_dst);
1119 void TurboAssembler::ReplaceLane(QwNeonRegister dst, QwNeonRegister src,
1121 Move(dst, src);
1128 DwVfpRegister::from_code(dst.code() * 2 + double_word);
1132 void TurboAssembler::ReplaceLane(QwNeonRegister dst, QwNeonRegister src,
1134 Move(dst, src);
1135 int s_code = dst.code() * 4 + lane;
1139 void TurboAssembler::ReplaceLane(QwNeonRegister dst, QwNeonRegister src,
1141 Move(dst, src);
1142 DwVfpRegister double_dst = DwVfpRegister::from_code(dst.code() * 2 + lane);
1157 uint8_t lane, NeonMemOperand dst) {
1160 vst1(Neon64, src_list, dst);
1162 vst1s(sz, src_list, lane, dst);
1544 void TurboAssembler::MovFromFloatResult(const DwVfpRegister dst) {
1546 Move(dst, d0);
1548 vmov(dst, r0, r1);
1553 void TurboAssembler::MovFromFloatParameter(DwVfpRegister dst) {
1554 MovFromFloatResult(dst);
2078 void MacroAssembler::LoadGlobalProxy(Register dst) {
2080 LoadNativeContextSlot(dst, Context::GLOBAL_PROXY_INDEX);
2083 void MacroAssembler::LoadNativeContextSlot(Register dst, int index) {
2085 LoadMap(dst, cp);
2086 ldr(dst, FieldMemOperand(
2087 dst, Map::kConstructorOrBackPointerOrNativeContextOffset));
2088 ldr(dst, MemOperand(dst, Context::SlotOffset(index)));
2101 void MacroAssembler::SmiTag(Register dst, Register src, SBit s) {
2102 add(dst, src, Operand(src), s);
2630 void TurboAssembler::ComputeCodeStartAddress(Register dst) {
2633 sub(dst, pc, Operand(pc_offset() + Instruction::kPcLoadDelta));
2661 void TurboAssembler::I64x2BitMask(Register dst, QwNeonRegister src) {
2667 vmov(NeonU32, dst, tmp1.low(), 0);
2669 add(dst, dst, Operand(tmp, LSL, 1));
2672 void TurboAssembler::I64x2Eq(QwNeonRegister dst, QwNeonRegister src1,
2676 vceq(Neon32, dst, src1, src2);
2677 vrev64(Neon32, scratch, dst);
2678 vand(dst, dst, scratch);
2681 void TurboAssembler::I64x2Ne(QwNeonRegister dst, QwNeonRegister src1,
2685 vceq(Neon32, dst, src1, src2);
2686 vrev64(Neon32, tmp, dst);
2687 vmvn(dst, dst);
2688 vorn(dst, dst, tmp);
2691 void TurboAssembler::I64x2GtS(QwNeonRegister dst, QwNeonRegister src1,
2694 vqsub(NeonS64, dst, src2, src1);
2695 vshr(NeonS64, dst, dst, 63);
2698 void TurboAssembler::I64x2GeS(QwNeonRegister dst, QwNeonRegister src1,
2701 vqsub(NeonS64, dst, src1, src2);
2702 vshr(NeonS64, dst, dst, 63);
2703 vmvn(dst, dst);
2706 void TurboAssembler::I64x2AllTrue(Register dst, QwNeonRegister src) {
2717 // dst = (max(a,b) == 0 || max(c,d) == 0)
2718 // dst will either be -1 or 0.
2719 vmov(NeonS32, dst, tmp.low(), 0);
2720 // dst = !dst (-1 -> 0, 0 -> 1)
2721 add(dst, dst, Operand(1));
2723 // !dst
2730 void TurboAssembler::I64x2Abs(QwNeonRegister dst, QwNeonRegister src) {
2735 veor(dst, src, tmp);
2736 vsub(Neon64, dst, dst, tmp);
2743 // This ensures that we do not overwrite src, if dst == src.
2744 void F64x2ConvertLowHelper(Assembler* assm, QwNeonRegister dst,
2748 if (dst == src) {
2754 (assm->*convert_fn)(dst.low(), src_d.low(), kDefaultRoundToZero, al);
2755 (assm->*convert_fn)(dst.high(), src_d.high(), kDefaultRoundToZero, al);
2759 void TurboAssembler::F64x2ConvertLowI32x4S(QwNeonRegister dst,
2761 F64x2ConvertLowHelper(this, dst, src, &Assembler::vcvt_f64_s32);
2764 void TurboAssembler::F64x2ConvertLowI32x4U(QwNeonRegister dst,
2766 F64x2ConvertLowHelper(this, dst, src, &Assembler::vcvt_f64_u32);
2769 void TurboAssembler::F64x2PromoteLowF32x4(QwNeonRegister dst,
2771 F64x2ConvertLowHelper(this, dst, src, &Assembler::vcvt_f64_f32);