1.1 --- a/src/share/vm/runtime/frame.hpp Thu Jan 26 14:14:55 2012 -0800 1.2 +++ b/src/share/vm/runtime/frame.hpp Fri Jan 27 09:04:57 2012 +0100 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -221,6 +221,15 @@ 1.11 // returns the stack pointer of the calling frame 1.12 intptr_t* sender_sp() const; 1.13 1.14 + // Returns the real 'frame pointer' for the current frame. 1.15 + // This is the value expected by the platform ABI when it defines a 1.16 + // frame pointer register. It may differ from the effective value of 1.17 + // the FP register when that register is used in the JVM for other 1.18 + // purposes (like compiled frames on some platforms). 1.19 + // On other platforms, it is defined so that the stack area used by 1.20 + // this frame goes from real_fp() to sp(). 1.21 + intptr_t* real_fp() const; 1.22 + 1.23 // Deoptimization info, if needed (platform dependent). 1.24 // Stored in the initial_info field of the unroll info, to be used by 1.25 // the platform dependent deoptimization blobs. 1.26 @@ -485,7 +494,7 @@ 1.27 1.28 }; 1.29 1.30 -#ifdef ASSERT 1.31 +#ifndef PRODUCT 1.32 // A simple class to describe a location on the stack 1.33 class FrameValue VALUE_OBJ_CLASS_SPEC { 1.34 public: 1.35 @@ -515,7 +524,9 @@ 1.36 // Used by frame functions to describe locations. 1.37 void describe(int owner, intptr_t* location, const char* description, int priority = 0); 1.38 1.39 +#ifdef ASSERT 1.40 void validate(); 1.41 +#endif 1.42 void print(JavaThread* thread); 1.43 }; 1.44