From 594a9104a4194b1e0cc224c0c772fe4606d3894a Mon Sep 17 00:00:00 2001 From: Zhigang Gong Date: Fri, 5 Sep 2014 16:33:44 +0800 Subject: GBE: fallback if we get a wider than i64 constant. Signed-off-by: Zhigang Gong Tested-by: Meng, Mengmeng --- backend/src/llvm/llvm_gen_backend.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp index 738f7d3..39620f6 100644 --- a/backend/src/llvm/llvm_gen_backend.cpp +++ b/backend/src/llvm/llvm_gen_backend.cpp @@ -879,6 +879,10 @@ namespace gbe const uint64_t u64 = CI->getZExtValue(); return ctx.newImmediate(u64); } else { + if (CI->getValue().getActiveBits() > 64) { + ctx.getUnit().setValid(false); + return ctx.newImmediate(uint64_t(0)); + } return ctx.newImmediate(uint64_t(CI->getZExtValue())); } } -- cgit v1.2.3