diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-01-29 16:39:46 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-01-29 16:39:46 -0800 |
commit | b8c6d7658d89d53acaae44e8f4359578a7fa5dba (patch) | |
tree | f0e2303261159079bdb25aa1111e90a9b98d8e5e /lib/Target/JSBackend/JSBackend.cpp | |
parent | e5bf2f7705631a5b3122817e63b018df3eecd0d5 (diff) |
fix switch choice code
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 } |