Mercurial > hg > truffle
comparison src/share/vm/oops/methodData.hpp @ 9760:c76b43ed5089
Added infrastructure for recording invoked methods in the profiling information.
author | Christian Haeubl <haeubl@ssw.jku.at> |
---|---|
date | Fri, 17 May 2013 15:38:22 +0200 |
parents | 89e4d67fdd2a |
children | 57e5211846f9 |
comparison
equal
deleted
inserted
replaced
9759:580faa2ee288 | 9760:c76b43ed5089 |
---|---|
757 virtual bool is_VirtualCallData() { return true; } | 757 virtual bool is_VirtualCallData() { return true; } |
758 | 758 |
759 static int static_cell_count() { | 759 static int static_cell_count() { |
760 // At this point we could add more profile state, e.g., for arguments. | 760 // At this point we could add more profile state, e.g., for arguments. |
761 // But for now it's the same size as the base record type. | 761 // But for now it's the same size as the base record type. |
762 return ReceiverTypeData::static_cell_count(); | 762 return ReceiverTypeData::static_cell_count() GRAAL_ONLY(+ (uint) MethodProfileWidth * receiver_type_row_cell_count); |
763 } | 763 } |
764 | 764 |
765 virtual int cell_count() { | 765 virtual int cell_count() { |
766 return static_cell_count(); | 766 return static_cell_count(); |
767 } | 767 } |
768 | |
769 #ifdef GRAAL | |
770 static ByteSize method_offset(uint row) { | |
771 return cell_offset(method_cell_index(row)); | |
772 } | |
773 static ByteSize method_count_offset(uint row) { | |
774 return cell_offset(method_count_cell_index(row)); | |
775 } | |
776 static int method_cell_index(uint row) { | |
777 return receiver0_offset + (row + TypeProfileWidth) * receiver_type_row_cell_count; | |
778 } | |
779 static int method_count_cell_index(uint row) { | |
780 return count0_offset + (row + TypeProfileWidth) * receiver_type_row_cell_count; | |
781 } | |
782 #endif | |
768 | 783 |
769 // Direct accessors | 784 // Direct accessors |
770 static ByteSize virtual_call_data_size() { | 785 static ByteSize virtual_call_data_size() { |
771 return cell_offset(static_cell_count()); | 786 return cell_offset(static_cell_count()); |
772 } | 787 } |