Mercurial > hg > truffle
comparison src/cpu/x86/vm/frame_x86.cpp @ 4852:6d00795f99a1
Merge
author | dsamersoff |
---|---|
date | Wed, 25 Jan 2012 15:03:42 -0800 |
parents | eaa9557116a2 |
children | 82e5a84b7436 |
comparison
equal
deleted
inserted
replaced
4851:a42c07c38c47 | 4852:6d00795f99a1 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2012, 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. |
673 | 673 |
674 intptr_t *frame::initial_deoptimization_info() { | 674 intptr_t *frame::initial_deoptimization_info() { |
675 // used to reset the saved FP | 675 // used to reset the saved FP |
676 return fp(); | 676 return fp(); |
677 } | 677 } |
678 | |
679 intptr_t* frame::real_fp() const { | |
680 if (_cb != NULL) { | |
681 // use the frame size if valid | |
682 int size = _cb->frame_size(); | |
683 if ((size > 0) && | |
684 (! is_ricochet_frame())) { | |
685 // Work-around: ricochet explicitly excluded because frame size is not | |
686 // constant for the ricochet blob but its frame_size could not, for | |
687 // some reasons, be declared as <= 0. This potentially confusing | |
688 // size declaration should be fixed as another CR. | |
689 return unextended_sp() + size; | |
690 } | |
691 } | |
692 // else rely on fp() | |
693 assert(! is_compiled_frame(), "unknown compiled frame size"); | |
694 return fp(); | |
695 } |