hotspot/src/share/vm/ci/ciMethodData.hpp

Print this page
rev 611 : Merge

*** 1,10 **** #ifdef USE_PRAGMA_IDENT_HDR #pragma ident "@(#)ciMethodData.hpp 1.28 07/09/28 10:23:22 JVM" #endif /* ! * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,10 ---- #ifdef USE_PRAGMA_IDENT_HDR #pragma ident "@(#)ciMethodData.hpp 1.28 07/09/28 10:23:22 JVM" #endif /* ! * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 31,40 **** --- 31,41 ---- class ciReceiverTypeData; class ciRetData; class ciBranchData; class ciArrayData; class ciMultiBranchData; + class ciArgInfoData; typedef ProfileData ciProfileData; class ciBitData : public BitData { public:
*** 122,131 **** --- 123,137 ---- class ciMultiBranchData : public MultiBranchData { public: ciMultiBranchData(DataLayout* layout) : MultiBranchData(layout) {}; }; + class ciArgInfoData : public ArgInfoData { + public: + ciArgInfoData(DataLayout* layout) : ArgInfoData(layout) {}; + }; + // ciMethodData // // This class represents a methodDataOop in the HotSpot virtual // machine.
*** 164,176 **** ciMethodData(methodDataHandle h_md); ciMethodData(); // Accessors ! int data_size() { return _data_size; } ! int extra_data_size() { return _extra_data_size; } ! intptr_t * data() { return _data; } methodDataOop get_methodDataOop() const { if (handle() == NULL) return NULL; methodDataOop mdo = (methodDataOop)get_oop(); assert(mdo != NULL, "illegal use of unloaded method data"); --- 170,182 ---- ciMethodData(methodDataHandle h_md); ciMethodData(); // Accessors ! int data_size() const { return _data_size; } ! int extra_data_size() const { return _extra_data_size; } ! intptr_t * data() const { return _data; } methodDataOop get_methodDataOop() const { if (handle() == NULL) return NULL; methodDataOop mdo = (methodDataOop)get_oop(); assert(mdo != NULL, "illegal use of unloaded method data");
*** 179,189 **** const char* type_string() { return "ciMethodData"; } void print_impl(outputStream* st); ! DataLayout* data_layout_at(int data_index) { assert(data_index % sizeof(intptr_t) == 0, "unaligned"); return (DataLayout*) (((address)_data) + data_index); } bool out_of_bounds(int data_index) { --- 185,195 ---- const char* type_string() { return "ciMethodData"; } void print_impl(outputStream* st); ! DataLayout* data_layout_at(int data_index) const { assert(data_index % sizeof(intptr_t) == 0, "unaligned"); return (DataLayout*) (((address)_data) + data_index); } bool out_of_bounds(int data_index) {
*** 208,217 **** --- 214,225 ---- // What is the index of the first data entry? int first_di() { return 0; } + ciArgInfoData *arg_info() const; + public: bool is_method_data() { return true; } bool is_empty() { return _state == empty_state; } bool is_mature() { return _state == mature_state; }
*** 271,284 **** --- 279,294 ---- bool eflag_set(methodDataOopDesc::EscapeFlag f) const; void set_arg_local(int i); void set_arg_stack(int i); void set_arg_returned(int i); + void set_arg_modified(int arg, uint val); bool is_arg_local(int i) const; bool is_arg_stack(int i) const; bool is_arg_returned(int i) const; + uint arg_modified(int arg) const; // Code generation helper ByteSize offset_of_slot(ciProfileData* data, ByteSize slot_offset_in_data); int byte_offset_of_slot(ciProfileData* data, ByteSize slot_offset_in_data) { return in_bytes(offset_of_slot(data, slot_offset_in_data)); }