hotspot/src/share/vm/oops/generateOopMap.cpp
changeset 4429 d7eb4e2099aa
parent 3261 c7d5aae8d3f7
child 4567 7fc02fbe5c7a
equal deleted inserted replaced
4428:d1617f46285d 4429:d7eb4e2099aa
  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(false, true,  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;
  1898   assert(i<=3, "sanity check");
  1898   assert(i<=3, "sanity check");
  1899   pp(in, out);
  1899   pp(in, out);
  1900 }
  1900 }
  1901 
  1901 
  1902 void GenerateOopMap::do_method(int is_static, int is_interface, int idx, int bci) {
  1902 void GenerateOopMap::do_method(int is_static, int is_interface, int idx, int bci) {
  1903   // Dig up signature for field in constant pool
  1903  // Dig up signature for field in constant pool
  1904   constantPoolOop cp    = _method->constants();
  1904   constantPoolOop cp  = _method->constants();
  1905   int nameAndTypeIdx    = cp->name_and_type_ref_index_at(idx);
  1905   symbolOop signature = cp->signature_ref_at(idx);
  1906   int signatureIdx      = cp->signature_ref_index_at(nameAndTypeIdx);  // @@@@@
       
  1907   symbolOop signature   = cp->symbol_at(signatureIdx);
       
  1908 
  1906 
  1909   // Parse method signature
  1907   // Parse method signature
  1910   CellTypeState out[4];
  1908   CellTypeState out[4];
  1911   CellTypeState in[MAXARGSIZE+1];   // Includes result
  1909   CellTypeState in[MAXARGSIZE+1];   // Includes result
  1912   ComputeCallStack cse(signature);
  1910   ComputeCallStack cse(signature);