Mercurial > hg > graal-jvmci-8
comparison src/share/vm/oops/methodData.hpp @ 14704:b51e29501f30
Merged with jdk9/dev/hotspot changeset 9486a41de3b7
author | twisti |
---|---|
date | Tue, 18 Mar 2014 20:19:10 -0700 |
parents | 12eaf1a47a90 53ed0f89f44e |
children | 92aa6797d639 |
comparison
equal
deleted
inserted
replaced
14647:8f483e200405 | 14704:b51e29501f30 |
---|---|
187 return _header._struct._bci; | 187 return _header._struct._bci; |
188 } | 188 } |
189 | 189 |
190 void set_header(intptr_t value) { | 190 void set_header(intptr_t value) { |
191 _header._bits = value; | 191 _header._bits = value; |
192 } | |
193 bool atomic_set_header(intptr_t value) { | |
194 if (Atomic::cmpxchg_ptr(value, (volatile intptr_t*)&_header._bits, 0) == 0) { | |
195 return true; | |
196 } | |
197 return false; | |
198 } | 192 } |
199 intptr_t header() { | 193 intptr_t header() { |
200 return _header._bits; | 194 return _header._bits; |
201 } | 195 } |
202 void set_cell_at(int index, intptr_t value) { | 196 void set_cell_at(int index, intptr_t value) { |
2141 int _size; | 2135 int _size; |
2142 | 2136 |
2143 // Cached hint for bci_to_dp and bci_to_data | 2137 // Cached hint for bci_to_dp and bci_to_data |
2144 int _hint_di; | 2138 int _hint_di; |
2145 | 2139 |
2140 Mutex _extra_data_lock; | |
2141 | |
2146 MethodData(methodHandle method, int size, TRAPS); | 2142 MethodData(methodHandle method, int size, TRAPS); |
2147 public: | 2143 public: |
2148 static MethodData* allocate(ClassLoaderData* loader_data, methodHandle method, TRAPS); | 2144 static MethodData* allocate(ClassLoaderData* loader_data, methodHandle method, TRAPS); |
2149 MethodData() {}; // For ciMethodData | 2145 MethodData() : _extra_data_lock(Monitor::leaf, "MDO extra data lock") {}; // For ciMethodData |
2150 | 2146 |
2151 bool is_methodData() const volatile { return true; } | 2147 bool is_methodData() const volatile { return true; } |
2152 void initialize(bool for_reprofile = false); | 2148 void initialize(bool for_reprofile = false); |
2153 | 2149 |
2154 // Whole-method sticky bits and flags | 2150 // Whole-method sticky bits and flags |
2263 } | 2259 } |
2264 | 2260 |
2265 // What is the index of the first data entry? | 2261 // What is the index of the first data entry? |
2266 int first_di() const { return 0; } | 2262 int first_di() const { return 0; } |
2267 | 2263 |
2268 ProfileData* bci_to_extra_data_helper(int bci, Method* m, DataLayout*& dp); | 2264 ProfileData* bci_to_extra_data_helper(int bci, Method* m, DataLayout*& dp, bool concurrent); |
2269 // Find or create an extra ProfileData: | 2265 // Find or create an extra ProfileData: |
2270 ProfileData* bci_to_extra_data(int bci, Method* m, bool create_if_missing); | 2266 ProfileData* bci_to_extra_data(int bci, Method* m, bool create_if_missing); |
2271 | 2267 |
2272 // return the argument info cell | 2268 // return the argument info cell |
2273 ArgInfoData *arg_info(); | 2269 ArgInfoData *arg_info(); |