Mercurial > hg > graal-compiler
comparison src/cpu/sparc/vm/frame_sparc.cpp @ 10405:f2110083203d
8005849: JEP 167: Event-Based JVM Tracing
Reviewed-by: acorn, coleenp, sla
Contributed-by: Karen Kinnear <karen.kinnear@oracle.com>, Bengt Rutisson <bengt.rutisson@oracle.com>, Calvin Cheung <calvin.cheung@oracle.com>, Erik Gahlin <erik.gahlin@oracle.com>, Erik Helin <erik.helin@oracle.com>, Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>, Keith McGuigan <keith.mcguigan@oracle.com>, Mattias Tobiasson <mattias.tobiasson@oracle.com>, Markus Gronlund <markus.gronlund@oracle.com>, Mikael Auno <mikael.auno@oracle.com>, Nils Eliasson <nils.eliasson@oracle.com>, Nils Loodin <nils.loodin@oracle.com>, Rickard Backman <rickard.backman@oracle.com>, Staffan Larsen <staffan.larsen@oracle.com>, Stefan Karlsson <stefan.karlsson@oracle.com>, Yekaterina Kantserova <yekaterina.kantserova@oracle.com>
author | sla |
---|---|
date | Mon, 10 Jun 2013 11:30:51 +0200 |
parents | f36e073d56a4 |
children | e0c9a1d29eb4 |
comparison
equal
deleted
inserted
replaced
10404:d0add7016434 | 10405:f2110083203d |
---|---|
250 CodeBlob* sender_blob = CodeCache::find_blob_unsafe(sender_pc); | 250 CodeBlob* sender_blob = CodeCache::find_blob_unsafe(sender_pc); |
251 if (sender_pc == NULL || sender_blob == NULL) { | 251 if (sender_pc == NULL || sender_blob == NULL) { |
252 return false; | 252 return false; |
253 } | 253 } |
254 | 254 |
255 // Could be a zombie method | |
256 if (sender_blob->is_zombie() || sender_blob->is_unloaded()) { | |
257 return false; | |
258 } | |
259 | |
260 // Could be a zombie method | |
261 if (sender_blob->is_zombie() || sender_blob->is_unloaded()) { | |
262 return false; | |
263 } | |
264 | |
255 // It should be safe to construct the sender though it might not be valid | 265 // It should be safe to construct the sender though it might not be valid |
256 | 266 |
257 frame sender(_SENDER_SP, younger_sp, adjusted_stack); | 267 frame sender(_SENDER_SP, younger_sp, adjusted_stack); |
258 | 268 |
259 // Do we have a valid fp? | 269 // Do we have a valid fp? |
292 bool jcw_safe = (jcw <= thread->stack_base()) && ( jcw > sender_fp); | 302 bool jcw_safe = (jcw <= thread->stack_base()) && ( jcw > sender_fp); |
293 | 303 |
294 return jcw_safe; | 304 return jcw_safe; |
295 } | 305 } |
296 | 306 |
297 // If the frame size is 0 something is bad because every nmethod has a non-zero frame size | 307 // If the frame size is 0 something (or less) is bad because every nmethod has a non-zero frame size |
298 // because you must allocate window space | 308 // because you must allocate window space |
299 | 309 |
300 if (sender_blob->frame_size() == 0) { | 310 if (sender_blob->frame_size() <= 0) { |
301 assert(!sender_blob->is_nmethod(), "should count return address at least"); | 311 assert(!sender_blob->is_nmethod(), "should count return address at least"); |
302 return false; | 312 return false; |
303 } | 313 } |
304 | 314 |
305 // The sender should positively be an nmethod or call_stub. On sparc we might in fact see something else. | 315 // The sender should positively be an nmethod or call_stub. On sparc we might in fact see something else. |