Lines Matching refs:hi

246   jint hi() const              { return _hi;   }
251 void setRange(jint lo, jint hi, int dest, int table_index) {
252 assert(lo <= hi, "must be a non-empty range");
253 _lo = lo, _hi = hi; _dest = dest; _table_index = table_index;
255 bool adjoinRange(jint lo, jint hi, int dest, int table_index) {
256 assert(lo <= hi, "must be a non-empty range");
258 _hi = hi;
275 tty->print(" {..%d}=>%d", hi(), dest());
276 else if (hi() == max_jint)
279 tty->print(" {%d..%d}=>%d", lo(), hi(), dest());
319 assert(ranges[rp].hi() == highest, "");
364 int next_lo = rp < 0 ? min_jint : ranges[rp].hi()+1;
375 assert(ranges[rp].hi() == highest, "");
390 bool Parse::create_jump_tables(Node* key_val, SwitchRange* lo, SwitchRange* hi) {
407 int64 hi_size = ((int64)hi->hi()) - ((int64)hi->lo()) + 1;
408 int64 lo_size = ((int64)lo->hi()) - ((int64)lo->lo()) + 1;
410 if (lo->dest() == hi->dest()) {
418 default_dest = hi->dest();
426 if (default_dest == hi->dest()) hi--;
430 int64 num_cases = ((int64)hi->hi()) - ((int64)lo->lo()) + 1;
431 int num_range = hi - lo + 1;
473 for (SwitchRange* r = lo; r <= hi; r++) {
474 for (int j = r->lo(); j <= r->hi(); j++, i++) {
489 void Parse::jump_switch_ranges(Node* key_val, SwitchRange *lo, SwitchRange *hi, int switch_depth) {
495 assert(hi->hi() == max_jint, "initial range must exhaust Type::INT");
500 int successors_counted = 0; // block occurrences in [hi..lo]
507 for (SwitchRange* p = lo; p <= hi; p++) {
513 assert(successors_counted == (hi-lo)+1, "no unexpected successors");
525 while (lo->hi() < min_val) lo++;
526 if (lo->lo() < min_val) lo->setRange(min_val, lo->hi(), lo->dest(), lo->table_index());
527 while (hi->lo() > max_val) hi--;
528 if (hi->hi() > max_val) hi->setRange(hi->lo(), max_val, hi->dest(), hi->table_index());
534 _est_switch_depth = log2_intptr((hi-lo+1)-1)+1;
538 assert(lo <= hi, "must be a non-empty set of ranges");
539 if (lo == hi) {
542 assert(lo->hi() == (lo+1)->lo()-1, "contiguous ranges");
543 assert(hi->lo() == (hi-1)->hi()+1, "contiguous ranges");
545 if (create_jump_tables(key_val, lo, hi)) return;
547 int nr = hi - lo + 1;
553 assert(lo < mid && mid <= hi, "good pivot choice");
554 assert(nr != 2 || mid == hi, "should pick higher of 2");
555 assert(nr != 3 || mid == hi-1, "should pick middle of 3");
566 bool eq_test_only = (hi == lo+2 && hi->dest() == lo->dest());
568 assert(mid == hi-1, "");
572 if (mid < hi && !eq_test_only) {
580 jump_switch_ranges(key_val, mid+1, hi, switch_depth+1);
586 // mid is a range, not a singleton, so treat mid..hi as a unit
590 if (mid == hi) {
597 jump_switch_ranges(key_val, mid, hi, switch_depth+1);
622 for( r = lo; r <= hi; r++ ) {
629 hi-lo+1, nsing, _max_switch_depth, _est_switch_depth);
634 for( r = lo; r <= hi; r++ ) {
1998 // Note for longs -> lo word is on TOS, hi word is on TOS - 1