Lines Matching defs:src

8 #include "src/base/bits.h"
9 #include "src/base/division-by-constant.h"
10 #include "src/base/utils/random-number-generator.h"
11 #include "src/codegen/callable.h"
12 #include "src/codegen/code-factory.h"
13 #include "src/codegen/cpu-features.h"
14 #include "src/codegen/external-reference-table.h"
15 #include "src/codegen/interface-descriptors-inl.h"
16 #include "src/codegen/macro-assembler.h"
17 #include "src/codegen/register-configuration.h"
18 #include "src/codegen/string-constants.h"
19 #include "src/codegen/x64/assembler-x64.h"
20 #include "src/codegen/x64/register-x64.h"
21 #include "src/common/globals.h"
22 #include "src/debug/debug.h"
23 #include "src/deoptimizer/deoptimizer.h"
24 #include "src/execution/frames-inl.h"
25 #include "src/heap/memory-chunk.h"
26 #include "src/init/bootstrapper.h"
27 #include "src/logging/counters.h"
28 #include "src/objects/objects-inl.h"
29 #include "src/objects/smi.h"
30 #include "src/sandbox/external-pointer.h"
31 #include "src/snapshot/snapshot.h"
36 #include "src/codegen/x64/macro-assembler-x64.h"
265 void TurboAssembler::SmiUntagField(Register dst, Operand src) {
266 SmiUntag(dst, src);
874 void TurboAssembler::Movq(XMMRegister dst, Register src) {
877 vmovq(dst, src);
879 movq(dst, src);
883 void TurboAssembler::Movq(Register dst, XMMRegister src) {
886 vmovq(dst, src);
888 movq(dst, src);
892 void TurboAssembler::Pextrq(Register dst, XMMRegister src, int8_t imm8) {
895 vpextrq(dst, src, imm8);
898 pextrq(dst, src, imm8);
902 void TurboAssembler::Cvtss2sd(XMMRegister dst, XMMRegister src) {
905 vcvtss2sd(dst, src, src);
907 cvtss2sd(dst, src);
911 void TurboAssembler::Cvtss2sd(XMMRegister dst, Operand src) {
914 vcvtss2sd(dst, dst, src);
916 cvtss2sd(dst, src);
920 void TurboAssembler::Cvtsd2ss(XMMRegister dst, XMMRegister src) {
923 vcvtsd2ss(dst, src, src);
925 cvtsd2ss(dst, src);
929 void TurboAssembler::Cvtsd2ss(XMMRegister dst, Operand src) {
932 vcvtsd2ss(dst, dst, src);
934 cvtsd2ss(dst, src);
938 void TurboAssembler::Cvtlsi2sd(XMMRegister dst, Register src) {
941 vcvtlsi2sd(dst, kScratchDoubleReg, src);
944 cvtlsi2sd(dst, src);
948 void TurboAssembler::Cvtlsi2sd(XMMRegister dst, Operand src) {
951 vcvtlsi2sd(dst, kScratchDoubleReg, src);
954 cvtlsi2sd(dst, src);
958 void TurboAssembler::Cvtlsi2ss(XMMRegister dst, Register src) {
961 vcvtlsi2ss(dst, kScratchDoubleReg, src);
964 cvtlsi2ss(dst, src);
968 void TurboAssembler::Cvtlsi2ss(XMMRegister dst, Operand src) {
971 vcvtlsi2ss(dst, kScratchDoubleReg, src);
974 cvtlsi2ss(dst, src);
978 void TurboAssembler::Cvtqsi2ss(XMMRegister dst, Register src) {
981 vcvtqsi2ss(dst, kScratchDoubleReg, src);
984 cvtqsi2ss(dst, src);
988 void TurboAssembler::Cvtqsi2ss(XMMRegister dst, Operand src) {
991 vcvtqsi2ss(dst, kScratchDoubleReg, src);
994 cvtqsi2ss(dst, src);
998 void TurboAssembler::Cvtqsi2sd(XMMRegister dst, Register src) {
1001 vcvtqsi2sd(dst, kScratchDoubleReg, src);
1004 cvtqsi2sd(dst, src);
1008 void TurboAssembler::Cvtqsi2sd(XMMRegister dst, Operand src) {
1011 vcvtqsi2sd(dst, kScratchDoubleReg, src);
1014 cvtqsi2sd(dst, src);
1018 void TurboAssembler::Cvtlui2ss(XMMRegister dst, Register src) {
1020 movl(kScratchRegister, src);
1024 void TurboAssembler::Cvtlui2ss(XMMRegister dst, Operand src) {
1026 movl(kScratchRegister, src);
1030 void TurboAssembler::Cvtlui2sd(XMMRegister dst, Register src) {
1032 movl(kScratchRegister, src);
1036 void TurboAssembler::Cvtlui2sd(XMMRegister dst, Operand src) {
1038 movl(kScratchRegister, src);
1042 void TurboAssembler::Cvtqui2ss(XMMRegister dst, Register src) {
1044 Cvtqsi2ss(dst, src);
1045 testq(src, src);
1048 // Compute {src/2 | (src&1)} (retain the LSB to avoid rounding errors).
1049 if (src != kScratchRegister) movq(kScratchRegister, src);
1061 void TurboAssembler::Cvtqui2ss(XMMRegister dst, Operand src) {
1062 movq(kScratchRegister, src);
1066 void TurboAssembler::Cvtqui2sd(XMMRegister dst, Register src) {
1068 Cvtqsi2sd(dst, src);
1069 testq(src, src);
1072 // Compute {src/2 | (src&1)} (retain the LSB to avoid rounding errors).
1073 if (src != kScratchRegister) movq(kScratchRegister, src);
1085 void TurboAssembler::Cvtqui2sd(XMMRegister dst, Operand src) {
1086 movq(kScratchRegister, src);
1090 void TurboAssembler::Cvttss2si(Register dst, XMMRegister src) {
1093 vcvttss2si(dst, src);
1095 cvttss2si(dst, src);
1099 void TurboAssembler::Cvttss2si(Register dst, Operand src) {
1102 vcvttss2si(dst, src);
1104 cvttss2si(dst, src);
1108 void TurboAssembler::Cvttsd2si(Register dst, XMMRegister src) {
1111 vcvttsd2si(dst, src);
1113 cvttsd2si(dst, src);
1117 void TurboAssembler::Cvttsd2si(Register dst, Operand src) {
1120 vcvttsd2si(dst, src);
1122 cvttsd2si(dst, src);
1126 void TurboAssembler::Cvttss2siq(Register dst, XMMRegister src) {
1129 vcvttss2siq(dst, src);
1131 cvttss2siq(dst, src);
1135 void TurboAssembler::Cvttss2siq(Register dst, Operand src) {
1138 vcvttss2siq(dst, src);
1140 cvttss2siq(dst, src);
1144 void TurboAssembler::Cvttsd2siq(Register dst, XMMRegister src) {
1147 vcvttsd2siq(dst, src);
1149 cvttsd2siq(dst, src);
1153 void TurboAssembler::Cvttsd2siq(Register dst, Operand src) {
1156 vcvttsd2siq(dst, src);
1158 cvttsd2siq(dst, src);
1165 OperandOrXMMRegister src, Label* fail) {
1170 tasm->Cvttsd2siq(dst, src);
1172 tasm->Cvttss2siq(dst, src);
1182 tasm->Addsd(kScratchDoubleReg, src);
1186 tasm->Addss(kScratchDoubleReg, src);
1202 void TurboAssembler::Cvttsd2uiq(Register dst, Operand src, Label* fail) {
1203 ConvertFloatToUint64<Operand, true>(this, dst, src, fail);
1206 void TurboAssembler::Cvttsd2uiq(Register dst, XMMRegister src, Label* fail) {
1207 ConvertFloatToUint64<XMMRegister, true>(this, dst, src, fail);
1210 void TurboAssembler::Cvttss2uiq(Register dst, Operand src, Label* fail) {
1211 ConvertFloatToUint64<Operand, false>(this, dst, src, fail);
1214 void TurboAssembler::Cvttss2uiq(Register dst, XMMRegister src, Label* fail) {
1215 ConvertFloatToUint64<XMMRegister, false>(this, dst, src, fail);
1218 void TurboAssembler::Cmpeqss(XMMRegister dst, XMMRegister src) {
1221 vcmpeqss(dst, src);
1223 cmpeqss(dst, src);
1227 void TurboAssembler::Cmpeqsd(XMMRegister dst, XMMRegister src) {
1230 vcmpeqsd(dst, src);
1232 cmpeqsd(dst, src);
1244 void TurboAssembler::Cmp(Register dst, int32_t src) {
1245 if (src == 0) {
1248 cmpl(dst, Immediate(src));
1262 void TurboAssembler::SmiTag(Register dst, Register src) {
1263 DCHECK(dst != src);
1265 movl(dst, src);
1267 movq(dst, src);
1283 void TurboAssembler::SmiUntag(Register dst, Register src) {
1284 DCHECK(dst != src);
1286 movsxlq(dst, src);
1288 movq(dst, src);
1297 void TurboAssembler::SmiUntag(Register dst, Operand src) {
1299 movl(dst, Operand(src, kSmiShift / kBitsPerByte));
1305 movsxlq(dst, src);
1307 movq(dst, src);
1329 void TurboAssembler::SmiCompare(Register dst, Smi src) {
1331 Cmp(dst, src);
1334 void TurboAssembler::Cmp(Register dst, Smi src) {
1335 if (src.value() == 0) {
1339 Register constant_reg = GetSmiConstant(src);
1344 void TurboAssembler::SmiCompare(Register dst, Operand src) {
1346 AssertSmi(src);
1347 cmp_tagged(dst, src);
1350 void TurboAssembler::SmiCompare(Operand dst, Register src) {
1352 AssertSmi(src);
1353 cmp_tagged(dst, src);
1356 void TurboAssembler::SmiCompare(Operand dst, Smi src) {
1359 cmpl(Operand(dst, kSmiShift / kBitsPerByte), Immediate(src.value()));
1362 cmpl(dst, Immediate(src));
1366 void TurboAssembler::Cmp(Operand dst, Smi src) {
1368 Register smi_reg = GetSmiConstant(src);
1373 Condition TurboAssembler::CheckSmi(Register src) {
1375 testb(src, Immediate(kSmiTagMask));
1379 Condition TurboAssembler::CheckSmi(Operand src) {
1381 testb(src, Immediate(kSmiTagMask));
1385 void TurboAssembler::JumpIfSmi(Register src, Label* on_smi,
1387 Condition smi = CheckSmi(src);
1391 void TurboAssembler::JumpIfNotSmi(Register src, Label* on_not_smi,
1393 Condition smi = CheckSmi(src);
1397 void TurboAssembler::JumpIfNotSmi(Operand src, Label* on_not_smi,
1399 Condition smi = CheckSmi(src);
1423 SmiIndex TurboAssembler::SmiToIndex(Register dst, Register src, int shift) {
1428 if (dst != src) {
1429 movq(dst, src);
1441 movsxlq(dst, src);
1508 void TurboAssembler::Move(Register dst, Register src) {
1509 if (dst != src) {
1510 movq(dst, src);
1514 void TurboAssembler::Move(Register dst, Operand src) { movq(dst, src); }
1515 void TurboAssembler::Move(Register dst, Immediate src) {
1516 if (src.rmode() == RelocInfo::Mode::NO_INFO) {
1517 Move(dst, src.value());
1519 movl(dst, src);
1523 void TurboAssembler::Move(XMMRegister dst, XMMRegister src) {
1524 if (dst != src) {
1525 Movaps(dst, src);
1557 void TurboAssembler::Move(XMMRegister dst, uint32_t src) {
1558 if (src == 0) {
1561 unsigned nlz = base::bits::CountLeadingZeros(src);
1562 unsigned ntz = base::bits::CountTrailingZeros(src);
1563 unsigned pop = base::bits::CountPopulation(src);
1570 movl(kScratchRegister, Immediate(src));
1576 void TurboAssembler::Move(XMMRegister dst, uint64_t src) {
1577 if (src == 0) {
1580 unsigned nlz = base::bits::CountLeadingZeros(src);
1581 unsigned ntz = base::bits::CountTrailingZeros(src);
1582 unsigned pop = base::bits::CountPopulation(src);
1589 uint32_t lower = static_cast<uint32_t>(src);
1590 uint32_t upper = static_cast<uint32_t>(src >> 32);
1594 movq(kScratchRegister, src);
1791 void TurboAssembler::Push(Register src) { pushq(src); }
1793 void TurboAssembler::Push(Operand src) { pushq(src); }
1795 void MacroAssembler::PushQuad(Operand src) { pushq(src); }
2068 void TurboAssembler::PextrdPreSse41(Register dst, XMMRegister src,
2071 Movd(dst, src);
2075 movq(dst, src);
2081 void PinsrdPreSse41Helper(TurboAssembler* tasm, XMMRegister dst, Op src,
2083 tasm->Movd(kScratchDoubleReg, src);
2094 void TurboAssembler::PinsrdPreSse41(XMMRegister dst, Register src, uint8_t imm8,
2096 PinsrdPreSse41Helper(this, dst, src, imm8, load_pc_offset);
2099 void TurboAssembler::PinsrdPreSse41(XMMRegister dst, Operand src, uint8_t imm8,
2101 PinsrdPreSse41Helper(this, dst, src, imm8, load_pc_offset);
2116 void TurboAssembler::Lzcntl(Register dst, Register src) {
2119 lzcntl(dst, src);
2123 bsrl(dst, src);
2130 void TurboAssembler::Lzcntl(Register dst, Operand src) {
2133 lzcntl(dst, src);
2137 bsrl(dst, src);
2144 void TurboAssembler::Lzcntq(Register dst, Register src) {
2147 lzcntq(dst, src);
2151 bsrq(dst, src);
2158 void TurboAssembler::Lzcntq(Register dst, Operand src) {
2161 lzcntq(dst, src);
2165 bsrq(dst, src);
2172 void TurboAssembler::Tzcntq(Register dst, Register src) {
2175 tzcntq(dst, src);
2179 bsfq(dst, src);
2186 void TurboAssembler::Tzcntq(Register dst, Operand src) {
2189 tzcntq(dst, src);
2193 bsfq(dst, src);
2200 void TurboAssembler::Tzcntl(Register dst, Register src) {
2203 tzcntl(dst, src);
2207 bsfl(dst, src);
2209 Move(dst, 32); // The result of tzcnt is 32 if src = 0.
2213 void TurboAssembler::Tzcntl(Register dst, Operand src) {
2216 tzcntl(dst, src);
2220 bsfl(dst, src);
2222 Move(dst, 32); // The result of tzcnt is 32 if src = 0.
2226 void TurboAssembler::Popcntl(Register dst, Register src) {
2229 popcntl(dst, src);
2235 void TurboAssembler::Popcntl(Register dst, Operand src) {
2238 popcntl(dst, src);
2244 void TurboAssembler::Popcntq(Register dst, Register src) {
2247 popcntq(dst, src);
2253 void TurboAssembler::Popcntq(Register dst, Operand src) {
2256 popcntq(dst, src);
2655 Register src = r8, dest = rsp, num = r9, current = r11;
2656 movq(src, rsp);
2669 Operand(src, current, times_system_pointer_size, 0));