diff options
author | Zhigang Gong <zhigang.gong@intel.com> | 2014-09-05 16:33:44 +0800 |
---|---|---|
committer | Zhigang Gong <zhigang.gong@intel.com> | 2014-09-05 17:08:10 +0800 |
commit | 6074d3362be2ad455480bc596ec5ce7660a01261 (patch) | |
tree | dff4650d02b2302575ab6552da9f147d7d1b6506 | |
parent | 119bf1eda3ed8b9a824d0a891ce039625c501440 (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.cpp | 4 |
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())); } } |