< prev index next >

src/share/vm/runtime/frame.hpp

Print this page




  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_RUNTIME_FRAME_HPP
  26 #define SHARE_VM_RUNTIME_FRAME_HPP
  27 
  28 #include "oops/method.hpp"
  29 #include "runtime/basicLock.hpp"
  30 #include "runtime/monitorChunk.hpp"
  31 #include "runtime/registerMap.hpp"
  32 #include "utilities/top.hpp"
  33 #ifdef COMPILER2
  34 #if defined ADGLOBALS_MD_HPP
  35 # include ADGLOBALS_MD_HPP
  36 #elif defined TARGET_ARCH_MODEL_x86_32
  37 # include "adfiles/adGlobals_x86_32.hpp"
  38 #elif defined TARGET_ARCH_MODEL_x86_64
  39 # include "adfiles/adGlobals_x86_64.hpp"


  40 #elif defined TARGET_ARCH_MODEL_sparc
  41 # include "adfiles/adGlobals_sparc.hpp"
  42 #elif defined TARGET_ARCH_MODEL_zero
  43 # include "adfiles/adGlobals_zero.hpp"
  44 #elif defined TARGET_ARCH_MODEL_ppc_64
  45 # include "adfiles/adGlobals_ppc_64.hpp"
  46 #endif
  47 #endif // COMPILER2
  48 #ifdef TARGET_ARCH_zero
  49 # include "stack_zero.hpp"
  50 #endif
  51 
  52 typedef class BytecodeInterpreter* interpreterState;
  53 
  54 class CodeBlob;
  55 class FrameValues;
  56 class vframeArray;
  57 
  58 
  59 // A frame represents a physical stack frame (an activation).  Frames


 467 
 468  public:
 469   // Zapping
 470   void zap_dead_locals            (JavaThread* thread, const RegisterMap* map);
 471   void zap_dead_interpreted_locals(JavaThread* thread, const RegisterMap* map);
 472   void zap_dead_compiled_locals   (JavaThread* thread, const RegisterMap* map);
 473   void zap_dead_entry_locals      (JavaThread* thread, const RegisterMap* map);
 474   void zap_dead_deoptimized_locals(JavaThread* thread, const RegisterMap* map);
 475 # endif
 476   // Verification
 477   void verify(const RegisterMap* map);
 478   static bool verify_return_pc(address x);
 479   static bool is_bci(intptr_t bcx);
 480   // Usage:
 481   // assert(frame::verify_return_pc(return_address), "must be a return pc");
 482 
 483   int pd_oop_map_offset_adjustment() const;
 484 
 485 #ifdef TARGET_ARCH_x86
 486 # include "frame_x86.hpp"



 487 #endif
 488 #ifdef TARGET_ARCH_sparc
 489 # include "frame_sparc.hpp"
 490 #endif
 491 #ifdef TARGET_ARCH_zero
 492 # include "frame_zero.hpp"
 493 #endif
 494 #ifdef TARGET_ARCH_arm
 495 # include "frame_arm.hpp"
 496 #endif
 497 #ifdef TARGET_ARCH_ppc
 498 # include "frame_ppc.hpp"
 499 #endif
 500 
 501 };
 502 
 503 #ifndef PRODUCT
 504 // A simple class to describe a location on the stack
 505 class FrameValue VALUE_OBJ_CLASS_SPEC {
 506  public:




  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_RUNTIME_FRAME_HPP
  26 #define SHARE_VM_RUNTIME_FRAME_HPP
  27 
  28 #include "oops/method.hpp"
  29 #include "runtime/basicLock.hpp"
  30 #include "runtime/monitorChunk.hpp"
  31 #include "runtime/registerMap.hpp"
  32 #include "utilities/top.hpp"
  33 #ifdef COMPILER2
  34 #if defined ADGLOBALS_MD_HPP
  35 # include ADGLOBALS_MD_HPP
  36 #elif defined TARGET_ARCH_MODEL_x86_32
  37 # include "adfiles/adGlobals_x86_32.hpp"
  38 #elif defined TARGET_ARCH_MODEL_x86_64
  39 # include "adfiles/adGlobals_x86_64.hpp"
  40 #elif defined TARGET_ARCH_MODEL_aarch64
  41 # include "adfiles/adGlobals_aarch64.hpp"
  42 #elif defined TARGET_ARCH_MODEL_sparc
  43 # include "adfiles/adGlobals_sparc.hpp"
  44 #elif defined TARGET_ARCH_MODEL_zero
  45 # include "adfiles/adGlobals_zero.hpp"
  46 #elif defined TARGET_ARCH_MODEL_ppc_64
  47 # include "adfiles/adGlobals_ppc_64.hpp"
  48 #endif
  49 #endif // COMPILER2
  50 #ifdef TARGET_ARCH_zero
  51 # include "stack_zero.hpp"
  52 #endif
  53 
  54 typedef class BytecodeInterpreter* interpreterState;
  55 
  56 class CodeBlob;
  57 class FrameValues;
  58 class vframeArray;
  59 
  60 
  61 // A frame represents a physical stack frame (an activation).  Frames


 469 
 470  public:
 471   // Zapping
 472   void zap_dead_locals            (JavaThread* thread, const RegisterMap* map);
 473   void zap_dead_interpreted_locals(JavaThread* thread, const RegisterMap* map);
 474   void zap_dead_compiled_locals   (JavaThread* thread, const RegisterMap* map);
 475   void zap_dead_entry_locals      (JavaThread* thread, const RegisterMap* map);
 476   void zap_dead_deoptimized_locals(JavaThread* thread, const RegisterMap* map);
 477 # endif
 478   // Verification
 479   void verify(const RegisterMap* map);
 480   static bool verify_return_pc(address x);
 481   static bool is_bci(intptr_t bcx);
 482   // Usage:
 483   // assert(frame::verify_return_pc(return_address), "must be a return pc");
 484 
 485   int pd_oop_map_offset_adjustment() const;
 486 
 487 #ifdef TARGET_ARCH_x86
 488 # include "frame_x86.hpp"
 489 #endif
 490 #ifdef TARGET_ARCH_aarch64
 491 # include "frame_aarch64.hpp"
 492 #endif
 493 #ifdef TARGET_ARCH_sparc
 494 # include "frame_sparc.hpp"
 495 #endif
 496 #ifdef TARGET_ARCH_zero
 497 # include "frame_zero.hpp"
 498 #endif
 499 #ifdef TARGET_ARCH_arm
 500 # include "frame_arm.hpp"
 501 #endif
 502 #ifdef TARGET_ARCH_ppc
 503 # include "frame_ppc.hpp"
 504 #endif
 505 
 506 };
 507 
 508 #ifndef PRODUCT
 509 // A simple class to describe a location on the stack
 510 class FrameValue VALUE_OBJ_CLASS_SPEC {
 511  public:


< prev index next >