src/share/vm/opto/parse2.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/opto/parse2.cpp	Mon May  5 12:29:59 2014
--- new/src/share/vm/opto/parse2.cpp	Mon May  5 12:29:58 2014

*** 403,415 **** --- 403,415 ---- // both) end(s) of the input set. We'll call this the default target // even though we can't be sure that it is the true "default". bool needs_guard = false; int default_dest; ! int64_t total_outlier_size = 0; ! int64 hi_size = ((int64)hi->hi()) - ((int64)hi->lo()) + 1; ! int64 lo_size = ((int64)lo->hi()) - ((int64)lo->lo()) + 1; ! int64_t hi_size = ((int64_t)hi->hi()) - ((int64_t)hi->lo()) + 1; ! int64_t lo_size = ((int64_t)lo->hi()) - ((int64_t)lo->lo()) + 1; if (lo->dest() == hi->dest()) { total_outlier_size = hi_size + lo_size; default_dest = lo->dest(); } else if (lo_size > hi_size) {
*** 427,437 **** --- 427,437 ---- if (default_dest == lo->dest()) lo++; if (default_dest == hi->dest()) hi--; } // Find the total number of cases and ranges ! int64 num_cases = ((int64)hi->hi()) - ((int64)lo->lo()) + 1; ! int64_t num_cases = ((int64_t)hi->hi()) - ((int64_t)lo->lo()) + 1; int num_range = hi - lo + 1; // Don't create table if: too large, too small, or too sparse. if (num_cases < MinJumpTableSize || num_cases > MaxJumpTableSize) return false;
*** 471,481 **** --- 471,481 ---- Node* jtn = _gvn.transform( new (C) JumpNode(control(), key_val, num_cases) ); // These are the switch destinations hanging off the jumpnode int i = 0; for (SwitchRange* r = lo; r <= hi; r++) { ! for (int64_t j = r->lo(); j <= r->hi(); j++, i++) { Node* input = _gvn.transform(new (C) JumpProjNode(jtn, i, r->dest(), (int)(j - lowval))); { PreserveJVMState pjvms(this); set_control(input); jump_if_always_fork(r->dest(), r->table_index());

src/share/vm/opto/parse2.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File