src/share/vm/runtime/frame.hpp

changeset 3467
0a10d80352d5
parent 3451
5dbed2f542ff
child 3969
1d7922586cf6
equal deleted inserted replaced
3466:b4ebad3520bb 3467:0a10d80352d5
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.
219 intptr_t* unextended_sp() const; 219 intptr_t* unextended_sp() const;
220 220
221 // returns the stack pointer of the calling frame 221 // returns the stack pointer of the calling frame
222 intptr_t* sender_sp() const; 222 intptr_t* sender_sp() const;
223 223
224 // Returns the real 'frame pointer' for the current frame.
225 // This is the value expected by the platform ABI when it defines a
226 // frame pointer register. It may differ from the effective value of
227 // the FP register when that register is used in the JVM for other
228 // purposes (like compiled frames on some platforms).
229 // On other platforms, it is defined so that the stack area used by
230 // this frame goes from real_fp() to sp().
231 intptr_t* real_fp() const;
232
224 // Deoptimization info, if needed (platform dependent). 233 // Deoptimization info, if needed (platform dependent).
225 // Stored in the initial_info field of the unroll info, to be used by 234 // Stored in the initial_info field of the unroll info, to be used by
226 // the platform dependent deoptimization blobs. 235 // the platform dependent deoptimization blobs.
227 intptr_t *initial_deoptimization_info(); 236 intptr_t *initial_deoptimization_info();
228 237
483 # include "frame_ppc.hpp" 492 # include "frame_ppc.hpp"
484 #endif 493 #endif
485 494
486 }; 495 };
487 496
488 #ifdef ASSERT 497 #ifndef PRODUCT
489 // A simple class to describe a location on the stack 498 // A simple class to describe a location on the stack
490 class FrameValue VALUE_OBJ_CLASS_SPEC { 499 class FrameValue VALUE_OBJ_CLASS_SPEC {
491 public: 500 public:
492 intptr_t* location; 501 intptr_t* location;
493 char* description; 502 char* description;
513 522
514 public: 523 public:
515 // Used by frame functions to describe locations. 524 // Used by frame functions to describe locations.
516 void describe(int owner, intptr_t* location, const char* description, int priority = 0); 525 void describe(int owner, intptr_t* location, const char* description, int priority = 0);
517 526
527 #ifdef ASSERT
518 void validate(); 528 void validate();
529 #endif
519 void print(JavaThread* thread); 530 void print(JavaThread* thread);
520 }; 531 };
521 532
522 #endif 533 #endif
523 534

mercurial