hotspot/src/share/vm/oops/generateOopMap.cpp
changeset 4567 7fc02fbe5c7a
parent 4429 d7eb4e2099aa
child 5402 c51fd0c1d005
equal deleted inserted replaced
4566:b363f6ef4068 4567:7fc02fbe5c7a
  1554                                                  itr->bci()); break;
  1554                                                  itr->bci()); break;
  1555     case Bytecodes::_putstatic:         do_field(false, true,  itr->get_index_big(), itr->bci()); break;
  1555     case Bytecodes::_putstatic:         do_field(false, true,  itr->get_index_big(), itr->bci()); break;
  1556     case Bytecodes::_getfield:          do_field(true,  false, itr->get_index_big(), itr->bci()); break;
  1556     case Bytecodes::_getfield:          do_field(true,  false, itr->get_index_big(), itr->bci()); break;
  1557     case Bytecodes::_putfield:          do_field(false, false, itr->get_index_big(), itr->bci()); break;
  1557     case Bytecodes::_putfield:          do_field(false, false, itr->get_index_big(), itr->bci()); break;
  1558 
  1558 
  1559    case Bytecodes::_invokevirtual:
  1559     case Bytecodes::_invokevirtual:
  1560    case Bytecodes::_invokespecial:     do_method(false, false, itr->get_index_big(), itr->bci()); break;
  1560     case Bytecodes::_invokespecial:     do_method(false, false, itr->get_index_big(), itr->bci()); break;
  1561    case Bytecodes::_invokestatic:      do_method(true,  false, itr->get_index_big(), itr->bci()); break;
  1561     case Bytecodes::_invokestatic:      do_method(true,  false, itr->get_index_big(), itr->bci()); break;
  1562     case Bytecodes::_invokedynamic:     do_method(true,  false, itr->get_index_int(), itr->bci()); break;
  1562     case Bytecodes::_invokedynamic:     do_method(true,  false, itr->get_index_int(), itr->bci()); break;
  1563    case Bytecodes::_invokeinterface:   do_method(false, true,  itr->get_index_big(), itr->bci()); break;
  1563     case Bytecodes::_invokeinterface:   do_method(false, true,  itr->get_index_big(), itr->bci()); break;
  1564    case Bytecodes::_newarray:
  1564     case Bytecodes::_newarray:
  1565    case Bytecodes::_anewarray:         pp_new_ref(vCTS, itr->bci()); break;
  1565     case Bytecodes::_anewarray:         pp_new_ref(vCTS, itr->bci()); break;
  1566     case Bytecodes::_checkcast:         do_checkcast(); break;
  1566     case Bytecodes::_checkcast:         do_checkcast(); break;
  1567     case Bytecodes::_arraylength:
  1567     case Bytecodes::_arraylength:
  1568     case Bytecodes::_instanceof:        pp(rCTS, vCTS); break;
  1568     case Bytecodes::_instanceof:        pp(rCTS, vCTS); break;
  1569     case Bytecodes::_monitorenter:      do_monitorenter(itr->bci()); break;
  1569     case Bytecodes::_monitorenter:      do_monitorenter(itr->bci()); break;
  1570     case Bytecodes::_monitorexit:       do_monitorexit(itr->bci()); break;
  1570     case Bytecodes::_monitorexit:       do_monitorexit(itr->bci()); break;
  1828 }
  1828 }
  1829 
  1829 
  1830 
  1830 
  1831 
  1831 
  1832 void GenerateOopMap::do_ldc(int idx, int bci) {
  1832 void GenerateOopMap::do_ldc(int idx, int bci) {
  1833   constantPoolOop cp = method()->constants();
  1833   constantPoolOop cp  = method()->constants();
  1834   constantTag tag    = cp->tag_at(idx);
  1834   CellTypeState   cts = cp->is_pointer_entry(idx) ? CellTypeState::make_line_ref(bci) : valCTS;
  1835 
       
  1836   CellTypeState cts = (tag.is_string() || tag.is_unresolved_string() ||
       
  1837                        tag.is_klass()  || tag.is_unresolved_klass())
       
  1838                     ? CellTypeState::make_line_ref(bci) : valCTS;
       
  1839   ppush1(cts);
  1835   ppush1(cts);
  1840 }
  1836 }
  1841 
  1837 
  1842 void GenerateOopMap::do_multianewarray(int dims, int bci) {
  1838 void GenerateOopMap::do_multianewarray(int dims, int bci) {
  1843   assert(dims >= 1, "sanity check");
  1839   assert(dims >= 1, "sanity check");