src/share/vm/compiler/disassembler.cpp

Print this page
rev 9627 : 8144853: Print the names of callees in PrintAssembly/PrintInterpreter
Reviewed-by: xxx, yyy


 344           st->print(INTX_FORMAT_W(+) " " PTR_FORMAT, adr - desc->begin(), p2i(adr));
 345         } else if (WizardMode) {
 346           st->print(" " PTR_FORMAT, p2i(adr));
 347         }
 348         return;
 349       }
 350       st->print("Stub::<unknown> " PTR_FORMAT, p2i(adr));
 351       return;
 352     }
 353 
 354     BarrierSet* bs = Universe::heap()->barrier_set();
 355     if (bs->is_a(BarrierSet::CardTableModRef) &&
 356         adr == (address)(barrier_set_cast<CardTableModRefBS>(bs)->byte_map_base)) {
 357       st->print("word_map_base");
 358       if (WizardMode) st->print(" " INTPTR_FORMAT, p2i(adr));
 359       return;
 360     }
 361   }
 362 
 363   // Fall through to a simple (hexadecimal) numeral.
 364   st->print(PTR_FORMAT, p2i(adr));












 365 }
 366 
 367 void decode_env::print_insn_labels() {
 368   address p = cur_insn();
 369   outputStream* st = output();
 370   CodeBlob* cb = _code;
 371   if (cb != NULL) {
 372     cb->print_block_comment(st, p);
 373   }
 374   _strings.print_block_comment(st, (intptr_t)(p - _start));
 375   if (_print_pc) {
 376     st->print("  " PTR_FORMAT ": ", p2i(p));
 377   }
 378 }
 379 
 380 void decode_env::print_insn_bytes(address pc, address pc_limit) {
 381   outputStream* st = output();
 382   size_t incr = 1;
 383   size_t perline = _bytes_per_line;
 384   if ((size_t) Disassembler::pd_instruction_alignment() >= sizeof(int)




 344           st->print(INTX_FORMAT_W(+) " " PTR_FORMAT, adr - desc->begin(), p2i(adr));
 345         } else if (WizardMode) {
 346           st->print(" " PTR_FORMAT, p2i(adr));
 347         }
 348         return;
 349       }
 350       st->print("Stub::<unknown> " PTR_FORMAT, p2i(adr));
 351       return;
 352     }
 353 
 354     BarrierSet* bs = Universe::heap()->barrier_set();
 355     if (bs->is_a(BarrierSet::CardTableModRef) &&
 356         adr == (address)(barrier_set_cast<CardTableModRefBS>(bs)->byte_map_base)) {
 357       st->print("word_map_base");
 358       if (WizardMode) st->print(" " INTPTR_FORMAT, p2i(adr));
 359       return;
 360     }
 361   }
 362 
 363   // Fall through to a simple (hexadecimal) numeral.
 364   static char buf[O_BUFLEN];
 365   int offset;
 366   bool found;
 367   found = os::dll_address_to_function_name(adr, buf, sizeof(buf), &offset);
 368 
 369   if (found) {
 370     st->print("  " PTR_FORMAT " = %s",  p2i(adr), buf);
 371     if (offset != 0) {
 372       st->print("+%d", offset);
 373     }
 374   } else {
 375     st->print("  " PTR_FORMAT, p2i(adr));
 376   }
 377 }
 378 
 379 void decode_env::print_insn_labels() {
 380   address p = cur_insn();
 381   outputStream* st = output();
 382   CodeBlob* cb = _code;
 383   if (cb != NULL) {
 384     cb->print_block_comment(st, p);
 385   }
 386   _strings.print_block_comment(st, (intptr_t)(p - _start));
 387   if (_print_pc) {
 388     st->print("  " PTR_FORMAT ": ", p2i(p));
 389   }
 390 }
 391 
 392 void decode_env::print_insn_bytes(address pc, address pc_limit) {
 393   outputStream* st = output();
 394   size_t incr = 1;
 395   size_t perline = _bytes_per_line;
 396   if ((size_t) Disassembler::pd_instruction_alignment() >= sizeof(int)