comparison src/share/vm/opto/parse2.cpp @ 12866:f478c98e8114

8024774: assert(_con < t->is_tuple()->cnt()) failed: ProjNode::_con must be in range Reviewed-by: iveresov, roland, kvn, twisti
author vlivanov
date Mon, 07 Oct 2013 14:12:23 +0400
parents 6f3fd5150b67
children b2ee5dc63353
comparison
equal deleted inserted replaced
12865:5cc2d82aa82a 12866:f478c98e8114
266 } 266 }
267 bool adjoin(jint value, int dest, int table_index) { 267 bool adjoin(jint value, int dest, int table_index) {
268 return adjoinRange(value, value, dest, table_index); 268 return adjoinRange(value, value, dest, table_index);
269 } 269 }
270 270
271 void print(ciEnv* env) { 271 void print() {
272 if (is_singleton()) 272 if (is_singleton())
273 tty->print(" {%d}=>%d", lo(), dest()); 273 tty->print(" {%d}=>%d", lo(), dest());
274 else if (lo() == min_jint) 274 else if (lo() == min_jint)
275 tty->print(" {..%d}=>%d", hi(), dest()); 275 tty->print(" {..%d}=>%d", hi(), dest());
276 else if (hi() == max_jint) 276 else if (hi() == max_jint)
469 Node* jtn = _gvn.transform( new (C) JumpNode(control(), key_val, num_cases) ); 469 Node* jtn = _gvn.transform( new (C) JumpNode(control(), key_val, num_cases) );
470 470
471 // These are the switch destinations hanging off the jumpnode 471 // These are the switch destinations hanging off the jumpnode
472 int i = 0; 472 int i = 0;
473 for (SwitchRange* r = lo; r <= hi; r++) { 473 for (SwitchRange* r = lo; r <= hi; r++) {
474 for (int j = r->lo(); j <= r->hi(); j++, i++) { 474 for (int64 j = r->lo(); j <= r->hi(); j++, i++) {
475 Node* input = _gvn.transform(new (C) JumpProjNode(jtn, i, r->dest(), j - lowval)); 475 Node* input = _gvn.transform(new (C) JumpProjNode(jtn, i, r->dest(), (int)(j - lowval)));
476 { 476 {
477 PreserveJVMState pjvms(this); 477 PreserveJVMState pjvms(this);
478 set_control(input); 478 set_control(input);
479 jump_if_always_fork(r->dest(), r->table_index()); 479 jump_if_always_fork(r->dest(), r->table_index());
480 } 480 }
630 if (_max_switch_depth > _est_switch_depth) { 630 if (_max_switch_depth > _est_switch_depth) {
631 tty->print_cr("******** BAD SWITCH DEPTH ********"); 631 tty->print_cr("******** BAD SWITCH DEPTH ********");
632 } 632 }
633 tty->print(" "); 633 tty->print(" ");
634 for( r = lo; r <= hi; r++ ) { 634 for( r = lo; r <= hi; r++ ) {
635 r->print(env()); 635 r->print();
636 } 636 }
637 tty->print_cr(""); 637 tty->print_cr("");
638 } 638 }
639 #endif 639 #endif
640 } 640 }