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); |