diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp | 36 |
1 files changed, 2 insertions, 34 deletions
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp index a22689a40d9..c89978411dd 100644 --- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp +++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp @@ -28,23 +28,10 @@ using namespace llvm::object; namespace llvm { int64_t RuntimeDyldMachO::memcpyAddend(const RelocationEntry &RE) const { - const SectionEntry &Section = Sections[RE.SectionID]; unsigned NumBytes = 1 << RE.Size; - int64_t Addend = 0; - uint8_t *LocalAddress = Section.Address + RE.Offset; - uint8_t *Dst = reinterpret_cast<uint8_t*>(&Addend); - - if (IsTargetLittleEndian == sys::IsLittleEndianHost) { - if (!sys::IsLittleEndianHost) - Dst += sizeof(Addend) - NumBytes; - memcpy(Dst, LocalAddress, NumBytes); - } else { - Dst += NumBytes - 1; - for (unsigned i = 0; i < NumBytes; ++i) - *Dst-- = *LocalAddress++; - } + uint8_t *Src = Sections[RE.SectionID].Address + RE.Offset; - return Addend; + return static_cast<int64_t>(readBytesUnaligned(Src, NumBytes)); } RelocationValueRef RuntimeDyldMachO::getRelocationValueRef( @@ -121,25 +108,6 @@ void RuntimeDyldMachO::dumpRelocationToResolve(const RelocationEntry &RE, << " Size: " << (1 << RE.Size) << "\n"; } -bool RuntimeDyldMachO::writeBytesUnaligned(uint8_t *Dst, uint64_t Value, - unsigned Size) { - - uint8_t *Src = reinterpret_cast<uint8_t*>(&Value); - // If host and target endianness match use memcpy, otherwise copy in reverse - // order. - if (IsTargetLittleEndian == sys::IsLittleEndianHost) { - if (!sys::IsLittleEndianHost) - Src += sizeof(Value) - Size; - memcpy(Dst, Src, Size); - } else { - Src += Size - 1; - for (unsigned i = 0; i < Size; ++i) - *Dst++ = *Src--; - } - - return false; -} - bool RuntimeDyldMachO::isCompatibleFormat(const ObjectBuffer *InputBuffer) const { if (InputBuffer->getBufferSize() < 4) |