Lines Matching refs:val
44 uint64_t val) const override;
426 static uint32_t rotr32(uint32_t val, uint32_t amt) { in rotr32() argument
428 return (val >> amt) | (val << ((32 - amt) & 31)); in rotr32()
432 uint32_t val) { in getRemAndLZForGroup() argument
435 lz = llvm::countLeadingZeros(val) & ~1; in getRemAndLZForGroup()
436 rem = val; in getRemAndLZForGroup()
439 val &= 0xffffff >> lz; in getRemAndLZForGroup()
444 static void encodeAluGroup(uint8_t *loc, const Relocation &rel, uint64_t val, in encodeAluGroup() argument
450 if (val >> 63) { in encodeAluGroup()
452 val = -val; in encodeAluGroup()
455 std::tie(imm, lz) = getRemAndLZForGroup(group, val); in encodeAluGroup()
462 error(getErrorLocation(loc) + "unencodeable immediate " + Twine(val).str() + in encodeAluGroup()
467 static void encodeLdrGroup(uint8_t *loc, const Relocation &rel, uint64_t val, in encodeLdrGroup() argument
473 val &= ~0x1; in encodeLdrGroup()
476 if (val >> 63) { in encodeLdrGroup()
478 val = -val; in encodeLdrGroup()
480 uint32_t imm = getRemAndLZForGroup(group, val).first; in encodeLdrGroup()
485 static void encodeLdrsGroup(uint8_t *loc, const Relocation &rel, uint64_t val, in encodeLdrsGroup() argument
491 val &= ~0x1; in encodeLdrsGroup()
494 if (val >> 63) { in encodeLdrsGroup()
496 val = -val; in encodeLdrsGroup()
498 uint32_t imm = getRemAndLZForGroup(group, val).first; in encodeLdrsGroup()
504 void ARM::relocate(uint8_t *loc, const Relocation &rel, uint64_t val) const { in relocate()
523 write32le(loc, val); in relocate()
526 checkInt(loc, val, 31, rel); in relocate()
527 write32le(loc, (read32le(loc) & 0x80000000) | (val & ~0x80000000)); in relocate()
536 bool bit0Thumb = val & 1; in relocate()
544 checkInt(loc, val, 26, rel); in relocate()
546 ((val & 2) << 23) | // H in relocate()
547 ((val >> 2) & 0x00ffffff)); // imm24 in relocate()
559 checkInt(loc, val, 26, rel); in relocate()
560 write32le(loc, (read32le(loc) & ~0x00ffffff) | ((val >> 2) & 0x00ffffff)); in relocate()
564 checkInt(loc, val, 9, rel); in relocate()
565 write16le(loc, (read32le(loc) & 0xff00) | ((val >> 1) & 0x00ff)); in relocate()
569 checkInt(loc, val, 12, rel); in relocate()
570 write16le(loc, (read32le(loc) & 0xf800) | ((val >> 1) & 0x07ff)); in relocate()
574 checkInt(loc, val, 21, rel); in relocate()
577 ((val >> 10) & 0x0400) | // S in relocate()
578 ((val >> 12) & 0x003f)); // imm6 in relocate()
581 ((val >> 8) & 0x0800) | // J2 in relocate()
582 ((val >> 5) & 0x2000) | // J1 in relocate()
583 ((val >> 1) & 0x07ff)); // imm11 in relocate()
592 bool bit0Thumb = val & 1; in relocate()
602 val = alignTo(val, 4); in relocate()
610 checkInt(loc, val, 23, rel); in relocate()
613 ((val >> 12) & 0x07ff)); // imm11 in relocate()
617 ((val >> 1) & 0x07ff)); // imm11 in relocate()
625 checkInt(loc, val, 25, rel); in relocate()
628 ((val >> 14) & 0x0400) | // S in relocate()
629 ((val >> 12) & 0x03ff)); // imm10 in relocate()
632 (((~(val >> 10)) ^ (val >> 11)) & 0x2000) | // J1 in relocate()
633 (((~(val >> 11)) ^ (val >> 13)) & 0x0800) | // J2 in relocate()
634 ((val >> 1) & 0x07ff)); // imm11 in relocate()
639 write32le(loc, (read32le(loc) & ~0x000f0fff) | ((val & 0xf000) << 4) | in relocate()
640 (val & 0x0fff)); in relocate()
646 (((val >> 16) & 0xf000) << 4) | ((val >> 16) & 0xfff)); in relocate()
654 ((val >> 17) & 0x0400) | // i in relocate()
655 ((val >> 28) & 0x000f)); // imm4 in relocate()
658 ((val >> 12) & 0x7000) | // imm3 in relocate()
659 ((val >> 16) & 0x00ff)); // imm8 in relocate()
667 ((val >> 1) & 0x0400) | // i in relocate()
668 ((val >> 12) & 0x000f)); // imm4 in relocate()
671 ((val << 4) & 0x7000) | // imm3 in relocate()
672 (val & 0x00ff)); // imm8 in relocate()
675 encodeAluGroup(loc, rel, val, 0, true); in relocate()
678 encodeAluGroup(loc, rel, val, 0, false); in relocate()
681 encodeAluGroup(loc, rel, val, 1, true); in relocate()
684 encodeAluGroup(loc, rel, val, 1, false); in relocate()
687 encodeAluGroup(loc, rel, val, 2, true); in relocate()
690 encodeLdrGroup(loc, rel, val, 0); in relocate()
693 encodeLdrGroup(loc, rel, val, 1); in relocate()
696 encodeLdrGroup(loc, rel, val, 2); in relocate()
699 encodeLdrsGroup(loc, rel, val, 0); in relocate()
702 encodeLdrsGroup(loc, rel, val, 1); in relocate()
705 encodeLdrsGroup(loc, rel, val, 2); in relocate()
709 int64_t imm = val; in relocate()
727 val &= ~0x1; in relocate()
728 checkUInt(loc, val, 10, rel); in relocate()
729 checkAlignment(loc, val, 4, rel); in relocate()
730 write16le(loc, (read16le(loc) & 0xff00) | (val & 0x3fc) >> 2); in relocate()
739 val &= ~0x1; in relocate()
740 int64_t imm12 = val; in relocate()
834 uint64_t val = read32le(buf) & 0x000f0fff; in getImplicitAddend() local
835 return SignExtend64<16>(((val & 0x000f0000) >> 4) | (val & 0x00fff)); in getImplicitAddend()
861 uint32_t val = rotr32(instr & 0xff, ((instr & 0xf00) >> 8) * 2); in getImplicitAddend() local
862 return (instr & 0x00400000) ? -val : val; in getImplicitAddend()