diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp index 72aae96e0c6..aa4480226ac 100644 --- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp +++ b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp @@ -703,22 +703,8 @@ uint64_t RuntimeDyldCheckerImpl::readMemoryAtAddr(uint64_t SrcAddr, unsigned Size) const { uintptr_t PtrSizedAddr = static_cast<uintptr_t>(SrcAddr); assert(PtrSizedAddr == SrcAddr && "Linker memory pointer out-of-range."); - uint64_t Result = 0; uint8_t *Src = reinterpret_cast<uint8_t*>(PtrSizedAddr); - uint8_t *Dst = reinterpret_cast<uint8_t*>(&Result); - - // If host and target endianness match use memcpy, otherwise copy in reverse - // order. - if (getRTDyld().IsTargetLittleEndian == sys::IsLittleEndianHost) { - if (!sys::IsLittleEndianHost) - Dst += sizeof(Result) - Size; - memcpy(Dst, Src, Size); - } else { - Dst += Size - 1; - for (unsigned i = 0; i < Size; ++i) - *Dst-- = *Src++; - } - return Result; + return getRTDyld().readBytesUnaligned(Src, Size); } std::pair<uint64_t, std::string> RuntimeDyldCheckerImpl::getStubAddrFor( |