comparison src/share/vm/runtime/frame.hpp @ 4970:33df1aeaebbf

Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 27 Feb 2012 13:10:13 +0100
parents 3dbcd1013cc8 5dbed2f542ff
children 957c266d8bc5
comparison
equal deleted inserted replaced
4703:2cfb7fb2dce7 4970:33df1aeaebbf
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.
220 intptr_t* unextended_sp() const; 220 intptr_t* unextended_sp() const;
221 221
222 // returns the stack pointer of the calling frame 222 // returns the stack pointer of the calling frame
223 intptr_t* sender_sp() const; 223 intptr_t* sender_sp() const;
224 224
225 // Returns the real 'frame pointer' for the current frame.
226 // This is the value expected by the platform ABI when it defines a
227 // frame pointer register. It may differ from the effective value of
228 // the FP register when that register is used in the JVM for other
229 // purposes (like compiled frames on some platforms).
230 // On other platforms, it is defined so that the stack area used by
231 // this frame goes from real_fp() to sp().
232 intptr_t* real_fp() const;
233
225 // Deoptimization info, if needed (platform dependent). 234 // Deoptimization info, if needed (platform dependent).
226 // Stored in the initial_info field of the unroll info, to be used by 235 // Stored in the initial_info field of the unroll info, to be used by
227 // the platform dependent deoptimization blobs. 236 // the platform dependent deoptimization blobs.
228 intptr_t *initial_deoptimization_info(); 237 intptr_t *initial_deoptimization_info();
229 238
485 # include "frame_ppc.hpp" 494 # include "frame_ppc.hpp"
486 #endif 495 #endif
487 496
488 }; 497 };
489 498
490 #ifdef ASSERT 499 #ifndef PRODUCT
491 // A simple class to describe a location on the stack 500 // A simple class to describe a location on the stack
492 class FrameValue VALUE_OBJ_CLASS_SPEC { 501 class FrameValue VALUE_OBJ_CLASS_SPEC {
493 public: 502 public:
494 intptr_t* location; 503 intptr_t* location;
495 char* description; 504 char* description;
515 524
516 public: 525 public:
517 // Used by frame functions to describe locations. 526 // Used by frame functions to describe locations.
518 void describe(int owner, intptr_t* location, const char* description, int priority = 0); 527 void describe(int owner, intptr_t* location, const char* description, int priority = 0);
519 528
529 #ifdef ASSERT
520 void validate(); 530 void validate();
531 #endif
521 void print(JavaThread* thread); 532 void print(JavaThread* thread);
522 }; 533 };
523 534
524 #endif 535 #endif
525 536