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 } |