Lines Matching refs:loc
29 const uint8_t *loc) const override;
39 void relocate(uint8_t *loc, const Relocation &rel,
78 const uint8_t *loc) const { in getRelExpr()
90 warn(getErrorLocation(loc) + in getRelExpr()
194 error(getErrorLocation(loc) + "unknown relocation (" + Twine(type) + in getRelExpr()
214 template <endianness E> static uint32_t readShuffle(const uint8_t *loc) { in readShuffle() argument
221 uint32_t v = read32(loc); in readShuffle()
227 static void writeValue(uint8_t *loc, uint64_t v, uint8_t bitsSize, in writeValue() argument
229 uint32_t instr = read32(loc); in writeValue()
232 write32(loc, data); in writeValue()
236 static void writeShuffleValue(uint8_t *loc, uint64_t v, uint8_t bitsSize, in writeShuffleValue() argument
239 uint16_t *words = (uint16_t *)loc; in writeShuffleValue()
243 writeValue(loc, v, bitsSize, shift); in writeShuffleValue()
250 static void writeMicroRelocation16(uint8_t *loc, uint64_t v, uint8_t bitsSize, in writeMicroRelocation16() argument
252 uint16_t instr = read16(loc); in writeMicroRelocation16()
255 write16(loc, data); in writeMicroRelocation16()
482 calculateMipsRelChain(uint8_t *loc, RelType type, uint64_t val) { in calculateMipsRelChain() argument
503 error(getErrorLocation(loc) + "unsupported relocations combination " + in calculateMipsRelChain()
519 static uint64_t fixupCrossModeJump(uint8_t *loc, RelType type, uint64_t val) { in fixupCrossModeJump() argument
533 uint32_t inst = read32(loc) >> 26; in fixupCrossModeJump()
535 writeValue(loc, 0x1d << 26, 32, 0); in fixupCrossModeJump()
541 uint32_t inst = readShuffle<e>(loc) >> 26; in fixupCrossModeJump()
544 writeShuffleValue<e>(loc, 0x3c << 26, 32, 0); in fixupCrossModeJump()
561 error(getErrorLocation(loc) + in fixupCrossModeJump()
568 void MIPS<ELFT>::relocate(uint8_t *loc, const Relocation &rel, in relocate() argument
574 std::tie(type, val) = calculateMipsRelChain(loc, type, val); in relocate()
577 val = fixupCrossModeJump<ELFT>(loc, type, val); in relocate()
593 write32(loc, val); in relocate()
598 write64(loc, val); in relocate()
601 writeValue(loc, val, 26, 2); in relocate()
608 writeValue(loc, val + 0x8000, 16, 16); in relocate()
610 checkInt(loc, val, 16, rel); in relocate()
611 writeValue(loc, val, 16, 0); in relocate()
616 writeShuffleValue<e>(loc, val + 0x8000, 16, 16); in relocate()
618 checkInt(loc, val, 16, rel); in relocate()
619 writeShuffleValue<e>(loc, val, 16, 0); in relocate()
629 checkInt(loc, val, 16, rel); in relocate()
638 writeValue(loc, val, 16, 0); in relocate()
643 checkInt(loc, val, 16, rel); in relocate()
644 writeShuffleValue<e>(loc, val, 16, 0); in relocate()
652 writeShuffleValue<e>(loc, val, 16, 0); in relocate()
655 checkInt(loc, val, 7, rel); in relocate()
656 writeShuffleValue<e>(loc, val, 7, 2); in relocate()
664 writeValue(loc, val + 0x8000, 16, 16); in relocate()
671 writeShuffleValue<e>(loc, val + 0x8000, 16, 16); in relocate()
674 writeValue(loc, val + 0x80008000, 16, 32); in relocate()
677 writeValue(loc, val + 0x800080008000, 16, 48); in relocate()
684 switch (read32(loc)) { in relocate()
686 write32(loc, 0x04110000 | ((val >> 2) & 0xffff)); in relocate()
689 write32(loc, 0x10000000 | ((val >> 2) & 0xffff)); in relocate()
698 checkAlignment(loc, val, 4, rel); in relocate()
699 checkInt(loc, val, 18, rel); in relocate()
700 writeValue(loc, val, 16, 2); in relocate()
703 checkAlignment(loc, val, 4, rel); in relocate()
704 checkInt(loc, val, 21, rel); in relocate()
705 writeValue(loc, val, 19, 2); in relocate()
708 checkAlignment(loc, val, 4, rel); in relocate()
709 checkInt(loc, val, 23, rel); in relocate()
710 writeValue(loc, val, 21, 2); in relocate()
713 checkAlignment(loc, val, 4, rel); in relocate()
714 checkInt(loc, val, 28, rel); in relocate()
715 writeValue(loc, val, 26, 2); in relocate()
718 writeValue(loc, val, 32, 0); in relocate()
722 checkInt(loc, val, 27, rel); in relocate()
723 writeShuffleValue<e>(loc, val, 26, 1); in relocate()
726 checkInt(loc, val, 8, rel); in relocate()
727 writeMicroRelocation16<e>(loc, val, 7, 1); in relocate()
730 checkInt(loc, val, 11, rel); in relocate()
731 writeMicroRelocation16<e>(loc, val, 10, 1); in relocate()
734 checkInt(loc, val, 17, rel); in relocate()
735 writeShuffleValue<e>(loc, val, 16, 1); in relocate()
738 checkInt(loc, val, 21, rel); in relocate()
739 writeShuffleValue<e>(loc, val, 18, 3); in relocate()
742 checkInt(loc, val, 21, rel); in relocate()
743 writeShuffleValue<e>(loc, val, 19, 2); in relocate()
746 checkInt(loc, val, 22, rel); in relocate()
747 writeShuffleValue<e>(loc, val, 21, 1); in relocate()
750 checkInt(loc, val, 25, rel); in relocate()
751 writeShuffleValue<e>(loc, val, 23, 2); in relocate()