Lines Matching refs:Value
253 static const char *checkPCRelOffset(uint64_t Value, int64_t Min, int64_t Max) { in checkPCRelOffset() argument
254 int64_t Offset = int64_t(Value) - 4; in checkPCRelOffset()
261 uint64_t Value) const { in reasonForFixupRelaxation()
270 int64_t Offset = int64_t(Value) - 4; in reasonForFixupRelaxation()
282 int64_t Offset = int64_t(Value) - 4; in reasonForFixupRelaxation()
291 int64_t Offset = int64_t(Value) - 4; in reasonForFixupRelaxation()
302 int64_t Offset = (Value & ~1); in reasonForFixupRelaxation()
308 return checkPCRelOffset(Value, 0, 30); in reasonForFixupRelaxation()
310 return checkPCRelOffset(Value, -0x10000, +0xfffe); in reasonForFixupRelaxation()
312 return checkPCRelOffset(Value, -0x40000, +0x3fffe); in reasonForFixupRelaxation()
314 return checkPCRelOffset(Value, -0x1000, +0xffe); in reasonForFixupRelaxation()
316 return checkPCRelOffset(Value, 0, +0xffe); in reasonForFixupRelaxation()
326 return checkPCRelOffset(Value, -0xffe, 0); in reasonForFixupRelaxation()
328 if (Value != 2 && Value != 4) in reasonForFixupRelaxation()
339 bool ARMAsmBackend::fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value, in fixupNeedsRelaxation() argument
342 return reasonForFixupRelaxation(Fixup, Value); in fixupNeedsRelaxation()
417 static uint32_t swapHalfWords(uint32_t Value, bool IsLittleEndian) { in swapHalfWords() argument
421 uint32_t Swapped = (Value & 0xFFFF0000) >> 16; in swapHalfWords()
422 Swapped |= (Value & 0x0000FFFF) << 16; in swapHalfWords()
425 return Value; in swapHalfWords()
430 uint32_t Value; in joinHalfWords() local
433 Value = (SecondHalf & 0xFFFF) << 16; in joinHalfWords()
434 Value |= (FirstHalf & 0xFFFF); in joinHalfWords()
436 Value = (SecondHalf & 0xFFFF); in joinHalfWords()
437 Value |= (FirstHalf & 0xFFFF) << 16; in joinHalfWords()
440 return Value; in joinHalfWords()
445 const MCValue &Target, uint64_t Value, in adjustFixupValue() argument
461 Value |= 1; in adjustFixupValue()
470 return Value; in adjustFixupValue()
472 return Value; in adjustFixupValue()
474 return Value; in adjustFixupValue()
478 Value >>= 16; in adjustFixupValue()
481 unsigned Hi4 = (Value & 0xF000) >> 12; in adjustFixupValue()
482 unsigned Lo12 = Value & 0x0FFF; in adjustFixupValue()
485 Value = (Hi4 << 16) | (Lo12); in adjustFixupValue()
486 return Value; in adjustFixupValue()
491 Value >>= 16; in adjustFixupValue()
494 unsigned Hi4 = (Value & 0xF000) >> 12; in adjustFixupValue()
495 unsigned i = (Value & 0x800) >> 11; in adjustFixupValue()
496 unsigned Mid3 = (Value & 0x700) >> 8; in adjustFixupValue()
497 unsigned Lo8 = Value & 0x0FF; in adjustFixupValue()
502 Value = (Hi4 << 16) | (i << 26) | (Mid3 << 12) | (Lo8); in adjustFixupValue()
503 return swapHalfWords(Value, Endian == llvm::endianness::little); in adjustFixupValue()
507 return (Value & 0xff000000) >> 24; in adjustFixupValue()
508 return Value & 0xff; in adjustFixupValue()
511 return (Value & 0x00ff0000) >> 16; in adjustFixupValue()
512 return Value & 0xff; in adjustFixupValue()
515 return (Value & 0x0000ff00) >> 8; in adjustFixupValue()
516 return Value & 0xff; in adjustFixupValue()
518 return Value & 0x000000ff; in adjustFixupValue()
521 Value -= 4; in adjustFixupValue()
525 Value -= 4; in adjustFixupValue()
529 if ((int64_t)Value < 0) { in adjustFixupValue()
530 Value = -Value; in adjustFixupValue()
533 if (Value >= 4096) { in adjustFixupValue()
537 Value |= isAdd << 23; in adjustFixupValue()
542 return swapHalfWords(Value, Endian == llvm::endianness::little); in adjustFixupValue()
544 return Value; in adjustFixupValue()
548 Value -= 8; in adjustFixupValue()
550 if ((int64_t)Value < 0) { in adjustFixupValue()
551 Value = -Value; in adjustFixupValue()
554 if (ARM_AM::getSOImmVal(Value) == -1) { in adjustFixupValue()
559 return ARM_AM::getSOImmVal(Value) | (opc << 21); in adjustFixupValue()
563 Value -= 4; in adjustFixupValue()
565 if ((int64_t)Value < 0) { in adjustFixupValue()
566 Value = -Value; in adjustFixupValue()
571 out |= (Value & 0x800) << 15; in adjustFixupValue()
572 out |= (Value & 0x700) << 4; in adjustFixupValue()
573 out |= (Value & 0x0FF); in adjustFixupValue()
589 return 0xffffff & ((Value - 8) >> 2); in adjustFixupValue()
591 Value = Value - 4; in adjustFixupValue()
592 if (!isInt<25>(Value)) { in adjustFixupValue()
597 Value >>= 1; // Low bit is not encoded. in adjustFixupValue()
600 bool I = Value & 0x800000; in adjustFixupValue()
601 bool J1 = Value & 0x400000; in adjustFixupValue()
602 bool J2 = Value & 0x200000; in adjustFixupValue()
609 out |= (Value & 0x1FF800) << 5; // imm6 field in adjustFixupValue()
610 out |= (Value & 0x0007FF); // imm11 field in adjustFixupValue()
615 Value = Value - 4; in adjustFixupValue()
616 if (!isInt<21>(Value)) { in adjustFixupValue()
621 Value >>= 1; // Low bit is not encoded. in adjustFixupValue()
624 out |= (Value & 0x80000) << 7; // S bit in adjustFixupValue()
625 out |= (Value & 0x40000) >> 7; // J2 bit in adjustFixupValue()
626 out |= (Value & 0x20000) >> 4; // J1 bit in adjustFixupValue()
627 out |= (Value & 0x1F800) << 5; // imm6 field in adjustFixupValue()
628 out |= (Value & 0x007FF); // imm11 field in adjustFixupValue()
633 if (!isInt<25>(Value - 4) || in adjustFixupValue()
637 !isInt<23>(Value - 4))) { in adjustFixupValue()
654 uint32_t offset = (Value - 4) >> 1; in adjustFixupValue()
682 if (Value % 4 != 0) { in adjustFixupValue()
687 uint32_t offset = (Value - 4) >> 2; in adjustFixupValue()
712 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
719 return ((Value - 4) >> 2) & 0xff; in adjustFixupValue()
724 if ((int64_t)Value < 2 || Value > 0x82 || Value & 1) { in adjustFixupValue()
730 uint32_t Binary = (Value - 4) >> 1; in adjustFixupValue()
738 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
744 return ((Value - 4) >> 1) & 0x7ff; in adjustFixupValue()
749 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
755 return ((Value - 4) >> 1) & 0xff; in adjustFixupValue()
757 Value = Value - 8; // ARM fixups offset by an additional word and don't in adjustFixupValue()
760 if ((int64_t)Value < 0) { in adjustFixupValue()
761 Value = -Value; in adjustFixupValue()
765 if (Value >= 256) { in adjustFixupValue()
769 Value = (Value & 0xf) | ((Value & 0xf0) << 4); in adjustFixupValue()
770 return Value | (isAdd << 23); in adjustFixupValue()
773 Value = Value - 4; // ARM fixups offset by an additional word and don't in adjustFixupValue()
778 Value = Value - 4; in adjustFixupValue()
780 if ((int64_t)Value < 0) { in adjustFixupValue()
781 Value = -Value; in adjustFixupValue()
785 Value >>= 2; in adjustFixupValue()
786 if (Value >= 256) { in adjustFixupValue()
790 Value |= isAdd << 23; in adjustFixupValue()
795 return swapHalfWords(Value, Endian == llvm::endianness::little); in adjustFixupValue()
797 return Value; in adjustFixupValue()
800 Value = Value - 4; // ARM fixups offset by an additional word and don't in adjustFixupValue()
805 Value = Value - 4; in adjustFixupValue()
807 if ((int64_t)Value < 0) { in adjustFixupValue()
808 Value = -Value; in adjustFixupValue()
812 if (Value & 1) { in adjustFixupValue()
816 Value >>= 1; in adjustFixupValue()
817 if (Value >= 256) { in adjustFixupValue()
821 Value |= isAdd << 23; in adjustFixupValue()
826 return swapHalfWords(Value, Endian == llvm::endianness::little); in adjustFixupValue()
828 return Value; in adjustFixupValue()
831 Value = ARM_AM::getSOImmVal(Value); in adjustFixupValue()
832 if (Value >> 12) { in adjustFixupValue()
836 return Value; in adjustFixupValue()
838 Value = ARM_AM::getT2SOImmVal(Value); in adjustFixupValue()
839 if ((int64_t)Value < 0) { in adjustFixupValue()
849 EncValue |= (Value & 0x800) << 15; in adjustFixupValue()
850 EncValue |= (Value & 0x700) << 4; in adjustFixupValue()
851 EncValue |= (Value & 0xff); in adjustFixupValue()
855 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
860 uint32_t out = (((Value - 4) >> 1) & 0xf) << 23; in adjustFixupValue()
866 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
874 out |= (((Value - 4) >> 1) & 0x1) << 11; in adjustFixupValue()
875 out |= (((Value - 4) >> 1) & 0x7fe); in adjustFixupValue()
876 out |= (((Value - 4) >> 1) & HighBitMask) << 5; in adjustFixupValue()
883 Value = Target.getConstant(); in adjustFixupValue()
885 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
890 uint32_t out = ((Value >> 2) & 1) << 17; in adjustFixupValue()
895 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
900 uint64_t real_value = Value - 4; in adjustFixupValue()
1085 MutableArrayRef<char> Data, uint64_t Value, in applyFixup() argument
1092 Value = adjustFixupValue(Asm, Fixup, Target, Value, IsResolved, Ctx, STI); in applyFixup()
1093 if (!Value) in applyFixup()
1114 Data[Offset + Idx] |= uint8_t((Value >> (i * 8)) & 0xff); in applyFixup()