diff options
Diffstat (limited to 'lib/Target/JSBackend/JSBackend.cpp')
-rw-r--r-- | lib/Target/JSBackend/JSBackend.cpp | 4 |
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 } |