Lines Matching defs:src

9 #include "src/base/bits.h"
10 #include "src/base/division-by-constant.h"
11 #include "src/base/numbers/double.h"
12 #include "src/base/utils/random-number-generator.h"
13 #include "src/codegen/assembler-inl.h"
14 #include "src/codegen/callable.h"
15 #include "src/codegen/code-factory.h"
16 #include "src/codegen/external-reference-table.h"
17 #include "src/codegen/interface-descriptors-inl.h"
18 #include "src/codegen/macro-assembler.h"
19 #include "src/codegen/register-configuration.h"
20 #include "src/debug/debug.h"
21 #include "src/deoptimizer/deoptimizer.h"
22 #include "src/execution/frames-inl.h"
23 #include "src/heap/memory-chunk.h"
24 #include "src/init/bootstrapper.h"
25 #include "src/logging/counters.h"
26 #include "src/objects/objects-inl.h"
27 #include "src/runtime/runtime.h"
28 #include "src/snapshot/snapshot.h"
31 #include "src/wasm/wasm-code-manager.h"
37 #include "src/codegen/arm/macro-assembler-arm.h"
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);
610 void TurboAssembler::Bfc(Register dst, Register src, int lsb, int width,
615 bic(dst, src, Operand(mask));
618 Move(dst, src, cond);
861 const DwVfpRegister src,
866 vsub(dst, src, kDoubleRegZero, cond);
933 void TurboAssembler::VmovHigh(Register dst, DwVfpRegister src) {
934 if (src.code() < 16) {
935 const LowDwVfpRegister loc = LowDwVfpRegister::from_code(src.code());
938 vmov(NeonS32, dst, src, 1);
942 void TurboAssembler::VmovHigh(DwVfpRegister dst, Register src) {
945 vmov(loc.high(), src);
947 vmov(NeonS32, dst, 1, src);
951 void TurboAssembler::VmovLow(Register dst, DwVfpRegister src) {
952 if (src.code() < 16) {
953 const LowDwVfpRegister loc = LowDwVfpRegister::from_code(src.code());
956 vmov(NeonS32, dst, src, 0);
960 void TurboAssembler::VmovLow(DwVfpRegister dst, Register src) {
963 vmov(loc.low(), src);
965 vmov(NeonS32, dst, 0, src);
979 void TurboAssembler::VmovExtended(int dst_code, Register src) {
983 VmovHigh(DwVfpRegister::from_code(dst_code / 2), src);
985 VmovLow(DwVfpRegister::from_code(dst_code / 2), src);
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
1059 void TurboAssembler::VmovExtended(int dst_code, const MemOperand& src) {
1061 vldr(SwVfpRegister::from_code(dst_code), src);
1068 vldr(SwVfpRegister::from_code(dst_s_code), src);
1086 void TurboAssembler::ExtractLane(Register dst, QwNeonRegister src,
1094 DwVfpRegister::from_code(src.code() * 2 + double_word);
1098 void TurboAssembler::ExtractLane(Register dst, DwVfpRegister src,
1104 vmov(dt, dst, src, double_lane);
1107 void TurboAssembler::ExtractLane(SwVfpRegister dst, QwNeonRegister src,
1109 int s_code = src.code() * 4 + lane;
1113 void TurboAssembler::ExtractLane(DwVfpRegister dst, QwNeonRegister src,
1115 DwVfpRegister double_dst = DwVfpRegister::from_code(src.code() * 2 + lane);
1119 void TurboAssembler::ReplaceLane(QwNeonRegister dst, QwNeonRegister src,
1121 Move(dst, src);
1132 void TurboAssembler::ReplaceLane(QwNeonRegister dst, QwNeonRegister src,
1134 Move(dst, src);
1139 void TurboAssembler::ReplaceLane(QwNeonRegister dst, QwNeonRegister src,
1141 Move(dst, src);
1147 uint8_t lane, NeonMemOperand src) {
1150 vld1(Neon64, dst_list, src);
1152 vld1s(sz, dst_list, lane, src);
1620 Register num = r5, src = r6, dest = r9; // r7 and r8 are context and root.
1621 mov(src, sp);
1629 ldr(scratch, MemOperand(src, kSystemPointerSize, PostIndex));
2101 void MacroAssembler::SmiTag(Register dst, Register src, SBit s) {
2102 add(dst, src, Operand(src), s);
2474 void TurboAssembler::MovToFloatParameter(DwVfpRegister src) {
2475 DCHECK(src == d0);
2477 vmov(r0, r1, src);
2482 void TurboAssembler::MovToFloatResult(DwVfpRegister src) {
2483 MovToFloatParameter(src);
2661 void TurboAssembler::I64x2BitMask(Register dst, QwNeonRegister src) {
2666 vshr(NeonU64, tmp1, src, 63);
2706 void TurboAssembler::I64x2AllTrue(Register dst, QwNeonRegister src) {
2710 // src = | a | b | c | d |
2712 vpmax(NeonU32, tmp.low(), src.low(), src.high());
2730 void TurboAssembler::I64x2Abs(QwNeonRegister dst, QwNeonRegister src) {
2734 vshr(NeonS64, tmp, src, 63);
2735 veor(dst, src, tmp);
2743 // This ensures that we do not overwrite src, if dst == src.
2745 QwNeonRegister src, AssemblerFunc convert_fn) {
2746 LowDwVfpRegister src_d = LowDwVfpRegister::from_code(src.low().code());
2748 if (dst == src) {
2760 QwNeonRegister src) {
2761 F64x2ConvertLowHelper(this, dst, src, &Assembler::vcvt_f64_s32);
2765 QwNeonRegister src) {
2766 F64x2ConvertLowHelper(this, dst, src, &Assembler::vcvt_f64_u32);
2770 QwNeonRegister src) {
2771 F64x2ConvertLowHelper(this, dst, src, &Assembler::vcvt_f64_f32);