hotspot/src/cpu/sparc/vm/frame_sparc.cpp
changeset 17006 b9bfa72b7dda
parent 15801 fefae82e1067
child 18025 b7bcf7497f93
equal deleted inserted replaced
17004:4d2371d76a19 17006:b9bfa72b7dda
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   302       return false;
   302       return false;
   303     }
   303     }
   304 
   304 
   305     // The sender should positively be an nmethod or call_stub. On sparc we might in fact see something else.
   305     // The sender should positively be an nmethod or call_stub. On sparc we might in fact see something else.
   306     // The cause of this is because at a save instruction the O7 we get is a leftover from an earlier
   306     // The cause of this is because at a save instruction the O7 we get is a leftover from an earlier
   307     // window use. So if a runtime stub creates two frames (common in fastdebug/jvmg) then we see the
   307     // window use. So if a runtime stub creates two frames (common in fastdebug/debug) then we see the
   308     // stale pc. So if the sender blob is not something we'd expect we have little choice but to declare
   308     // stale pc. So if the sender blob is not something we'd expect we have little choice but to declare
   309     // the stack unwalkable. pd_get_top_frame_for_signal_handler tries to recover from this by unwinding
   309     // the stack unwalkable. pd_get_top_frame_for_signal_handler tries to recover from this by unwinding
   310     // that initial frame and retrying.
   310     // that initial frame and retrying.
   311 
   311 
   312     if (!sender_blob->is_nmethod()) {
   312     if (!sender_blob->is_nmethod()) {