https://llvm.org/bugs/show_bug.cgi?id=27832
Bug ID: 27832 Summary: Missing handling of endianness(host) != endianess(target) in ExecutionEngine::LoadValueFromMemory Product: libraries Version: 3.8 Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: Generic Execution Engine Support Assignee: unassignedb...@nondot.org Reporter: l...@christian-eichler.de CC: llvm-bugs@lists.llvm.org Classification: Unclassified Created attachment 16394 --> https://llvm.org/bugs/attachment.cgi?id=16394&action=edit Example .ll (big endian targetlayout) Method `ExecutionEngine::StoreValueToMemory` reverses the byte order in memory if the endianness of host and target do not match. Method `ExecutionEngine::LoadValueFromMemory` currently does not undo that operation, leading to loading of incorrect values. Running lli with the .ll file attached to this report shows different return values for `lli -force-interpreter loadstore_endian.ll` and `lli loadstore_endian.ll` when executed on a little endian system. This statement holds (at least) for lli from LLVM 3.4 up to LLVM 3.8 -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs