aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/JSBackend/JSBackend.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-01-29 16:39:46 -0800
committerAlon Zakai <alonzakai@gmail.com>2014-01-29 16:39:46 -0800
commitb8c6d7658d89d53acaae44e8f4359578a7fa5dba (patch)
treef0e2303261159079bdb25aa1111e90a9b98d8e5e /lib/Target/JSBackend/JSBackend.cpp
parente5bf2f7705631a5b3122817e63b018df3eecd0d5 (diff)
fix switch choice code
Diffstat (limited to 'lib/Target/JSBackend/JSBackend.cpp')
-rw-r--r--lib/Target/JSBackend/JSBackend.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/Target/JSBackend/JSBackend.cpp b/lib/Target/JSBackend/JSBackend.cpp
index ffa4591337..fccdb52bf7 100644
--- a/lib/Target/JSBackend/JSBackend.cpp
+++ b/lib/Target/JSBackend/JSBackend.cpp
@@ -1321,13 +1321,13 @@ static const SwitchInst *considerSwitch(const Instruction *I) {
assert(CaseVal.isSingleNumbersOnly());
std::string Condition = "";
for (unsigned Index = 0; Index < CaseVal.getNumItems(); Index++) {
- int Curr = CaseVal.getSingleNumber(Index).toConstantInt()->getZExtValue();
+ int Curr = CaseVal.getSingleNumber(Index).toConstantInt()->getSExtValue();
if (Curr < Minn) Minn = Curr;
if (Curr > Maxx) Maxx = Curr;
}
Num++;
}
- int Range = Maxx - Minn;
+ int64_t Range = (int64_t)Maxx - (int64_t)Minn;
return Num < 5 || Range > 10*1024 || (Range/Num) > 1024 ? NULL : SI; // heuristics
}