< prev index next >

src/share/vm/compiler/disassembler.cpp

Print this page
rev 7807 : [mq]: bcast


 323     return;
 324   }
 325 
 326   if (Universe::is_fully_initialized()) {
 327     if (StubRoutines::contains(adr)) {
 328       StubCodeDesc* desc = StubCodeDesc::desc_for(adr);
 329       if (desc == NULL)
 330         desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset);
 331       if (desc != NULL) {
 332         st->print("Stub::%s", desc->name());
 333         if (desc->begin() != adr)
 334           st->print("%+d 0x%p",adr - desc->begin(), adr);
 335         else if (WizardMode) st->print(" " PTR_FORMAT, adr);
 336         return;
 337       }
 338       st->print("Stub::<unknown> " PTR_FORMAT, adr);
 339       return;
 340     }
 341 
 342     BarrierSet* bs = Universe::heap()->barrier_set();
 343     if (bs->kind() == BarrierSet::CardTableModRef &&
 344         adr == (address)((CardTableModRefBS*)(bs))->byte_map_base) {
 345       st->print("word_map_base");
 346       if (WizardMode) st->print(" " INTPTR_FORMAT, (intptr_t)adr);
 347       return;
 348     }
 349 
 350     oop obj;
 351     if (_nm != NULL
 352         && (obj = _nm->embeddedOop_at(cur_insn())) != NULL
 353         && (address) obj == adr
 354         && Universe::heap()->is_in(obj)
 355         && Universe::heap()->is_in(obj->klass())) {
 356       julong c = st->count();
 357       obj->print_value_on(st);
 358       if (st->count() == c) {
 359         // No output.  (Can happen in product builds.)
 360         st->print("(a %s)", obj->klass()->external_name());
 361       }
 362       return;
 363     }
 364   }




 323     return;
 324   }
 325 
 326   if (Universe::is_fully_initialized()) {
 327     if (StubRoutines::contains(adr)) {
 328       StubCodeDesc* desc = StubCodeDesc::desc_for(adr);
 329       if (desc == NULL)
 330         desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset);
 331       if (desc != NULL) {
 332         st->print("Stub::%s", desc->name());
 333         if (desc->begin() != adr)
 334           st->print("%+d 0x%p",adr - desc->begin(), adr);
 335         else if (WizardMode) st->print(" " PTR_FORMAT, adr);
 336         return;
 337       }
 338       st->print("Stub::<unknown> " PTR_FORMAT, adr);
 339       return;
 340     }
 341 
 342     BarrierSet* bs = Universe::heap()->barrier_set();
 343     if (bs->is_a(BarrierSet::CardTableModRef) &&
 344         adr == (address)(barrier_set_cast<CardTableModRefBS>(bs)->byte_map_base)) {
 345       st->print("word_map_base");
 346       if (WizardMode) st->print(" " INTPTR_FORMAT, (intptr_t)adr);
 347       return;
 348     }
 349 
 350     oop obj;
 351     if (_nm != NULL
 352         && (obj = _nm->embeddedOop_at(cur_insn())) != NULL
 353         && (address) obj == adr
 354         && Universe::heap()->is_in(obj)
 355         && Universe::heap()->is_in(obj->klass())) {
 356       julong c = st->count();
 357       obj->print_value_on(st);
 358       if (st->count() == c) {
 359         // No output.  (Can happen in product builds.)
 360         st->print("(a %s)", obj->klass()->external_name());
 361       }
 362       return;
 363     }
 364   }


< prev index next >