Lines Matching defs:pos

328   DCHECK(pc_ <= reloc_info_writer.pos());  // No overlap.
348 static_cast<int>(reloc_info_writer.pos() - buffer_->start());
448 // generated code. pos() is the position the label refers to.
451 // to be generated; pos() is the position of the last
723 static inline int32_t AddBranchOffset(int pos, Instr instr) {
733 // EndOfChain sentinel is returned directly, not relative to pc or pos.
736 return pos + Assembler::kBranchPCOffset + imm;
811 int Assembler::target_at(int pos, bool is_internal) {
812 Instr instr = instr_at(pos);
817 int32_t instr_address = reinterpret_cast<int32_t>(buffer_start_ + pos);
819 DCHECK(pos > delta);
820 return pos - delta;
829 return (imm18 + pos);
835 return AddBranchOffset(pos, instr);
838 Instr instr_lui = instr_at(pos + 2 * kInstrSize);
839 Instr instr_ori = instr_at(pos + 3 * kInstrSize);
842 // EndOfChain sentinel is returned directly, not relative to pc or pos.
845 return pos + Assembler::kLongBranchPCOffset + imm32;
848 if (IsNal(instr_at(pos + kInstrSize))) {
850 Instr instr_lui = instr_at(pos + 0 * kInstrSize);
851 Instr instr_ori = instr_at(pos + 2 * kInstrSize);
854 // EndOfChain sentinel is returned directly, not relative to pc or pos.
857 return pos + Assembler::kLongBranchPCOffset + imm32;
859 Instr instr1 = instr_at(pos + 0 * kInstrSize);
860 Instr instr2 = instr_at(pos + 1 * kInstrSize);
870 // EndOfChain sentinel is returned directly, not relative to pc or pos.
873 uint32_t instr_address = reinterpret_cast<int32_t>(buffer_start_ + pos);
875 DCHECK(pos > delta);
876 return pos - delta;
882 static inline Instr SetBranchOffset(int32_t pos, int32_t target_pos,
885 int32_t imm = target_pos - (pos + Assembler::kBranchPCOffset);
896 void Assembler::target_at_put(int32_t pos, int32_t target_pos,
898 Instr instr = instr_at(pos);
902 instr_at_put(pos, imm);
909 instr_at_put(pos, target_pos + (Code::kHeaderSize - kHeapObjectTag));
915 instr = SetBranchOffset(pos, target_pos, instr);
916 instr_at_put(pos, instr);
918 Instr instr_lui = instr_at(pos + 2 * kInstrSize);
919 Instr instr_ori = instr_at(pos + 3 * kInstrSize);
923 int32_t imm_short = target_pos - (pos + Assembler::kBranchPCOffset);
929 instr_b = SetBranchOffset(pos, target_pos, instr_b);
931 Instr instr_j = instr_at(pos + 5 * kInstrSize);
939 instr_branch_delay = instr_at(pos + 7 * kInstrSize);
941 instr_at_put(pos + 0 * kInstrSize, instr_b);
942 instr_at_put(pos + 1 * kInstrSize, instr_branch_delay);
944 int32_t imm = target_pos - (pos + Assembler::kLongBranchPCOffset);
950 PatchLuiOriImmediate(pos, imm, instr_lui, 2 * kInstrSize, instr_ori,
955 if (IsNal(instr_at(pos + kInstrSize))) {
956 Instr instr_lui = instr_at(pos + 0 * kInstrSize);
957 Instr instr_ori = instr_at(pos + 2 * kInstrSize);
960 int32_t imm = target_pos - (pos + Assembler::kLongBranchPCOffset);
967 instr_b = SetBranchOffset(pos, target_pos, instr_b);
973 instr_at_put(pos, instr_b);
974 instr_at_put(pos + 1 * kInstrSize, instr_a);
978 PatchLuiOriImmediate(pos, imm, instr_lui, 0 * kInstrSize, instr_ori,
982 Instr instr1 = instr_at(pos + 0 * kInstrSize);
983 Instr instr2 = instr_at(pos + 1 * kInstrSize);
994 instr_at_put(pos + 0 * kInstrSize, instr1 | lui_offset_u);
995 instr_at_put(pos + 1 * kInstrSize, instr2 | jic_offset_u);
997 PatchLuiOriImmediate(pos, imm, instr1, 0 * kInstrSize, instr2,
1008 PrintF("bound label to %d\n", L->pos());
1011 l.link_to(L->pos());
1014 PrintF("@ %d ", l.pos());
1015 Instr instr = instr_at(l.pos());
1024 PrintF("label in inconsistent state (pos = %d)\n", L->pos_);
1028 void Assembler::bind_to(Label* L, int pos) {
1029 DCHECK(0 <= pos && pos <= pc_offset()); // Must have valid binding position.
1040 int32_t fixup_pos = L->pos();
1041 int32_t dist = pos - fixup_pos;
1047 target_at_put(fixup_pos, pos, is_internal);
1060 target_at_put(fixup_pos, pos, false);
1062 target_at_put(fixup_pos, pos, false);
1066 L->bind_to(pos);
1070 if (pos > last_bound_pos_) last_bound_pos_ = pos;
1080 int link = target_at(L->pos(), is_internal);
1091 return pc_offset() - L->pos() < kMaxBranchOffset - 4 * kInstrSize;
1096 return pc_offset() - L->pos() < (1 << (bits + 2 - 1)) - 1 - 5 * kInstrSize;
1382 int32_t Assembler::get_trampoline_entry(int32_t pos) {
1386 if (trampoline_.start() > pos) {
1401 target_pos = L->pos();
1404 target_pos = L->pos(); // L's link.
1422 target_pos = L->pos();
1425 target_pos = L->pos(); // L's link.
1446 target_pos = L->pos();
1449 target_pos = L->pos();
1471 target_pos = L->pos();
1475 target_pos = L->pos(); // L's link.
2346 void Assembler::ins_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2350 GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1, pos, INS);
2353 void Assembler::ext_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2357 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, EXT);
3557 size_t reloc_size = (buffer_start_ + old_size) - reloc_info_writer.pos();
3559 MemMove(reloc_info_writer.pos() + rc_delta, reloc_info_writer.pos(),
3567 reloc_info_writer.Reposition(reloc_info_writer.pos() + rc_delta,
3573 base::Vector<const byte> reloc_info{reloc_info_writer.pos(), reloc_size};
3617 data = reinterpret_cast<uint32_t>(buffer_start_ + label->pos());
3621 internal_reference_positions_.insert(label->pos());