Lines Matching refs:src1

1390 void MacroAssembler::SmiOrIfSmis(Register dst, Register src1, Register src2,
1393 if (dst.is(src1) || dst.is(src2)) {
1394 DCHECK(!src1.is(kScratchRegister));
1396 movp(kScratchRegister, src1);
1401 movp(dst, src1);
1599 void MacroAssembler::JumpIfNotBothSmi(Register src1,
1603 Condition both_smi = CheckBothSmi(src1, src2);
1608 void MacroAssembler::JumpUnlessBothNonNegativeSmi(Register src1,
1612 Condition both_smi = CheckBothNonNegativeSmi(src1, src2);
1785 Register src1,
1789 if (dst.is(src1)) {
1793 // Restore src1.
1798 masm->movp(dst, src1);
1806 Register src1,
1812 SmiAddHelper<Register>(this, dst, src1, src2, on_not_smi_result, near_jump);
1817 Register src1,
1823 SmiAddHelper<Operand>(this, dst, src1, src2, on_not_smi_result, near_jump);
1828 Register src1,
1832 if (!dst.is(src1)) {
1834 movp(kScratchRegister, src1);
1838 leap(dst, Operand(src1, src2, times_1, 0));
1849 Register src1,
1853 if (dst.is(src1)) {
1857 // Restore src1.
1862 masm->movp(dst, src1);
1870 Register src1,
1876 SmiSubHelper<Register>(this, dst, src1, src2, on_not_smi_result, near_jump);
1881 Register src1,
1887 SmiSubHelper<Operand>(this, dst, src1, src2, on_not_smi_result, near_jump);
1894 Register src1,
1898 if (!dst.is(src1)) {
1899 masm->movp(dst, src1);
1906 void MacroAssembler::SmiSub(Register dst, Register src1, Register src2) {
1908 SmiSubNoOverflowHelper<Register>(this, dst, src1, src2);
1913 Register src1,
1915 SmiSubNoOverflowHelper<Operand>(this, dst, src1, src2);
1920 Register src1,
1926 DCHECK(!src1.is(kScratchRegister));
1929 if (dst.is(src1)) {
1931 movp(kScratchRegister, src1); // Create backup for later testing.
1932 SmiToInteger64(dst, src1);
1947 bind(&failure); // Reused failure exit, restores src1.
1948 movp(src1, kScratchRegister);
1956 SmiToInteger64(dst, src1);
1964 // One of src1 and src2 is zero, the check whether the other is
1966 movp(kScratchRegister, src1);
1975 Register src1,
1979 DCHECK(!src1.is(kScratchRegister));
1984 DCHECK(!src1.is(rdx));
1990 if (src1.is(rax)) {
1991 movp(kScratchRegister, src1);
1993 SmiToInteger32(rax, src1);
2005 if (src1.is(rax)) {
2007 movp(src1, kScratchRegister);
2015 // Sign extend src1 into edx:eax.
2021 if (src1.is(rax)) {
2024 movp(src1, kScratchRegister);
2030 if (!dst.is(src1) && src1.is(rax)) {
2031 movp(src1, kScratchRegister);
2038 Register src1,
2043 DCHECK(!src1.is(kScratchRegister));
2047 DCHECK(!src1.is(rdx));
2048 DCHECK(!src1.is(src2));
2053 if (src1.is(rax)) {
2054 movp(kScratchRegister, src1);
2056 SmiToInteger32(rax, src1);
2067 if (src1.is(rax)) {
2068 movp(src1, kScratchRegister);
2078 if (src1.is(rax)) {
2079 movp(src1, kScratchRegister);
2086 testp(src1, src1);
2113 void MacroAssembler::SmiAnd(Register dst, Register src1, Register src2) {
2115 if (!dst.is(src1)) {
2116 movp(dst, src1);
2136 void MacroAssembler::SmiOr(Register dst, Register src1, Register src2) {
2137 if (!dst.is(src1)) {
2138 DCHECK(!src1.is(src2));
2139 movp(dst, src1);
2157 void MacroAssembler::SmiXor(Register dst, Register src1, Register src2) {
2158 if (!dst.is(src1)) {
2159 DCHECK(!src1.is(src2));
2160 movp(dst, src1);
2247 Register src1,
2253 if (!dst.is(src1)) {
2254 movp(dst, src1);
2264 DCHECK(!src1.is(kScratchRegister));
2269 if (src1.is(rcx) || src2.is(rcx)) {
2272 if (dst.is(src1)) {
2276 SmiToInteger32(dst, src1);
2280 // As src1 or src2 could not be dst, we do not need to restore them for
2282 if (src1.is(rcx) || src2.is(rcx)) {
2283 if (src1.is(rcx)) {
2284 movq(src1, kScratchRegister);
2298 Register src1,
2303 DCHECK(!src1.is(kScratchRegister));
2307 if (src1.is(rcx) || src2.is(rcx)) {
2310 if (dst.is(src1)) {
2314 SmiToInteger32(dst, src1);
2318 // As src1 or src2 could not be dst, we do not need to restore them for
2320 if (src1.is(rcx) || src2.is(rcx)) {
2321 if (src1.is(rcx)) {
2322 movq(src1, kScratchRegister);
2335 Register src1,
2338 DCHECK(!src1.is(kScratchRegister));
2343 if (!dst.is(src1)) {
2344 movp(dst, src1);
2353 Register src1,
2358 DCHECK(!src1.is(kScratchRegister));
2360 DCHECK(!dst.is(src1));
2364 Condition not_both_smis = NegateCondition(CheckBothSmi(src1, src2));
2370 andp(kScratchRegister, src1);
2377 // kScratchRegister still holds src1 & kSmiTag, which is either zero or one.
2379 // If src1 is a smi, then scratch register all 1s, else it is all 0s.
2380 movp(dst, src1);
2383 // If src1 is a smi, dst holds src1 ^ src2, else it is zero.
2384 xorp(dst, src1);
2385 // If src1 is a smi, dst is src2, else it is src1, i.e., the non-smi.
2950 void MacroAssembler::Ucomiss(XMMRegister src1, XMMRegister src2) {
2953 vucomiss(src1, src2);
2955 ucomiss(src1, src2);
2960 void MacroAssembler::Ucomiss(XMMRegister src1, const Operand& src2) {
2963 vucomiss(src1, src2);
2965 ucomiss(src1, src2);
2970 void MacroAssembler::Ucomisd(XMMRegister src1, XMMRegister src2) {
2973 vucomisd(src1, src2);
2975 ucomisd(src1, src2);
2980 void MacroAssembler::Ucomisd(XMMRegister src1, const Operand& src2) {
2983 vucomisd(src1, src2);
2985 ucomisd(src1, src2);