search for: fixupoffset

Displaying 4 results from an estimated 4 matches for "fixupoffset".

2016 Dec 07
2
Offset too large on scattered relocations
...O specific, and Ive not been able to find any documentation on them outside of source code. I have a couple of immediate questions, but any info would be appreciated. * Should a check be added to ARMMachObjectWriter::RecordARMScatteredRelocation and RecordARMScatteredHalfRelocation to ensure that FixupOffset is within bounds? I see a check in the x86 back end that does precisely this and was curious why a similar check was not in place for ARM: // Relocations are written out in reverse order, so the PAIR comes first. if (Type == MachO::GENERIC_RELOC_SECTDIFF || Type == MachO::GENERIC_RELOC_...
2016 Dec 13
1
Offset too large on scattered relocations
Thanks for the response Nick, Do you think there is value in adding the check for FixupOffset > 0xffffff into the ARM backend? The lack of that seems like it could silently record incorrect offsets from the assignment later in RecordARMScatteredRelocation(): MRE.r_word0 = ((FixupOffset << 0) | (Type << 24) | (MovtBit << 28...
2016 Dec 07
0
Offset too large on scattered relocations
...ot been able to find any documentation on them outside of source code. > > I have a couple of immediate questions, but any info would be appreciated. > > * Should a check be added to ARMMachObjectWriter::RecordARMScatteredRelocation and RecordARMScatteredHalfRelocation to ensure that FixupOffset is within bounds? > > I see a check in the x86 back end that does precisely this and was curious why a similar check was not in place for ARM: > > // Relocations are written out in reverse order, so the PAIR comes first. > if (Type == MachO::GENERIC_RELOC_SECTDIFF || >...
2013 Sep 25
1
[LLVMdev] arm64 / iOS support
...SDB); + + // Offset of the relocation in the section + int64_t b = Layout.getFragmentOffset(Fragment) + Fixup.getOffset(); + Offset += b - a; + } + + if (IsPCRel && RelocType == MachO::ARM_RELOC_VANILLA) + Offset += 1 << Log2Size; + + // See <reloc.h>. + uint32_t FixupOffset = Layout.getFragmentOffset(Fragment) + Fixup.getOffset(); + unsigned Index = 0; + unsigned IsExtern = 0; + unsigned Type = 0; + + if (Target.isAbsolute()) { // constant + // FIXME! + report_fatal_error("FIXME: relocations to absolute targets " + "not y...