summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhigang Gong <zhigang.gong@intel.com>2014-09-05 16:33:44 +0800
committerZhigang Gong <zhigang.gong@intel.com>2014-09-05 17:08:10 +0800
commit6074d3362be2ad455480bc596ec5ce7660a01261 (patch)
treedff4650d02b2302575ab6552da9f147d7d1b6506
parent119bf1eda3ed8b9a824d0a891ce039625c501440 (diff)
GBE: fallback if we get a wider than i64 constant.
Signed-off-by: Zhigang Gong <zhigang.gong@intel.com> Tested-by: Meng, Mengmeng <mengmeng.meng@intel.com>
-rw-r--r--backend/src/llvm/llvm_gen_backend.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
index c2c60a8..e507802 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -865,6 +865,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()));
}
}