equal
deleted
inserted
replaced
53 VMEntryWrapper::~VMEntryWrapper() { |
53 VMEntryWrapper::~VMEntryWrapper() { |
54 InterfaceSupport::check_gc_alot(); |
54 InterfaceSupport::check_gc_alot(); |
55 if (WalkStackALot) { |
55 if (WalkStackALot) { |
56 InterfaceSupport::walk_stack(); |
56 InterfaceSupport::walk_stack(); |
57 } |
57 } |
58 #ifdef COMPILER2 |
|
59 // This option is not used by Compiler 1 |
|
60 if (StressDerivedPointers) { |
|
61 InterfaceSupport::stress_derived_pointers(); |
|
62 } |
|
63 #endif |
|
64 if (DeoptimizeALot || DeoptimizeRandom) { |
58 if (DeoptimizeALot || DeoptimizeRandom) { |
65 InterfaceSupport::deoptimizeAll(); |
59 InterfaceSupport::deoptimizeAll(); |
66 } |
60 } |
67 if (ZombieALot) { |
61 if (ZombieALot) { |
68 InterfaceSupport::zombieAll(); |
62 InterfaceSupport::zombieAll(); |
232 } |
226 } |
233 deoptimizeAllCounter++; |
227 deoptimizeAllCounter++; |
234 } |
228 } |
235 |
229 |
236 |
230 |
237 void InterfaceSupport::stress_derived_pointers() { |
|
238 #ifdef COMPILER2 |
|
239 JavaThread *thread = JavaThread::current(); |
|
240 if (!is_init_completed()) return; |
|
241 ResourceMark rm(thread); |
|
242 bool found = false; |
|
243 for (StackFrameStream sfs(thread); !sfs.is_done() && !found; sfs.next()) { |
|
244 CodeBlob* cb = sfs.current()->cb(); |
|
245 if (cb != NULL && cb->oop_maps() ) { |
|
246 // Find oopmap for current method |
|
247 const ImmutableOopMap* map = cb->oop_map_for_return_address(sfs.current()->pc()); |
|
248 assert(map != NULL, "no oopmap found for pc"); |
|
249 found = map->has_derived_pointer(); |
|
250 } |
|
251 } |
|
252 if (found) { |
|
253 // $$$ Not sure what to do here. |
|
254 /* |
|
255 Scavenge::invoke(0); |
|
256 */ |
|
257 } |
|
258 #endif |
|
259 } |
|
260 |
|
261 |
|
262 void InterfaceSupport::verify_stack() { |
231 void InterfaceSupport::verify_stack() { |
263 JavaThread* thread = JavaThread::current(); |
232 JavaThread* thread = JavaThread::current(); |
264 ResourceMark rm(thread); |
233 ResourceMark rm(thread); |
265 // disabled because it throws warnings that oop maps should only be accessed |
234 // disabled because it throws warnings that oop maps should only be accessed |
266 // in VM thread or during debugging |
235 // in VM thread or during debugging |