Lines Matching refs:Value

237 static const char *checkPCRelOffset(uint64_t Value, int64_t Min, int64_t Max) {  in checkPCRelOffset()  argument
238 int64_t Offset = int64_t(Value) - 4; in checkPCRelOffset()
245 uint64_t Value) const { in reasonForFixupRelaxation()
254 int64_t Offset = int64_t(Value) - 4; in reasonForFixupRelaxation()
266 int64_t Offset = int64_t(Value) - 4; in reasonForFixupRelaxation()
275 int64_t Offset = int64_t(Value) - 4; in reasonForFixupRelaxation()
286 int64_t Offset = (Value & ~1); in reasonForFixupRelaxation()
292 return checkPCRelOffset(Value, 0, 30); in reasonForFixupRelaxation()
294 return checkPCRelOffset(Value, -0x10000, +0xfffe); in reasonForFixupRelaxation()
296 return checkPCRelOffset(Value, -0x40000, +0x3fffe); in reasonForFixupRelaxation()
298 return checkPCRelOffset(Value, -0x1000, +0xffe); in reasonForFixupRelaxation()
300 return checkPCRelOffset(Value, 0, +0xffe); in reasonForFixupRelaxation()
310 return checkPCRelOffset(Value, -0xffe, 0); in reasonForFixupRelaxation()
312 if (Value != 2 && Value != 4) in reasonForFixupRelaxation()
323 bool ARMAsmBackend::fixupNeedsRelaxation(const MCFixup &Fixup, uint64_t Value, in fixupNeedsRelaxation() argument
326 return reasonForFixupRelaxation(Fixup, Value); in fixupNeedsRelaxation()
400 static uint32_t swapHalfWords(uint32_t Value, bool IsLittleEndian) { in swapHalfWords() argument
404 uint32_t Swapped = (Value & 0xFFFF0000) >> 16; in swapHalfWords()
405 Swapped |= (Value & 0x0000FFFF) << 16; in swapHalfWords()
408 return Value; in swapHalfWords()
413 uint32_t Value; in joinHalfWords() local
416 Value = (SecondHalf & 0xFFFF) << 16; in joinHalfWords()
417 Value |= (FirstHalf & 0xFFFF); in joinHalfWords()
419 Value = (SecondHalf & 0xFFFF); in joinHalfWords()
420 Value |= (FirstHalf & 0xFFFF) << 16; in joinHalfWords()
423 return Value; in joinHalfWords()
428 const MCValue &Target, uint64_t Value, in adjustFixupValue() argument
444 Value |= 1; in adjustFixupValue()
454 return Value; in adjustFixupValue()
456 return Value; in adjustFixupValue()
458 return Value; in adjustFixupValue()
462 Value >>= 16; in adjustFixupValue()
465 unsigned Hi4 = (Value & 0xF000) >> 12; in adjustFixupValue()
466 unsigned Lo12 = Value & 0x0FFF; in adjustFixupValue()
469 Value = (Hi4 << 16) | (Lo12); in adjustFixupValue()
470 return Value; in adjustFixupValue()
475 Value >>= 16; in adjustFixupValue()
478 unsigned Hi4 = (Value & 0xF000) >> 12; in adjustFixupValue()
479 unsigned i = (Value & 0x800) >> 11; in adjustFixupValue()
480 unsigned Mid3 = (Value & 0x700) >> 8; in adjustFixupValue()
481 unsigned Lo8 = Value & 0x0FF; in adjustFixupValue()
486 Value = (Hi4 << 16) | (i << 26) | (Mid3 << 12) | (Lo8); in adjustFixupValue()
487 return swapHalfWords(Value, Endian == support::little); in adjustFixupValue()
491 Value -= 4; in adjustFixupValue()
495 Value -= 4; in adjustFixupValue()
499 if ((int64_t)Value < 0) { in adjustFixupValue()
500 Value = -Value; in adjustFixupValue()
503 if (Value >= 4096) { in adjustFixupValue()
507 Value |= isAdd << 23; in adjustFixupValue()
512 return swapHalfWords(Value, Endian == support::little); in adjustFixupValue()
514 return Value; in adjustFixupValue()
518 Value -= 8; in adjustFixupValue()
520 if ((int64_t)Value < 0) { in adjustFixupValue()
521 Value = -Value; in adjustFixupValue()
524 if (ARM_AM::getSOImmVal(Value) == -1) { in adjustFixupValue()
529 return ARM_AM::getSOImmVal(Value) | (opc << 21); in adjustFixupValue()
533 Value -= 4; in adjustFixupValue()
535 if ((int64_t)Value < 0) { in adjustFixupValue()
536 Value = -Value; in adjustFixupValue()
541 out |= (Value & 0x800) << 15; in adjustFixupValue()
542 out |= (Value & 0x700) << 4; in adjustFixupValue()
543 out |= (Value & 0x0FF); in adjustFixupValue()
559 return 0xffffff & ((Value - 8) >> 2); in adjustFixupValue()
561 Value = Value - 4; in adjustFixupValue()
562 if (!isInt<25>(Value)) { in adjustFixupValue()
567 Value >>= 1; // Low bit is not encoded. in adjustFixupValue()
570 bool I = Value & 0x800000; in adjustFixupValue()
571 bool J1 = Value & 0x400000; in adjustFixupValue()
572 bool J2 = Value & 0x200000; in adjustFixupValue()
579 out |= (Value & 0x1FF800) << 5; // imm6 field in adjustFixupValue()
580 out |= (Value & 0x0007FF); // imm11 field in adjustFixupValue()
585 Value = Value - 4; in adjustFixupValue()
586 if (!isInt<21>(Value)) { in adjustFixupValue()
591 Value >>= 1; // Low bit is not encoded. in adjustFixupValue()
594 out |= (Value & 0x80000) << 7; // S bit in adjustFixupValue()
595 out |= (Value & 0x40000) >> 7; // J2 bit in adjustFixupValue()
596 out |= (Value & 0x20000) >> 4; // J1 bit in adjustFixupValue()
597 out |= (Value & 0x1F800) << 5; // imm6 field in adjustFixupValue()
598 out |= (Value & 0x007FF); // imm11 field in adjustFixupValue()
603 if (!isInt<25>(Value - 4) || in adjustFixupValue()
607 !isInt<23>(Value - 4))) { in adjustFixupValue()
624 uint32_t offset = (Value - 4) >> 1; in adjustFixupValue()
651 if (Value % 4 != 0) { in adjustFixupValue()
656 uint32_t offset = (Value - 4) >> 2; in adjustFixupValue()
680 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
687 return ((Value - 4) >> 2) & 0xff; in adjustFixupValue()
692 if ((int64_t)Value < 2 || Value > 0x82 || Value & 1) { in adjustFixupValue()
698 uint32_t Binary = (Value - 4) >> 1; in adjustFixupValue()
706 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
712 return ((Value - 4) >> 1) & 0x7ff; in adjustFixupValue()
717 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
723 return ((Value - 4) >> 1) & 0xff; in adjustFixupValue()
725 Value = Value - 8; // ARM fixups offset by an additional word and don't in adjustFixupValue()
728 if ((int64_t)Value < 0) { in adjustFixupValue()
729 Value = -Value; in adjustFixupValue()
733 if (Value >= 256) { in adjustFixupValue()
737 Value = (Value & 0xf) | ((Value & 0xf0) << 4); in adjustFixupValue()
738 return Value | (isAdd << 23); in adjustFixupValue()
741 Value = Value - 4; // ARM fixups offset by an additional word and don't in adjustFixupValue()
746 Value = Value - 4; in adjustFixupValue()
748 if ((int64_t)Value < 0) { in adjustFixupValue()
749 Value = -Value; in adjustFixupValue()
753 Value >>= 2; in adjustFixupValue()
754 if (Value >= 256) { in adjustFixupValue()
758 Value |= isAdd << 23; in adjustFixupValue()
763 return swapHalfWords(Value, Endian == support::little); in adjustFixupValue()
765 return Value; in adjustFixupValue()
768 Value = Value - 4; // ARM fixups offset by an additional word and don't in adjustFixupValue()
773 Value = Value - 4; in adjustFixupValue()
775 if ((int64_t)Value < 0) { in adjustFixupValue()
776 Value = -Value; in adjustFixupValue()
780 if (Value & 1) { in adjustFixupValue()
784 Value >>= 1; in adjustFixupValue()
785 if (Value >= 256) { in adjustFixupValue()
789 Value |= isAdd << 23; in adjustFixupValue()
794 return swapHalfWords(Value, Endian == support::little); in adjustFixupValue()
796 return Value; in adjustFixupValue()
799 Value = ARM_AM::getSOImmVal(Value); in adjustFixupValue()
800 if (Value >> 12) { in adjustFixupValue()
804 return Value; in adjustFixupValue()
806 Value = ARM_AM::getT2SOImmVal(Value); in adjustFixupValue()
807 if ((int64_t)Value < 0) { in adjustFixupValue()
817 EncValue |= (Value & 0x800) << 15; in adjustFixupValue()
818 EncValue |= (Value & 0x700) << 4; in adjustFixupValue()
819 EncValue |= (Value & 0xff); in adjustFixupValue()
823 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
828 uint32_t out = (((Value - 4) >> 1) & 0xf) << 23; in adjustFixupValue()
834 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
842 out |= (((Value - 4) >> 1) & 0x1) << 11; in adjustFixupValue()
843 out |= (((Value - 4) >> 1) & 0x7fe); in adjustFixupValue()
844 out |= (((Value - 4) >> 1) & HighBitMask) << 5; in adjustFixupValue()
851 Value = Target.getConstant(); in adjustFixupValue()
853 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
858 uint32_t out = ((Value >> 2) & 1) << 17; in adjustFixupValue()
863 const char *FixupDiagnostic = reasonForFixupRelaxation(Fixup, Value); in adjustFixupValue()
868 uint64_t real_value = Value - 4; in adjustFixupValue()
1044 MutableArrayRef<char> Data, uint64_t Value, in applyFixup() argument
1052 Value = adjustFixupValue(Asm, Fixup, Target, Value, IsResolved, Ctx, STI); in applyFixup()
1053 if (!Value) in applyFixup()
1072 Data[Offset + Idx] |= uint8_t((Value >> (i * 8)) & 0xff); in applyFixup()