< prev index next >

src/share/vm/runtime/frame.hpp

Print this page




  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
  60 // can be C or Java frames, and the Java frames can be interpreted or
  61 // compiled.  In contrast, vframes represent source-level activations,
  62 // so that one physical frame can correspond to multiple source level
  63 // frames because of inlining.
  64 
  65 class frame VALUE_OBJ_CLASS_SPEC {


 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:
 507   intptr_t* location;
 508   char* description;
 509   int owner;
 510   int priority;
 511 };
 512 
 513 
 514 // A collection of described stack values that can print a symbolic
 515 // description of the stack memory.  Interpreter frame values can be
 516 // in the caller frames so all the values are collected first and then
 517 // sorted before being printed.
 518 class FrameValues {




  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 #elif defined TARGET_ARCH_MODEL_aarch32
  47 # include "adfiles/adGlobals_aarch32.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
  62 // can be C or Java frames, and the Java frames can be interpreted or
  63 // compiled.  In contrast, vframes represent source-level activations,
  64 // so that one physical frame can correspond to multiple source level
  65 // frames because of inlining.
  66 
  67 class frame VALUE_OBJ_CLASS_SPEC {


 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_sparc
 491 # include "frame_sparc.hpp"
 492 #endif
 493 #ifdef TARGET_ARCH_zero
 494 # include "frame_zero.hpp"
 495 #endif
 496 #ifdef TARGET_ARCH_arm
 497 # include "frame_arm.hpp"
 498 #endif
 499 #ifdef TARGET_ARCH_ppc
 500 # include "frame_ppc.hpp"
 501 #endif
 502 #ifdef TARGET_ARCH_aarch32
 503 # include "frame_aarch32.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:
 512   intptr_t* location;
 513   char* description;
 514   int owner;
 515   int priority;
 516 };
 517 
 518 
 519 // A collection of described stack values that can print a symbolic
 520 // description of the stack memory.  Interpreter frame values can be
 521 // in the caller frames so all the values are collected first and then
 522 // sorted before being printed.
 523 class FrameValues {


< prev index next >