From a551033ea86e5f6281a5b642a4cdc618b58c0ba3 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 23 Oct 2005 23:54:56 +0000 Subject: Fix a nasty bug that was causing miscompilation of global variables on big endian 32-bit targets in some cases (e.g. PPC). This fixes several PPC JIT failures. llvm-svn: 23914 --- llvm/lib/ExecutionEngine/ExecutionEngine.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'llvm/lib/ExecutionEngine/ExecutionEngine.cpp') diff --git a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp index 36f7d2fdfc4..d8bd8f44aa3 100644 --- a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp @@ -189,7 +189,10 @@ GenericValue ExecutionEngine::getConstantValue(const Constant *C) { uint64_t Offset = TD->getIndexedOffset(CE->getOperand(0)->getType(), Indexes); - Result.LongVal += Offset; + if (getTargetData().getPointerSize() == 4) + Result.IntVal += Offset; + else + Result.LongVal += Offset; return Result; } case Instruction::Cast: { -- cgit v1.2.3