Lines Matching refs:code
8 // - Redistributions of source code must retain the above copyright notice,
33 // The original source code covered by the above license above has been
486 const Instr kPushRegPattern = al | B26 | 4 | NegPreIndex | sp.code() * B16;
489 const Instr kPopRegPattern = al | B26 | L | 4 | PostIndex | sp.code() * B16;
492 const Instr kLdrPCImmedPattern = 5 * B24 | L | pc.code() * B16;
500 const Instr kVldrDPCPattern = 13 * B24 | L | pc.code() * B16 | 11 * B8;
505 const Instr kBlxIp = al | kBlxRegPattern | ip.code();
525 const Instr kLdrRegFpOffsetPattern = al | B26 | L | Offset | fp.code() * B16;
526 const Instr kStrRegFpOffsetPattern = al | B26 | Offset | fp.code() * B16;
528 al | B26 | L | NegOffset | fp.code() * B16;
529 const Instr kStrRegFpNegOffsetPattern = al | B26 | NegOffset | fp.code() * B16;
571 // metadata table builders (safepoint, handler, constant pool, code
583 // Set up code descriptor.
782 // Labels refer to positions in the (to be) generated code.
786 // generated code. pos() is the position the label refers to.
788 // Linked labels refer to unknown positions in the code
820 // Load the position of the label relative to the generated code object
823 // The existing code must be a single 24-bit label chain link, followed by
831 DCHECK(IsNop(instr_at(pos + kInstrSize), dst.code()));
833 DCHECK(IsNop(instr_at(pos + 2 * kInstrSize), dst.code()));
1028 // Low-level code emission routines depending on the addressing mode.
1179 // code, the constant pool or immediate load is enough, otherwise we need
1205 if (target.code() != rd.code()) {
1285 emit(instr | rn.code() * B16);
1290 emit(instr | rd.code() * B12);
1292 emit(instr | rn.code() * B16 | rd.code() * B12);
1312 *instr |= x.shift_imm_ * B7 | x.shift_op_ | x.rm_.code();
1317 *instr |= x.rs_.code() * B8 | x.shift_op_ | B4 | x.rm_.code();
1357 instr |= B25 | x.shift_imm_ * B7 | x.shift_op_ | x.rm_.code();
1360 emit(instr | am | x.rn_.code() * B16 | rd.code() * B12);
1407 instr |= x.rm_.code();
1410 emit(instr | am | x.rn_.code() * B16 | rd.code() * B12);
1417 emit(instr | rn.code() * B16 | rl.bits());
1440 emit(instr | am | x.rn_.code() * B16 | crd.code() * B12 | offset_8);
1476 // Dead code is a good location to emit the constant pool.
1511 emit(cond | B24 | B21 | 15 * B16 | 15 * B12 | 15 * B8 | BLX | target.code());
1516 emit(cond | B24 | B21 | 15 * B16 | 15 * B12 | 15 * B8 | BX | target.code());
1619 emit(cond | I | CMP | S | src.code() << 16 | raw_immediate);
1651 // Emit the link to the label in the code stream followed by extra nop
1661 // of the code.
1678 nop(dst.code());
1680 nop(dst.code());
1687 emit(cond | 0x30 * B20 | reg.code() * B12 | EncodeMovwImmediate(immediate));
1692 emit(cond | 0x34 * B20 | reg.code() * B12 | EncodeMovwImmediate(immediate));
1735 emit(cond | A | s | dst.code() * B16 | srcA.code() * B12 | src2.code() * B8 |
1736 B7 | B4 | src1.code());
1743 emit(cond | B22 | B21 | dst.code() * B16 | srcA.code() * B12 |
1744 src2.code() * B8 | B7 | B4 | src1.code());
1751 emit(cond | B26 | B25 | B24 | B20 | dst.code() * B16 | 0xF * B12 |
1752 src2.code() * B8 | B4 | src1.code());
1759 emit(cond | B26 | B25 | B24 | B21 | B20 | dst.code() * B16 | 0xF * B12 |
1760 src2.code() * B8 | B4 | src1.code());
1767 emit(cond | s | dst.code() * B16 | src2.code() * B8 | B7 | B4 | src1.code());
1773 emit(cond | B26 | B25 | B24 | B22 | B20 | dst.code() * B16 |
1774 srcA.code() * B12 | src2.code() * B8 | B4 | src1.code());
1780 emit(cond | B26 | B25 | B24 | B22 | B20 | dst.code() * B16 | 0xF * B12 |
1781 src2.code() * B8 | B4 | src1.code());
1788 emit(cond | B23 | B22 | A | s | dstH.code() * B16 | dstL.code() * B12 |
1789 src2.code() * B8 | B7 | B4 | src1.code());
1796 emit(cond | B23 | B22 | s | dstH.code() * B16 | dstL.code() * B12 |
1797 src2.code() * B8 | B7 | B4 | src1.code());
1804 emit(cond | B23 | A | s | dstH.code() * B16 | dstL.code() * B12 |
1805 src2.code() * B8 | B7 | B4 | src1.code());
1812 emit(cond | B23 | s | dstH.code() * B16 | dstL.code() * B12 |
1813 src2.code() * B8 | B7 | B4 | src1.code());
1819 emit(cond | B24 | B22 | B21 | 15 * B16 | dst.code() * B12 | 15 * B8 | CLZ |
1820 src.code());
1838 emit(cond | 0x6 * B24 | 0xE * B20 | satpos * B16 | dst.code() * B12 |
1839 src.shift_imm_ * B7 | sh * B6 | 0x1 * B4 | src.rm_.code());
1854 emit(cond | 0xF * B23 | B22 | B21 | (width - 1) * B16 | dst.code() * B12 |
1855 lsb * B7 | B6 | B4 | src.code());
1869 emit(cond | 0xF * B23 | B21 | (width - 1) * B16 | dst.code() * B12 |
1870 lsb * B7 | B6 | B4 | src.code());
1883 emit(cond | 0x1F * B22 | msb * B16 | dst.code() * B12 | lsb * B7 | B4 | 0xF);
1897 emit(cond | 0x1F * B22 | msb * B16 | dst.code() * B12 | lsb * B7 | B4 |
1898 src.code());
1912 emit(cond | 0x68 * B20 | src1.code() * B16 | dst.code() * B12 |
1913 src2.shift_imm_ * B7 | B4 | src2.rm().code());
1928 emit(cond | 0x68 * B20 | src1.code() * B16 | dst.code() * B12 | asr * B7 |
1929 B6 | B4 | src2.rm().code());
1939 emit(cond | 0x6A * B20 | 0xF * B16 | dst.code() * B12 |
1940 ((rotate >> 1) & 0xC) * B8 | 7 * B4 | src.code());
1952 emit(cond | 0x6A * B20 | src1.code() * B16 | dst.code() * B12 |
1953 ((rotate >> 1) & 0xC) * B8 | 7 * B4 | src2.code());
1963 emit(cond | 0x6B * B20 | 0xF * B16 | dst.code() * B12 |
1964 ((rotate >> 1) & 0xC) * B8 | 7 * B4 | src.code());
1976 emit(cond | 0x6B * B20 | src1.code() * B16 | dst.code() * B12 |
1977 ((rotate >> 1) & 0xC) * B8 | 7 * B4 | src2.code());
1987 emit(cond | 0x6E * B20 | 0xF * B16 | dst.code() * B12 |
1988 ((rotate >> 1) & 0xC) * B8 | 7 * B4 | src.code());
2000 emit(cond | 0x6E * B20 | src1.code() * B16 | dst.code() * B12 |
2001 ((rotate >> 1) & 0xC) * B8 | 7 * B4 | src2.code());
2011 emit(cond | 0x6C * B20 | 0xF * B16 | dst.code() * B12 |
2012 ((rotate >> 1) & 0xC) * B8 | 7 * B4 | src.code());
2022 emit(cond | 0x6F * B20 | 0xF * B16 | dst.code() * B12 |
2023 ((rotate >> 1) & 0xC) * B8 | 7 * B4 | src.code());
2035 emit(cond | 0x6F * B20 | src1.code() * B16 | dst.code() * B12 |
2036 ((rotate >> 1) & 0xC) * B8 | 7 * B4 | src2.code());
2045 emit(cond | 0x6FF * B16 | dst.code() * B12 | 0xF3 * B4 | src.code());
2053 emit(cond | 0x6BF * B16 | dst.code() * B12 | 0xF3 * B4 | src.code());
2059 emit(cond | B24 | s | 15 * B16 | dst.code() * B12);
2084 instr = src.rm_.code();
2126 DCHECK_EQ(0, dst1.code() % 2);
2127 DCHECK_EQ(dst1.code() + 1, dst2.code());
2135 DCHECK_EQ(0, src1.code() % 2);
2136 DCHECK_EQ(src1.code() + 1, src2.code());
2147 emit(cond | B26 | am | L | pc.code() * B16 | dst.code() * B12 | imm12);
2156 emit(cond | B24 | B23 | B20 | src.code() * B16 | dst.code() * B12 | 0xF9F);
2169 emit(cond | B24 | B23 | dst.code() * B16 | src1.code() * B12 | 0xF9 * B4 |
2170 src2.code());
2178 emit(cond | B24 | B23 | B22 | B20 | src.code() * B16 | dst.code() * B12 |
2192 emit(cond | B24 | B23 | B22 | dst.code() * B16 | src1.code() * B12 |
2193 0xF9 * B4 | src2.code());
2201 emit(cond | B24 | B23 | B22 | B21 | B20 | src.code() * B16 |
2202 dst.code() * B12 | 0xF9F);
2215 emit(cond | B24 | B23 | B22 | B21 | dst.code() * B16 | src1.code() * B12 |
2216 0xF9 * B4 | src2.code());
2225 DCHECK_EQ(0, dst1.code() % 2);
2226 DCHECK_EQ(dst1.code() + 1, dst2.code());
2227 emit(cond | B24 | B23 | B21 | B20 | src.code() * B16 | dst1.code() * B12 |
2237 DCHECK_EQ(0, src1.code() % 2);
2238 DCHECK_EQ(src1.code() + 1, src2.code());
2239 emit(cond | B24 | B23 | B21 | dst.code() * B16 | res.code() * B12 |
2240 0xF9 * B4 | src1.code());
2258 address.rn().code() * B16 | 0xF * B12 | offset);
2286 // Stops with a non-negative code less than kNumOfWatchedStops support
2288 void Assembler::stop(Condition cond, int32_t code) {
2290 DCHECK_GE(code, kDefaultStopCode);
2293 if (code >= 0) {
2294 svc(kStopCode + code, cond);
2365 emit(cond | B27 | B26 | B25 | (opcode_1 & 15) * B20 | crn.code() * B16 |
2366 crd.code() * B12 | coproc * B8 | (opcode_2 & 7) * B5 | crm.code());
2378 emit(cond | B27 | B26 | B25 | (opcode_1 & 7) * B21 | crn.code() * B16 |
2379 rd.code() * B12 | coproc * B8 | (opcode_2 & 7) * B5 | B4 | crm.code());
2391 emit(cond | B27 | B26 | B25 | (opcode_1 & 7) * B21 | L | crn.code() * B16 |
2392 rd.code() * B12 | coproc * B8 | (opcode_2 & 7) * B5 | B4 | crm.code());
2409 emit(cond | B27 | B26 | U | l | L | rn.code() * B16 | crd.code() * B12 |
2443 emit(cond | 0xD * B24 | u * B23 | d * B22 | B20 | base.code() * B16 |
2456 emit(cond | 0xD * B24 | d * B22 | B20 | scratch.code() * B16 | vd * B12 |
2492 emit(cond | u * B23 | d * B22 | 0xD1 * B20 | base.code() * B16 | sd * B12 |
2505 emit(cond | d * B22 | 0xD1 * B20 | scratch.code() * B16 | sd * B12 |
2542 emit(cond | 0xD * B24 | u * B23 | d * B22 | base.code() * B16 | vd * B12 |
2555 emit(cond | 0xD * B24 | d * B22 | scratch.code() * B16 | vd * B12 |
2591 emit(cond | u * B23 | d * B22 | 0xD0 * B20 | base.code() * B16 | sd * B12 |
2604 emit(cond | d * B22 | 0xD0 * B20 | scratch.code() * B16 | sd * B12 |
2628 DCHECK_LE(first.code(), last.code());
2635 int count = last.code() - first.code() + 1;
2637 emit(cond | B27 | B26 | am | d * B22 | B20 | base.code() * B16 | sd * B12 |
2646 DCHECK_LE(first.code(), last.code());
2653 int count = last.code() - first.code() + 1;
2655 emit(cond | B27 | B26 | am | d * B22 | base.code() * B16 | sd * B12 |
2664 DCHECK_LE(first.code(), last.code());
2670 int count = last.code() - first.code() + 1;
2671 emit(cond | B27 | B26 | am | d * B22 | B20 | base.code() * B16 | sd * B12 |
2680 DCHECK_LE(first.code(), last.code());
2686 int count = last.code() - first.code() + 1;
2687 emit(cond | B27 | B26 | am | d * B22 | base.code() * B16 | sd * B12 |
2918 emit(cond | 0xC * B24 | B22 | src2.code() * B16 | src1.code() * B12 |
2932 emit(cond | 0xC * B24 | B22 | B20 | dst2.code() * B16 | dst1.code() * B12 |
2945 emit(cond | 0xE * B24 | sn * B16 | src.code() * B12 | 0xA * B8 | n * B7 | B4);
2957 emit(cond | 0xE * B24 | B20 | sn * B16 | dst.code() * B12 | 0xA * B8 |
3058 emit(EncodeVCVT(F64, dst.code(), S32, src.code(), mode, cond));
3063 emit(EncodeVCVT(F32, dst.code(), S32, src.code(), mode, cond));
3069 emit(EncodeVCVT(F64, dst.code(), U32, src.code(), mode, cond));
3074 emit(EncodeVCVT(F32, dst.code(), U32, src.code(), mode, cond));
3079 emit(EncodeVCVT(S32, dst.code(), F32, src.code(), mode, cond));
3084 emit(EncodeVCVT(U32, dst.code(), F32, src.code(), mode, cond));
3090 emit(EncodeVCVT(S32, dst.code(), F64, src.code(), mode, cond));
3096 emit(EncodeVCVT(U32, dst.code(), F64, src.code(), mode, cond));
3102 emit(EncodeVCVT(F64, dst.code(), F32, src.code(), mode, cond));
3108 emit(EncodeVCVT(F32, dst.code(), F64, src.code(), mode, cond));
3617 emit(cond | 0xE * B24 | 0xE * B20 | B16 | dst.code() * B12 | 0xA * B8 | B4);
3624 emit(cond | 0xE * B24 | 0xF * B20 | B16 | dst.code() * B12 | 0xA * B8 | B4);
3767 emit(0xFU * B28 | 4 * B24 | d * B22 | 2 * B20 | src.rn().code() * B16 |
3769 src.rm().code());
3790 src.rn().code() * B16 | vd * B12 | size * B10 | index_align * B4 |
3791 src.rm().code());
3801 src.rn().code() * B16 | vd * B12 | 0xC * B8 | size * B6 |
3802 dst.length() * B5 | src.rm().code());
3813 emit(0xFU * B28 | 4 * B24 | d * B22 | dst.rn().code() * B16 | vd * B12 |
3814 src.type() * B8 | size * B6 | dst.align() * B4 | dst.rm().code());
3829 emit(0xFU * B28 | 9 * B23 | d * B22 | dst.rn().code() * B16 | vd * B12 |
3830 size * B10 | index_align * B4 | dst.rm().code());
3899 emit(0xEEu * B24 | vd * B16 | src.code() * B12 | 0xB * B8 | d * B7 | B4 |
3913 emit(0xEEu * B24 | u * B23 | B20 | vn * B16 | dst.code() * B12 | 0xB * B8 |
3942 emit(al | 0x1D * B23 | B * B22 | B21 | vd * B16 | src.code() * B12 |
3948 void NeonSplitCode(NeonRegType type, int code, int* vm, int* m, int* encoding) {
3950 DwVfpRegister::split_code(code, vm, m);
3953 QwNeonRegister::split_code(code, vm, m);
3979 emit(EncodeNeonDupOp(size, NEON_D, dst.code(), src, index));
3986 emit(EncodeNeonDupOp(size, NEON_Q, dst.code(), src, index));
4172 emit(EncodeNeonUnaryOp(VMVN, NEON_Q, Neon8, dst.code(), src.code()));
4180 emit(EncodeNeonUnaryOp(VSWP, NEON_D, Neon8, dst.code(), src.code()));
4187 emit(EncodeNeonUnaryOp(VSWP, NEON_Q, Neon8, dst.code(), src.code()));
4194 emit(EncodeNeonUnaryOp(VABSF, NEON_Q, Neon32, dst.code(), src.code()));
4201 emit(EncodeNeonUnaryOp(VABS, NEON_Q, size, dst.code(), src.code()));
4208 emit(EncodeNeonUnaryOp(VNEGF, NEON_Q, Neon32, dst.code(), src.code()));
4215 emit(EncodeNeonUnaryOp(VNEG, NEON_Q, size, dst.code(), src.code()));
4268 emit(EncodeNeonBinaryBitwiseOp(VAND, NEON_Q, dst.code(), src1.code(),
4269 src2.code()));
4277 emit(EncodeNeonBinaryBitwiseOp(VBIC, NEON_Q, dst.code(), src1.code(),
4278 src2.code()));
4286 emit(EncodeNeonBinaryBitwiseOp(VBSL, NEON_Q, dst.code(), src1.code(),
4287 src2.code()));
4295 emit(EncodeNeonBinaryBitwiseOp(VEOR, NEON_D, dst.code(), src1.code(),
4296 src2.code()));
4304 emit(EncodeNeonBinaryBitwiseOp(VEOR, NEON_Q, dst.code(), src1.code(),
4305 src2.code()));
4313 emit(EncodeNeonBinaryBitwiseOp(VORR, NEON_Q, dst.code(), src1.code(),
4314 src2.code()));
4322 emit(EncodeNeonBinaryBitwiseOp(VORN, NEON_Q, dst.code(), src1.code(),
4323 src2.code()));
4679 dst.code(), src.code(), shift));
4687 emit(EncodeNeonShiftRegisterOp(VSHL, dt, NEON_Q, dst.code(), src.code(),
4688 shift.code()));
4697 dst.code(), src.code(), shift));
4706 dst.code(), src.code(), shift));
4714 emit(EncodeNeonShiftOp(VSLI, size, false, NEON_D, dst.code(), src.code(),
4723 emit(EncodeNeonShiftOp(VSRI, size, false, NEON_D, dst.code(), src.code(),
4733 dst.code(), src.code(), imm));
4740 emit(EncodeNeonUnaryOp(VRECPE, NEON_Q, Neon32, dst.code(), src.code()));
4747 emit(EncodeNeonUnaryOp(VRSQRTE, NEON_Q, Neon32, dst.code(), src.code()));
4842 emit(EncodeNeonUnaryOp(VRINTM, NEON_Q, NeonSize(dt), dst.code(), src.code()));
4850 emit(EncodeNeonUnaryOp(VRINTN, NEON_Q, NeonSize(dt), dst.code(), src.code()));
4858 emit(EncodeNeonUnaryOp(VRINTP, NEON_Q, NeonSize(dt), dst.code(), src.code()));
4866 emit(EncodeNeonUnaryOp(VRINTZ, NEON_Q, NeonSize(dt), dst.code(), src.code()));
4899 emit(EncodeNeonUnaryOp(VCEQ0, NEON_Q, size, dst.code(), src1.code()));
4940 emit(EncodeNeonUnaryOp(VCLT0, NEON_Q, size, dst.code(), src.code()));
4974 emit(EncodeNeonUnaryOp(VZIP, NEON_D, size, src1.code(), src2.code()));
4982 emit(EncodeNeonUnaryOp(VZIP, NEON_Q, size, src1.code(), src2.code()));
4992 emit(EncodeNeonUnaryOp(VUZP, NEON_D, size, src1.code(), src2.code()));
5000 emit(EncodeNeonUnaryOp(VUZP, NEON_Q, size, src1.code(), src2.code()));
5007 emit(EncodeNeonUnaryOp(VREV16, NEON_Q, size, dst.code(), src.code()));
5014 emit(EncodeNeonUnaryOp(VREV32, NEON_Q, size, dst.code(), src.code()));
5021 emit(EncodeNeonUnaryOp(VREV64, NEON_Q, size, dst.code(), src.code()));
5028 emit(EncodeNeonUnaryOp(VTRN, NEON_D, size, src1.code(), src2.code()));
5035 emit(EncodeNeonUnaryOp(VTRN, NEON_Q, size, src1.code(), src2.code()));
5043 NeonDataTypeToSize(dt), dst.code(), src.code()));
5051 NeonDataTypeToSize(dt), dst.code(), src.code()));
5065 emit(EncodeNeonUnaryOp(VCNT, NEON_Q, Neon8, dst.code(), src.code()));
5182 // code.
5221 // None of our relocation types are pc relative pointing outside the code
5222 // buffer nor pc absolute pointing inside the code buffer, so there is no need
5379 // Check that the code buffer is large enough before emitting the constant
5416 // Check that the code buffer is large enough before emitting the constant
5486 // Check that the code was patched as expected.