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