comparison src/cpu/sparc/vm/frame_sparc.cpp @ 10116:2a9d97b57920

Merge
author bharadwaj
date Fri, 19 Apr 2013 03:13:04 -0400
parents f36e073d56a4
children f2110083203d
comparison
equal deleted inserted replaced
10108:9500809ceead 10116:2a9d97b57920
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()) {