Mercurial > hg > graal-compiler
changeset 3841:0f34fdee809e
7071427: AdapterFingerPrint can hold 8 entries per int
Reviewed-by: kvn
author | never |
---|---|
date | Wed, 27 Jul 2011 15:06:35 -0700 |
parents | 4e761e7e6e12 |
children | c7b60b601eb4 |
files | src/share/vm/runtime/java.cpp src/share/vm/runtime/sharedRuntime.cpp |
diffstat | 2 files changed, 8 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/runtime/java.cpp Tue Jul 26 19:35:23 2011 -0700 +++ b/src/share/vm/runtime/java.cpp Wed Jul 27 15:06:35 2011 -0700 @@ -243,6 +243,7 @@ FlagSetting fs(DisplayVMOutput, DisplayVMOutput && PrintC1Statistics); Runtime1::print_statistics(); Deoptimization::print_statistics(); + SharedRuntime::print_statistics(); nmethod::print_statistics(); } #endif /* COMPILER1 */ @@ -254,8 +255,8 @@ #ifndef COMPILER1 Deoptimization::print_statistics(); nmethod::print_statistics(); + SharedRuntime::print_statistics(); #endif //COMPILER1 - SharedRuntime::print_statistics(); os::print_statistics(); }
--- a/src/share/vm/runtime/sharedRuntime.cpp Tue Jul 26 19:35:23 2011 -0700 +++ b/src/share/vm/runtime/sharedRuntime.cpp Wed Jul 27 15:06:35 2011 -0700 @@ -2130,9 +2130,9 @@ 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 @@ 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 @@ 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(); }