hotspot/src/share/vm/runtime/frame.inline.hpp
changeset 25714 87fa6860b5ae
parent 22924 5da64eb25f2a
child 25717 7493b8ac31b7
equal deleted inserted replaced
25713:e2ed3bec8c2c 25714:87fa6860b5ae
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2014, 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.
    53 # include "interpreterFrame_zero.hpp"
    53 # include "interpreterFrame_zero.hpp"
    54 # include "sharkFrame_zero.hpp"
    54 # include "sharkFrame_zero.hpp"
    55 #endif
    55 #endif
    56 #endif
    56 #endif
    57 
    57 
    58 // This file holds platform-independent bodies of inline functions for frames.
       
    59 
       
    60 // Note: The bcx usually contains the bcp; however during GC it contains the bci
       
    61 //       (changed by gc_prologue() and gc_epilogue()) to be Method* position
       
    62 //       independent. These accessors make sure the correct value is returned
       
    63 //       by testing the range of the bcx value. bcp's are guaranteed to be above
       
    64 //       max_method_code_size, since methods are always allocated in OldSpace and
       
    65 //       Eden is allocated before OldSpace.
       
    66 //
       
    67 //       The bcp is accessed sometimes during GC for ArgumentDescriptors; than
       
    68 //       the correct translation has to be performed (was bug).
       
    69 
       
    70 inline bool frame::is_bci(intptr_t bcx) {
       
    71 #ifdef _LP64
       
    72   return ((uintptr_t) bcx) <= ((uintptr_t) max_method_code_size) ;
       
    73 #else
       
    74   return 0 <= bcx && bcx <= max_method_code_size;
       
    75 #endif
       
    76 }
       
    77 
       
    78 inline bool frame::is_entry_frame() const {
    58 inline bool frame::is_entry_frame() const {
    79   return StubRoutines::returns_to_call_stub(pc());
    59   return StubRoutines::returns_to_call_stub(pc());
    80 }
    60 }
    81 
    61 
    82 inline bool frame::is_stub_frame() const {
    62 inline bool frame::is_stub_frame() const {