Lines Matching defs:pos

306   DCHECK(pc_ <= reloc_info_writer.pos());  // No overlap.
326 static_cast<int>(reloc_info_writer.pos() - buffer_->start());
426 // generated code. pos() is the position the label refers to.
429 // to be generated; pos() is the position of the last
675 static inline int32_t AddBranchOffset(int pos, Instr instr) {
685 // EndOfChain sentinel is returned directly, not relative to pc or pos.
688 return pos + Assembler::kBranchPCOffset + imm;
692 int Assembler::target_at(int pos, bool is_internal) {
694 int64_t* p = reinterpret_cast<int64_t*>(buffer_start_ + pos);
702 DCHECK(pos > delta);
703 return pos - delta;
706 Instr instr = instr_at(pos);
713 return (imm18 + pos);
722 return AddBranchOffset(pos, instr);
725 Instr instr_lui = instr_at(pos + 2 * kInstrSize);
726 Instr instr_ori = instr_at(pos + 3 * kInstrSize);
732 // EndOfChain sentinel is returned directly, not relative to pc or pos.
735 return pos + Assembler::kLongBranchPCOffset + imm32;
737 if (IsNal(instr_at(pos + kInstrSize))) {
739 Instr instr_lui = instr_at(pos + 0 * kInstrSize);
740 Instr instr_ori = instr_at(pos + 2 * kInstrSize);
746 // EndOfChain sentinel is returned directly, not relative to pc or pos.
749 return pos + Assembler::kLongBranchPCOffset + imm32;
751 Instr instr_lui = instr_at(pos + 0 * kInstrSize);
752 Instr instr_ori = instr_at(pos + 1 * kInstrSize);
753 Instr instr_ori2 = instr_at(pos + 3 * kInstrSize);
765 // EndOfChain sentinel is returned directly, not relative to pc or pos.
768 uint64_t instr_address = reinterpret_cast<int64_t>(buffer_start_ + pos);
771 DCHECK(pos > delta);
772 return pos - delta;
779 // EndOfChain sentinel is returned directly, not relative to pc or pos.
784 return pos + delta;
789 static inline Instr SetBranchOffset(int32_t pos, int32_t target_pos,
792 int32_t imm = target_pos - (pos + Assembler::kBranchPCOffset);
803 void Assembler::target_at_put(int pos, int target_pos, bool is_internal) {
806 *reinterpret_cast<uint64_t*>(buffer_start_ + pos) = imm;
809 Instr instr = instr_at(pos);
814 instr_at_put(pos, target_pos + (Code::kHeaderSize - kHeapObjectTag));
819 instr = SetBranchOffset(pos, target_pos, instr);
820 instr_at_put(pos, instr);
822 if (IsNal(instr_at(pos + kInstrSize))) {
823 Instr instr_lui = instr_at(pos + 0 * kInstrSize);
824 Instr instr_ori = instr_at(pos + 2 * kInstrSize);
827 int32_t imm = target_pos - (pos + Assembler::kLongBranchPCOffset);
834 instr_b = SetBranchOffset(pos, target_pos, instr_b);
840 instr_at_put(pos, instr_b);
841 instr_at_put(pos + 1 * kInstrSize, instr_a);
846 instr_at_put(pos + 0 * kInstrSize,
848 instr_at_put(pos + 2 * kInstrSize, instr_ori | (imm & kImm16Mask));
851 Instr instr_lui = instr_at(pos + 0 * kInstrSize);
852 Instr instr_ori = instr_at(pos + 1 * kInstrSize);
853 Instr instr_ori2 = instr_at(pos + 3 * kInstrSize);
864 instr_at_put(pos + 0 * kInstrSize,
866 instr_at_put(pos + 1 * kInstrSize,
868 instr_at_put(pos + 3 * kInstrSize, instr_ori2 | (imm & kImm16Mask));
871 Instr instr_lui = instr_at(pos + 2 * kInstrSize);
872 Instr instr_ori = instr_at(pos + 3 * kInstrSize);
876 int32_t imm_short = target_pos - (pos + Assembler::kBranchPCOffset);
882 instr_b = SetBranchOffset(pos, target_pos, instr_b);
884 Instr instr_j = instr_at(pos + 5 * kInstrSize);
892 instr_branch_delay = instr_at(pos + 7 * kInstrSize);
894 instr_at_put(pos, instr_b);
895 instr_at_put(pos + 1 * kInstrSize, instr_branch_delay);
897 int32_t imm = target_pos - (pos + Assembler::kLongBranchPCOffset);
903 instr_at_put(pos + 2 * kInstrSize,
905 instr_at_put(pos + 3 * kInstrSize, instr_ori | (imm & kImm16Mask));
908 int32_t imm28 = target_pos - pos;
916 instr_at_put(pos, mark | (imm26 & kImm26Mask));
918 int32_t imm28 = target_pos - pos;
926 instr_at_put(pos, instr | (imm26 & kImm26Mask));
934 PrintF("bound label to %d\n", L->pos());
937 l.link_to(L->pos());
940 PrintF("@ %d ", l.pos());
941 Instr instr = instr_at(l.pos());
950 PrintF("label in inconsistent state (pos = %d)\n", L->pos_);
954 void Assembler::bind_to(Label* L, int pos) {
955 DCHECK(0 <= pos && pos <= pc_offset()); // Must have valid binding position.
966 int fixup_pos = L->pos();
967 int dist = pos - fixup_pos;
973 target_at_put(fixup_pos, pos, is_internal);
986 target_at_put(fixup_pos, pos, false);
990 target_at_put(fixup_pos, pos, false);
994 L->bind_to(pos);
998 if (pos > last_bound_pos_) last_bound_pos_ = pos;
1008 int link = target_at(L->pos(), is_internal);
1019 return pc_offset() - L->pos() < kMaxBranchOffset - 4 * kInstrSize;
1024 return ((pc_offset() - L->pos()) <
1311 int32_t Assembler::get_trampoline_entry(int32_t pos) {
1314 if (trampoline_.start() > pos) {
1328 target_pos = L->pos();
1331 target_pos = L->pos(); // L's link.
1349 target_pos = L->pos();
1352 target_pos = L->pos(); // L's link.
1369 target_pos = L->pos();
1372 target_pos = L->pos(); // L's link.
1390 target_pos = L->pos();
1393 target_pos = L->pos();
1415 target_pos = L->pos();
1419 target_pos = L->pos(); // L's link.
2547 void Assembler::ins_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2551 GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1, pos, INS);
2554 void Assembler::dins_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2558 GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1, pos, DINS);
2561 void Assembler::dinsm_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2565 GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1 - 32, pos, DINSM);
2568 void Assembler::dinsu_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2572 GenInstrRegister(SPECIAL3, rs, rt, pos + size - 1 - 32, pos - 32, DINSU);
2575 void Assembler::ext_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2579 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, EXT);
2582 void Assembler::dext_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2586 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos, DEXT);
2589 void Assembler::dextm_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2593 GenInstrRegister(SPECIAL3, rs, rt, size - 1 - 32, pos, DEXTM);
2596 void Assembler::dextu_(Register rt, Register rs, uint16_t pos, uint16_t size) {
2600 GenInstrRegister(SPECIAL3, rs, rt, size - 1, pos - 32, DEXTU);
3758 size_t reloc_size = (buffer_start_ + old_size) - reloc_info_writer.pos();
3760 MemMove(reloc_info_writer.pos() + rc_delta, reloc_info_writer.pos(),
3768 reloc_info_writer.Reposition(reloc_info_writer.pos() + rc_delta,
3774 base::Vector<const byte> reloc_info{reloc_info_writer.pos(), reloc_size};
3817 data = reinterpret_cast<uint64_t>(buffer_start_ + label->pos());
3821 internal_reference_positions_.insert(label->pos());