diff --git a/src/share/vm/runtime/java.cpp b/src/share/vm/runtime/java.cpp index 73065fe42a89cc82ab711698240b88de87dea6fc..fa7c647af4a34e366d411d4f27b62eb0c320bef5 100644 --- a/src/share/vm/runtime/java.cpp +++ b/src/share/vm/runtime/java.cpp @@ -243,6 +243,7 @@ void print_statistics() { FlagSetting fs(DisplayVMOutput, DisplayVMOutput && PrintC1Statistics); Runtime1::print_statistics(); Deoptimization::print_statistics(); + SharedRuntime::print_statistics(); nmethod::print_statistics(); } #endif /* COMPILER1 */ @@ -254,8 +255,8 @@ void print_statistics() { #ifndef COMPILER1 Deoptimization::print_statistics(); nmethod::print_statistics(); -#endif //COMPILER1 SharedRuntime::print_statistics(); +#endif //COMPILER1 os::print_statistics(); } diff --git a/src/share/vm/runtime/sharedRuntime.cpp b/src/share/vm/runtime/sharedRuntime.cpp index fb0874532c129f5e7a6054cc6356aeb39efa8f04..34369e82d70b0335d42071084e902c023f7635ee 100644 --- a/src/share/vm/runtime/sharedRuntime.cpp +++ b/src/share/vm/runtime/sharedRuntime.cpp @@ -2130,9 +2130,9 @@ class AdapterFingerPrint : public CHeapObj { public: AdapterFingerPrint(int total_args_passed, BasicType* sig_bt) { // The fingerprint is based on the BasicType signature encoded - // into an array of ints with four entries per int. + // into an array of ints with eight entries per int. int* ptr; - int len = (total_args_passed + 3) >> 2; + int len = (total_args_passed + 7) >> 3; if (len <= (int)(sizeof(_value._compact) / sizeof(int))) { _value._compact[0] = _value._compact[1] = _value._compact[2] = 0; // Storing the signature encoded as signed chars hits about 98% @@ -2145,11 +2145,11 @@ class AdapterFingerPrint : public CHeapObj { ptr = _value._fingerprint; } - // Now pack the BasicTypes with 4 per int + // Now pack the BasicTypes with 8 per int int sig_index = 0; for (int index = 0; index < len; index++) { int value = 0; - for (int byte = 0; byte < 4; byte++) { + for (int byte = 0; byte < 8; byte++) { if (sig_index < total_args_passed) { value = (value << 4) | adapter_encoding(sig_bt[sig_index++]); } @@ -2190,8 +2190,9 @@ class AdapterFingerPrint : public CHeapObj { const char* as_string() { stringStream st; + st.print("0x"); for (int i = 0; i < length(); i++) { - st.print(PTR_FORMAT, value(i)); + st.print("%08x", value(i)); } return st.as_string(); }