Mercurial > hg > truffle
comparison src/share/vm/compiler/disassembler.cpp @ 7062:8c5333c80cfd
increased CompileThreshold to increase reliability of profiling information
increased InitialCodeCacheSize to fit the bootstrapping
added flag -XX:GraalClassPath to allow providing a .jar or .zip file that contains all Graal classes
added support for the flag -XX:TraceCompilationPolicy to the Graal-specific compilation policy
author | Christian Haeubl <haeubl@ssw.jku.at> |
---|---|
date | Thu, 15 Nov 2012 11:40:50 +0100 |
parents | 3e23978ea0c3 |
children | 7d815d842ee0 |
comparison
equal
deleted
inserted
replaced
6717:5bbe9618118e | 7062:8c5333c80cfd |
---|---|
461 | 461 |
462 | 462 |
463 void Disassembler::decode(CodeBlob* cb, outputStream* st) { | 463 void Disassembler::decode(CodeBlob* cb, outputStream* st) { |
464 if (!load_library()) return; | 464 if (!load_library()) return; |
465 decode_env env(cb, st); | 465 decode_env env(cb, st); |
466 env.output()->print_cr("Decoding CodeBlob " PTR_FORMAT, cb); | 466 env.output()->print_cr("----------------------------------------------------------------------"); |
467 env.output()->print_cr("%s at [" PTR_FORMAT ", " PTR_FORMAT "] %d bytes", cb->name(), cb->code_begin(), cb->code_end(), ((jlong)(cb->code_end() - cb->code_begin())) * sizeof(unsigned char*)); | |
467 env.decode_instructions(cb->code_begin(), cb->code_end()); | 468 env.decode_instructions(cb->code_begin(), cb->code_end()); |
468 } | 469 } |
469 | 470 |
470 | 471 |
471 void Disassembler::decode(address start, address end, outputStream* st) { | 472 void Disassembler::decode(address start, address end, outputStream* st) { |
475 } | 476 } |
476 | 477 |
477 void Disassembler::decode(nmethod* nm, outputStream* st) { | 478 void Disassembler::decode(nmethod* nm, outputStream* st) { |
478 if (!load_library()) return; | 479 if (!load_library()) return; |
479 decode_env env(nm, st); | 480 decode_env env(nm, st); |
480 env.output()->print_cr("Decoding compiled method " PTR_FORMAT ":", nm); | 481 env.output()->print_cr("----------------------------------------------------------------------"); |
481 env.output()->print_cr("Code:"); | |
482 | 482 |
483 #ifdef SHARK | 483 #ifdef SHARK |
484 SharkEntry* entry = (SharkEntry *) nm->code_begin(); | 484 SharkEntry* entry = (SharkEntry *) nm->code_begin(); |
485 unsigned char* p = entry->code_start(); | 485 unsigned char* p = entry->code_start(); |
486 unsigned char* end = entry->code_limit(); | 486 unsigned char* end = entry->code_limit(); |
487 #else | 487 #else |
488 unsigned char* p = nm->code_begin(); | 488 unsigned char* p = nm->code_begin(); |
489 unsigned char* end = nm->code_end(); | 489 unsigned char* end = nm->code_end(); |
490 #endif // SHARK | 490 #endif // SHARK |
491 | |
492 nm->method()->method_holder()->klass_part()->name()->print_symbol_on(env.output()); | |
493 env.output()->print("."); | |
494 nm->method()->name()->print_symbol_on(env.output()); | |
495 env.output()->print_cr(" [" PTR_FORMAT ", " PTR_FORMAT "] %d bytes", p, end, ((jlong)(end - p)) * sizeof(unsigned char*)); | |
491 | 496 |
492 // If there has been profiling, print the buckets. | 497 // If there has been profiling, print the buckets. |
493 if (FlatProfiler::bucket_start_for(p) != NULL) { | 498 if (FlatProfiler::bucket_start_for(p) != NULL) { |
494 unsigned char* p1 = p; | 499 unsigned char* p1 = p; |
495 int total_bucket_count = 0; | 500 int total_bucket_count = 0; |