summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp16
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(
OpenPOWER on IntegriCloud