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
60 // If the compiler is allowed to use VFP then we can use VFP too in our code
128 // Patch the code at the current address with the supplied instructions.
135 // Indicate that code has changed.
140 // Patch the code at the current PC with a call to the target address.
143 // Patch the code at the current address with a call to the target.
154 // Verify all Objects referred by code are NOT in new space.
225 al | PostIndex | 4 | LeaveCC | I | sp.code() * B16 | sp.code() * B12;
229 al | B26 | 4 | NegPreIndex | sp.code() * B16;
233 al | B26 | L | 4 | PostIndex | sp.code() * B16;
235 const Instr kMovLrPc = al | MOV | pc.code() | lr.code() * B12;
238 const Instr kLdrPCPattern = al | 5 * B24 | L | pc.code() * B16;
260 al | B26 | L | Offset | fp.code() * B16;
262 al | B26 | Offset | fp.code() * B16;
264 al | B26 | L | NegOffset | fp.code() * B16;
266 al | B26 | NegOffset | fp.code() * B16;
339 // Setup code descriptor.
522 // Labels refer to positions in the (to be) generated code.
526 // generated code. pos() is the position the label refers to.
528 // Linked labels refer to unknown positions in the code
533 // The link chain is terminated by a negative code position (must be aligned)
541 return instr - (Code::kHeaderSize - kHeapObjectTag);
559 // Make label relative to Code* of generated Code object.
560 instr_at_put(pos, target_pos + (Code::kHeaderSize - kHeapObjectTag));
698 // Low-level code emission routines depending on the addressing mode.
784 // condition code additional instruction conventions can be used.
825 // condition code), then replace it with a 'ldr rd, [pc]'.
855 instr |= x.shift_imm_*B7 | x.shift_op_ | x.rm_.code();
859 instr |= x.rs_.code()*B8 | x.shift_op_ | B4 | x.rm_.code();
861 emit(instr | rn.code()*B16 | rd.code()*B12);
894 instr |= B25 | x.shift_imm_*B7 | x.shift_op_ | x.rm_.code();
897 emit(instr | am | x.rn_.code()*B16 | rd.code()*B12);
933 instr |= x.rm_.code();
936 emit(instr | am | x.rn_.code()*B16 | rd.code()*B12);
944 emit(instr | rn.code()*B16 | rl);
969 emit(instr | am | x.rn_.code()*B16 | crd.code()*B12 | offset_8);
1004 instr_at_put(at_offset, target_pos + (Code::kHeaderSize - kHeapObjectTag));
1017 // Dead code is a good location to emit the constant pool.
1045 emit(cond | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BLX | target.code());
1052 emit(cond | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BX | target.code());
1138 emit(cond | I | CMP | S | src.code() << 16 | raw_immediate);
1172 emit(cond | 0x34*B20 | reg.code()*B12 | EncodeMovwImmediate(immediate));
1191 emit(cond | A | s | dst.code()*B16 | srcA.code()*B12 |
1192 src2.code()*B8 | B7 | B4 | src1.code());
1200 emit(cond | s | dst.code()*B16 | src2.code()*B8 | B7 | B4 | src1.code());
1212 emit(cond | B23 | B22 | A | s | dstH.code()*B16 | dstL.code()*B12 |
1213 src2.code()*B8 | B7 | B4 | src1.code());
1225 emit(cond | B23 | B22 | s | dstH.code()*B16 | dstL.code()*B12 |
1226 src2.code()*B8 | B7 | B4 | src1.code());
1238 emit(cond | B23 | A | s | dstH.code()*B16 | dstL.code()*B12 |
1239 src2.code()*B8 | B7 | B4 | src1.code());
1251 emit(cond | B23 | s | dstH.code()*B16 | dstL.code()*B12 |
1252 src2.code()*B8 | B7 | B4 | src1.code());
1260 emit(cond | B24 | B22 | B21 | 15*B16 | dst.code()*B12 |
1261 15*B8 | CLZ | src.code());
1284 emit(cond | 0x6*B24 | 0xe*B20 | satpos*B16 | dst.code()*B12 |
1285 src.shift_imm_*B7 | sh*B6 | 0x1*B4 | src.rm_.code());
1305 emit(cond | 0xf*B23 | B22 | B21 | (width - 1)*B16 | dst.code()*B12 |
1306 lsb*B7 | B6 | B4 | src.code());
1325 emit(cond | 0xf*B23 | B21 | (width - 1)*B16 | dst.code()*B12 |
1326 lsb*B7 | B6 | B4 | src.code());
1341 emit(cond | 0x1f*B22 | msb*B16 | dst.code()*B12 | lsb*B7 | B4 | 0xf);
1360 emit(cond | 0x1f*B22 | msb*B16 | dst.code()*B12 | lsb*B7 | B4 |
1361 src.code());
1368 emit(cond | B24 | s | 15*B16 | dst.code()*B12);
1391 instr = src.rm_.code();
1584 instr_at(pc_ - 1 * kInstrSize) == (kPushRegPattern | src.code() * B12) &&
1587 emit(al | B26 | 0 | Offset | sp.code() * B16 | src.code() * B12);
1630 ASSERT_EQ(0, dst1.code() % 2);
1631 ASSERT_EQ(dst1.code() + 1, dst2.code());
1640 ASSERT_EQ(0, src1.code() % 2);
1641 ASSERT_EQ(src1.code() + 1, src2.code());
1677 // Stops with a non-negative code less than kNumOfWatchedStops support
1679 void Assembler::stop(const char* msg, Condition cond, int32_t code) {
1681 ASSERT(code >= kDefaultStopCode);
1685 if (code >= 0) {
1686 svc(kStopCode + code, cond);
1729 emit(cond | B27 | B26 | B25 | (opcode_1 & 15)*B20 | crn.code()*B16 |
1730 crd.code()*B12 | coproc*B8 | (opcode_2 & 7)*B5 | crm.code());
1752 emit(cond | B27 | B26 | B25 | (opcode_1 & 7)*B21 | crn.code()*B16 |
1753 rd.code()*B12 | coproc*B8 | (opcode_2 & 7)*B5 | B4 | crm.code());
1775 emit(cond | B27 | B26 | B25 | (opcode_1 & 7)*B21 | L | crn.code()*B16 |
1776 rd.code()*B12 | coproc*B8 | (opcode_2 & 7)*B5 | B4 | crm.code());
1807 emit(cond | B27 | B26 | U | l | L | rn.code()*B16 | crd.code()*B12 |
1848 emit(cond | u*B23 | 0xD1*B20 | base.code()*B16 | dst.code()*B12 |
1859 emit(cond | 0xD1*B20 | ip.code()*B16 | dst.code()*B12 | 0xB*B8);
1892 emit(cond | u*B23 | d*B22 | 0xD1*B20 | base.code()*B16 | sd*B12 |
1903 emit(cond | d*B22 | 0xD1*B20 | ip.code()*B16 | sd*B12 | 0xA*B8);
1933 emit(cond | u*B23 | 0xD0*B20 | base.code()*B16 | src.code()*B12 |
1944 emit(cond | 0xD0*B20 | ip.code()*B16 | src.code()*B12 | 0xB*B8);
1976 emit(cond | u*B23 | d*B22 | 0xD0*B20 | base.code()*B16 | sd*B12 |
1987 emit(cond | d*B22 | 0xD0*B20 | ip.code()*B16 | sd*B12 | 0xA*B8);
2010 ASSERT_LE(first.code(), last.code());
2016 int count = last.code() - first.code() + 1;
2017 emit(cond | B27 | B26 | am | d*B22 | B20 | base.code()*B16 | sd*B12 |
2031 ASSERT_LE(first.code(), last.code());
2037 int count = last.code() - first.code() + 1;
2038 emit(cond | B27 | B26 | am | d*B22 | base.code()*B16 | sd*B12 |
2051 ASSERT_LE(first.code(), last.code());
2057 int count = last.code() - first.code() + 1;
2058 emit(cond | B27 | B26 | am | d*B22 | B20 | base.code()*B16 | sd*B12 |
2072 ASSERT_LE(first.code(), last.code());
2078 int count = last.code() - first.code() + 1;
2079 emit(cond | B27 | B26 | am | d*B22 | base.code()*B16 | sd*B12 |
2152 emit(cond | 0xE*B24 | 0xB*B20 | dst.code()*B12 | 0xB*B8 | enc);
2199 dst.code()*B12 | 0x5*B9 | B8 | B6 | src.code());
2213 emit(cond | 0xC*B24 | B22 | src2.code()*B16 |
2214 src1.code()*B12 | 0xB*B8 | B4 | dst.code());
2228 emit(cond | 0xC*B24 | B22 | B20 | dst2.code()*B16 |
2229 dst1.code()*B12 | 0xB*B8 | B4 | src.code());
2244 emit(cond | 0xE*B24 | sn*B16 | src.code()*B12 | 0xA*B8 | n*B7 | B4);
2259 emit(cond | 0xE*B24 | B20 | sn*B16 | dst.code()*B12 | 0xA*B8 | n*B7 | B4);
2381 emit(EncodeVCVT(F64, dst.code(), S32, src.code(), mode, cond));
2390 emit(EncodeVCVT(F32, dst.code(), S32, src.code(), mode, cond));
2399 emit(EncodeVCVT(F64, dst.code(), U32, src.code(), mode, cond));
2408 emit(EncodeVCVT(S32, dst.code(), F64, src.code(), mode, cond));
2417 emit(EncodeVCVT(U32, dst.code(), F64, src.code(), mode, cond));
2426 emit(EncodeVCVT(F64, dst.code(), F32, src.code(), mode, cond));
2435 emit(EncodeVCVT(F32, dst.code(), F64, src.code(), mode, cond));
2442 emit(cond | 0xE*B24 | 0xB*B20 | B16 | dst.code()*B12 |
2443 0x5*B9 | B8 | B6 | src.code());
2450 emit(cond | 0xE*B24 | 0xB*B20 | dst.code()*B12 |
2451 0x5*B9 | B8 | 0x3*B6 | src.code());
2465 emit(cond | 0xE*B24 | 0x3*B20 | src1.code()*B16 |
2466 dst.code()*B12 | 0x5*B9 | B8 | src2.code());
2480 emit(cond | 0xE*B24 | 0x3*B20 | src1.code()*B16 |
2481 dst.code()*B12 | 0x5*B9 | B8 | B6 | src2.code());
2495 emit(cond | 0xE*B24 | 0x2*B20 | src1.code()*B16 |
2496 dst.code()*B12 | 0x5*B9 | B8 | src2.code());
2510 emit(cond | 0xE*B24 | B23 | src1.code()*B16 |
2511 dst.code()*B12 | 0x5*B9 | B8 | src2.code());
2524 src1.code()*B12 | 0x5*B9 | B8 | B6 | src2.code());
2538 src1.code()*B12 | 0x5*B9 | B8 | B6);
2548 dst.code()*B12 | 0xA*B8 | B4);
2558 dst.code()*B12 | 0xA*B8 | B4);
2569 dst.code()*B12 | 0x5*B9 | B8 | 3*B6 | src.code());
2624 if (!own_buffer_) FATAL("external code buffer is too small");
2658 // None of our relocation types are pc relative pointing outside the code
2659 // buffer nor pc absolute pointing inside the code buffer, so there is no need
2699 // Adjust code for new modes.
2743 // emitted (e.g. --debug-code and many static references).
2748 // the code generation will test every kCheckConstIntervalInst.
2778 // Check that the code buffer is large enough before emitting the constant
2812 (2*B25 | P | U | pc.code()*B16));