Mercurial > hg > graal-jvmci-8
comparison src/share/vm/compiler/disassembler.cpp @ 3363:167b70ff3abc
6939861: JVM should handle more conversion operations
Reviewed-by: twisti, jrose
author | never |
---|---|
date | Fri, 06 May 2011 16:33:13 -0700 |
parents | 1d1603768966 |
children | 3e23978ea0c3 |
comparison
equal
deleted
inserted
replaced
3362:d4c1fbc3de95 | 3363:167b70ff3abc |
---|---|
281 desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset); | 281 desc = StubCodeDesc::desc_for(adr + frame::pc_return_offset); |
282 if (desc != NULL) { | 282 if (desc != NULL) { |
283 st->print("Stub::%s", desc->name()); | 283 st->print("Stub::%s", desc->name()); |
284 if (desc->begin() != adr) | 284 if (desc->begin() != adr) |
285 st->print("%+d 0x%p",adr - desc->begin(), adr); | 285 st->print("%+d 0x%p",adr - desc->begin(), adr); |
286 else if (WizardMode) st->print(" " INTPTR_FORMAT, adr); | 286 else if (WizardMode) st->print(" " PTR_FORMAT, adr); |
287 return; | 287 return; |
288 } | 288 } |
289 st->print("Stub::<unknown> " INTPTR_FORMAT, adr); | 289 st->print("Stub::<unknown> " PTR_FORMAT, adr); |
290 return; | 290 return; |
291 } | 291 } |
292 | 292 |
293 BarrierSet* bs = Universe::heap()->barrier_set(); | 293 BarrierSet* bs = Universe::heap()->barrier_set(); |
294 if (bs->kind() == BarrierSet::CardTableModRef && | 294 if (bs->kind() == BarrierSet::CardTableModRef && |
312 } | 312 } |
313 return; | 313 return; |
314 } | 314 } |
315 } | 315 } |
316 | 316 |
317 // Fall through to a simple numeral. | 317 // Fall through to a simple (hexadecimal) numeral. |
318 st->print(INTPTR_FORMAT, (intptr_t)adr); | 318 st->print(PTR_FORMAT, adr); |
319 } | 319 } |
320 | 320 |
321 void decode_env::print_insn_labels() { | 321 void decode_env::print_insn_labels() { |
322 address p = cur_insn(); | 322 address p = cur_insn(); |
323 outputStream* st = output(); | 323 outputStream* st = output(); |
324 CodeBlob* cb = _code; | 324 CodeBlob* cb = _code; |
325 if (cb != NULL) { | 325 if (cb != NULL) { |
326 cb->print_block_comment(st, p); | 326 cb->print_block_comment(st, p); |
327 } | 327 } |
328 if (_print_pc) { | 328 if (_print_pc) { |
329 st->print(" " INTPTR_FORMAT ": ", (intptr_t) p); | 329 st->print(" " PTR_FORMAT ": ", p); |
330 } | 330 } |
331 } | 331 } |
332 | 332 |
333 void decode_env::print_insn_bytes(address pc, address pc_limit) { | 333 void decode_env::print_insn_bytes(address pc, address pc_limit) { |
334 outputStream* st = output(); | 334 outputStream* st = output(); |
430 | 430 |
431 | 431 |
432 void Disassembler::decode(CodeBlob* cb, outputStream* st) { | 432 void Disassembler::decode(CodeBlob* cb, outputStream* st) { |
433 if (!load_library()) return; | 433 if (!load_library()) return; |
434 decode_env env(cb, st); | 434 decode_env env(cb, st); |
435 env.output()->print_cr("Decoding CodeBlob " INTPTR_FORMAT, cb); | 435 env.output()->print_cr("Decoding CodeBlob " PTR_FORMAT, cb); |
436 env.decode_instructions(cb->code_begin(), cb->code_end()); | 436 env.decode_instructions(cb->code_begin(), cb->code_end()); |
437 } | 437 } |
438 | 438 |
439 | 439 |
440 void Disassembler::decode(address start, address end, outputStream* st) { | 440 void Disassembler::decode(address start, address end, outputStream* st) { |
444 } | 444 } |
445 | 445 |
446 void Disassembler::decode(nmethod* nm, outputStream* st) { | 446 void Disassembler::decode(nmethod* nm, outputStream* st) { |
447 if (!load_library()) return; | 447 if (!load_library()) return; |
448 decode_env env(nm, st); | 448 decode_env env(nm, st); |
449 env.output()->print_cr("Decoding compiled method " INTPTR_FORMAT ":", nm); | 449 env.output()->print_cr("Decoding compiled method " PTR_FORMAT ":", nm); |
450 env.output()->print_cr("Code:"); | 450 env.output()->print_cr("Code:"); |
451 | 451 |
452 #ifdef SHARK | 452 #ifdef SHARK |
453 SharkEntry* entry = (SharkEntry *) nm->code_begin(); | 453 SharkEntry* entry = (SharkEntry *) nm->code_begin(); |
454 unsigned char* p = entry->code_start(); | 454 unsigned char* p = entry->code_start(); |
476 if (nm->consts_size() > 0) { | 476 if (nm->consts_size() > 0) { |
477 nm->print_nmethod_labels(env.output(), nm->consts_begin()); | 477 nm->print_nmethod_labels(env.output(), nm->consts_begin()); |
478 int offset = 0; | 478 int offset = 0; |
479 for (address p = nm->consts_begin(); p < nm->consts_end(); p += 4, offset += 4) { | 479 for (address p = nm->consts_begin(); p < nm->consts_end(); p += 4, offset += 4) { |
480 if ((offset % 8) == 0) { | 480 if ((offset % 8) == 0) { |
481 env.output()->print_cr(" " INTPTR_FORMAT " (offset: %4d): " PTR32_FORMAT " " PTR64_FORMAT, (intptr_t) p, offset, *((int32_t*) p), *((int64_t*) p)); | 481 env.output()->print_cr(" " PTR_FORMAT " (offset: %4d): " PTR32_FORMAT " " PTR64_FORMAT, p, offset, *((int32_t*) p), *((int64_t*) p)); |
482 } else { | 482 } else { |
483 env.output()->print_cr(" " INTPTR_FORMAT " (offset: %4d): " PTR32_FORMAT, (intptr_t) p, offset, *((int32_t*) p)); | 483 env.output()->print_cr(" " PTR_FORMAT " (offset: %4d): " PTR32_FORMAT, p, offset, *((int32_t*) p)); |
484 } | 484 } |
485 } | 485 } |
486 } | 486 } |
487 | 487 |
488 env.decode_instructions(p, end); | 488 env.decode_instructions(p, end); |