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
92 ASSERT(kScratchDoubleReg.code() - kDoubleRegZero.code() ==
94 if (index >= kDoubleRegZero.code())
110 // minimal set of features which is also alowed for generated code in the
299 // Patch the code at the current address with the supplied instructions.
306 // Indicate that code has changed.
311 // Patch the code at the current PC with a call to the target address.
314 // Patch the code at the current address with a call to the target.
329 // Verify all Objects referred by code are NOT in new space.
484 const Instr kBlxIp = al | kBlxRegPattern | ip.code();
540 // Set up code descriptor.
758 // Labels refer to positions in the (to be) generated code.
762 // generated code. pos() is the position the label refers to.
764 // Linked labels refer to unknown positions in the code
780 return instr - (Code::kHeaderSize - kHeapObjectTag);
798 // Make label relative to Code* of generated Code object.
799 instr_at_put(pos, target_pos + (Code::kHeaderSize - kHeapObjectTag));
912 // Low-level code emission routines depending on the addressing mode.
1011 // condition code additional instruction conventions can be used.
1033 if (rd.code() != pc.code() && s == LeaveCC) {
1040 emit(cond | 0x30*B20 | rd.code()*B12 |
1067 // condition code), then replace it with a 'ldr rd, [pc]'.
1092 instr |= x.shift_imm_*B7 | x.shift_op_ | x.rm_.code();
1096 instr |= x.rs_.code()*B8 | x.shift_op_ | B4 | x.rm_.code();
1098 emit(instr | rn.code()*B16 | rd.code()*B12);
1131 instr |= B25 | x.shift_imm_*B7 | x.shift_op_ | x.rm_.code();
1134 emit(instr | am | x.rn_.code()*B16 | rd.code()*B12);
1170 instr |= x.rm_.code();
1173 emit(instr | am | x.rn_.code()*B16 | rd.code()*B12);
1181 emit(instr | rn.code()*B16 | rl);
1206 emit(instr | am | x.rn_.code()*B16 | crd.code()*B12 | offset_8);
1243 instr_at_put(at_offset, target_pos + (Code::kHeaderSize - kHeapObjectTag));
1255 // Dead code is a good location to emit the constant pool.
1283 emit(cond | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BLX | target.code());
1290 emit(cond | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BX | target.code());
1362 emit(cond | I | CMP | S | src.code() << 16 | raw_immediate);
1399 emit(cond | 0x34*B20 | reg.code()*B12 | EncodeMovwImmediate(immediate));
1418 emit(cond | A | s | dst.code()*B16 | srcA.code()*B12 |
1419 src2.code()*B8 | B7 | B4 | src1.code());
1426 emit(cond | B22 | B21 | dst.code()*B16 | srcA.code()*B12 |
1427 src2.code()*B8 | B7 | B4 | src1.code());
1435 emit(cond | B26 | B25| B24 | B20 | dst.code()*B16 | 0xf * B12 |
1436 src2.code()*B8 | B4 | src1.code());
1444 emit(cond | s | dst.code()*B16 | src2.code()*B8 | B7 | B4 | src1.code());
1456 emit(cond | B23 | B22 | A | s | dstH.code()*B16 | dstL.code()*B12 |
1457 src2.code()*B8 | B7 | B4 | src1.code());
1469 emit(cond | B23 | B22 | s | dstH.code()*B16 | dstL.code()*B12 |
1470 src2.code()*B8 | B7 | B4 | src1.code());
1482 emit(cond | B23 | A | s | dstH.code()*B16 | dstL.code()*B12 |
1483 src2.code()*B8 | B7 | B4 | src1.code());
1495 emit(cond | B23 | s | dstH.code()*B16 | dstL.code()*B12 |
1496 src2.code()*B8 | B7 | B4 | src1.code());
1504 emit(cond | B24 | B22 | B21 | 15*B16 | dst.code()*B12 |
1505 15*B8 | CLZ | src.code());
1528 emit(cond | 0x6*B24 | 0xe*B20 | satpos*B16 | dst.code()*B12 |
1529 src.shift_imm_*B7 | sh*B6 | 0x1*B4 | src.rm_.code());
1549 emit(cond | 0xf*B23 | B22 | B21 | (width - 1)*B16 | dst.code()*B12 |
1550 lsb*B7 | B6 | B4 | src.code());
1569 emit(cond | 0xf*B23 | B21 | (width - 1)*B16 | dst.code()*B12 |
1570 lsb*B7 | B6 | B4 | src.code());
1585 emit(cond | 0x1f*B22 | msb*B16 | dst.code()*B12 | lsb*B7 | B4 | 0xf);
1604 emit(cond | 0x1f*B22 | msb*B16 | dst.code()*B12 | lsb*B7 | B4 |
1605 src.code());
1623 emit(cond | 0x68*B20 | src1.code()*B16 | dst.code()*B12 |
1624 src2.shift_imm_*B7 | B4 | src2.rm().code());
1643 emit(cond | 0x68*B20 | src1.code()*B16 | dst.code()*B12 |
1644 asr*B7 | B6 | B4 | src2.rm().code());
1663 emit(cond | 0x6E*B20 | 0xF*B16 | dst.code()*B12 |
1664 ((src.shift_imm_ >> 1)&0xC)*B8 | 7*B4 | src.rm().code());
1685 emit(cond | 0x6E*B20 | src1.code()*B16 | dst.code()*B12 |
1686 ((src2.shift_imm_ >> 1) &0xC)*B8 | 7*B4 | src2.rm().code());
1705 emit(cond | 0x6C*B20 | 0xF*B16 | dst.code()*B12 |
1706 ((src.shift_imm_ >> 1)&0xC)*B8 | 7*B4 | src.rm().code());
1713 emit(cond | B24 | s | 15*B16 | dst.code()*B12);
1736 instr = src.rm_.code();
1791 ASSERT_EQ(0, dst1.code() % 2);
1792 ASSERT_EQ(dst1.code() + 1, dst2.code());
1801 ASSERT_EQ(0, src1.code() % 2);
1802 ASSERT_EQ(src1.code() + 1, src2.code());
1822 emit(kSpecialCondition | B26 | B24 | U | B22 | B20 | address.rn().code()*B16 |
1858 // Stops with a non-negative code less than kNumOfWatchedStops support
1860 void Assembler::stop(const char* msg, Condition cond, int32_t code) {
1862 ASSERT(code >= kDefaultStopCode);
1867 if (code >= 0) {
1868 svc(kStopCode + code, cond);
1908 emit(cond | B27 | B26 | B25 | (opcode_1 & 15)*B20 | crn.code()*B16 |
1909 crd.code()*B12 | coproc*B8 | (opcode_2 & 7)*B5 | crm.code());
1931 emit(cond | B27 | B26 | B25 | (opcode_1 & 7)*B21 | crn.code()*B16 |
1932 rd.code()*B12 | coproc*B8 | (opcode_2 & 7)*B5 | B4 | crm.code());
1954 emit(cond | B27 | B26 | B25 | (opcode_1 & 7)*B21 | L | crn.code()*B16 |
1955 rd.code()*B12 | coproc*B8 | (opcode_2 & 7)*B5 | B4 | crm.code());
1986 emit(cond | B27 | B26 | U | l | L | rn.code()*B16 | crd.code()*B12 |
2028 emit(cond | 0xD*B24 | u*B23 | d*B22 | B20 | base.code()*B16 | vd*B12 |
2039 emit(cond | 0xD*B24 | d*B22 | B20 | ip.code()*B16 | vd*B12 | 0xB*B8);
2071 emit(cond | u*B23 | d*B22 | 0xD1*B20 | base.code()*B16 | sd*B12 |
2082 emit(cond | d*B22 | 0xD1*B20 | ip.code()*B16 | sd*B12 | 0xA*B8);
2114 emit(cond | 0xD*B24 | u*B23 | d*B22 | base.code()*B16 | vd*B12 | 0xB*B8 |
2125 emit(cond | 0xD*B24 | d*B22 | ip.code()*B16 | vd*B12 | 0xB*B8);
2156 emit(cond | u*B23 | d*B22 | 0xD0*B20 | base.code()*B16 | sd*B12 |
2167 emit(cond | d*B22 | 0xD0*B20 | ip.code()*B16 | sd*B12 | 0xA*B8);
2189 ASSERT_LE(first.code(), last.code());
2195 int count = last.code() - first.code() + 1;
2197 emit(cond | B27 | B26 | am | d*B22 | B20 | base.code()*B16 | sd*B12 |
2210 ASSERT_LE(first.code(), last.code());
2216 int count = last.code() - first.code() + 1;
2218 emit(cond | B27 | B26 | am | d*B22 | base.code()*B16 | sd*B12 |
2230 ASSERT_LE(first.code(), last.code());
2236 int count = last.code() - first.code() + 1;
2237 emit(cond | B27 | B26 | am | d*B22 | B20 | base.code()*B16 | sd*B12 |
2250 ASSERT_LE(first.code(), last.code());
2256 int count = last.code() - first.code() + 1;
2257 emit(cond | B27 | B26 | am | d*B22 | base.code()*B16 | sd*B12 |
2349 // The code could also randomize the order of values, though
2360 if (dst.code() < 16) {
2361 const LowDwVfpRegister loc = LowDwVfpRegister::from_code(dst.code());
2430 emit(cond | 0xE*B24 | index.index*B21 | vd*B16 | src.code()*B12 | 0xB*B8 |
2446 emit(cond | 0xE*B24 | index.index*B21 | B20 | vn*B16 | dst.code()*B12 |
2462 emit(cond | 0xC*B24 | B22 | src2.code()*B16 |
2463 src1.code()*B12 | 0xB*B8 | m*B5 | B4 | vm);
2478 emit(cond | 0xC*B24 | B22 | B20 | dst2.code()*B16 |
2479 dst1.code()*B12 | 0xB*B8 | m*B5 | B4 | vm);
2493 emit(cond | 0xE*B24 | sn*B16 | src.code()*B12 | 0xA*B8 | n*B7 | B4);
2507 emit(cond | 0xE*B24 | B20 | sn*B16 | dst.code()*B12 | 0xA*B8 | n*B7 | B4);
2628 emit(EncodeVCVT(F64, dst.code(), S32, src.code(), mode, cond));
2636 emit(EncodeVCVT(F32, dst.code(), S32, src.code(), mode, cond));
2644 emit(EncodeVCVT(F64, dst.code(), U32, src.code(), mode, cond));
2652 emit(EncodeVCVT(S32, dst.code(), F64, src.code(), mode, cond));
2660 emit(EncodeVCVT(U32, dst.code(), F64, src.code(), mode, cond));
2668 emit(EncodeVCVT(F64, dst.code(), F32, src.code(), mode, cond));
2676 emit(EncodeVCVT(F32, dst.code(), F64, src.code(), mode, cond));
2879 dst.code()*B12 | 0xA*B8 | B4);
2888 dst.code()*B12 | 0xA*B8 | B4);
2918 emit(0xFU*B28 | 4*B24 | d*B22 | 2*B20 | src.rn().code()*B16 | vd*B12 |
2919 dst.type()*B8 | size*B6 | src.align()*B4 | src.rm().code());
2932 emit(0xFU*B28 | 4*B24 | d*B22 | dst.rn().code()*B16 | vd*B12 | src.type()*B8 |
2933 size*B6 | dst.align()*B4 | dst.rm().code());
3018 // code.
3026 if (!own_buffer_) FATAL("external code buffer is too small");
3060 // None of our relocation types are pc relative pointing outside the code
3061 // buffer nor pc absolute pointing inside the code buffer, so there is no need
3108 // Adjust code for new modes.
3205 // Check that the code buffer is large enough before emitting the constant
3221 // num_pending_reloc_info_ also contains 64-bit entries, the above code