src/share/vm/code/nmethod.hpp

changeset 1570
e66fd840cb6b
parent 1544
032260830071
child 1576
b1f619d38249
     1.1 --- a/src/share/vm/code/nmethod.hpp	Mon Jan 04 07:04:46 2010 -0800
     1.2 +++ b/src/share/vm/code/nmethod.hpp	Mon Jan 04 18:38:08 2010 +0100
     1.3 @@ -81,18 +81,19 @@
     1.4  
     1.5  struct nmFlags {
     1.6    friend class VMStructs;
     1.7 -  unsigned int version:8;                 // version number (0 = first version)
     1.8 -  unsigned int level:4;                   // optimization level
     1.9 -  unsigned int age:4;                     // age (in # of sweep steps)
    1.10 +  unsigned int version:8;                    // version number (0 = first version)
    1.11 +  unsigned int level:4;                      // optimization level
    1.12 +  unsigned int age:4;                        // age (in # of sweep steps)
    1.13  
    1.14 -  unsigned int state:2;                   // {alive, zombie, unloaded)
    1.15 +  unsigned int state:2;                      // {alive, zombie, unloaded)
    1.16  
    1.17 -  unsigned int isUncommonRecompiled:1;    // recompiled because of uncommon trap?
    1.18 -  unsigned int isToBeRecompiled:1;        // to be recompiled as soon as it matures
    1.19 -  unsigned int hasFlushedDependencies:1;  // Used for maintenance of dependencies
    1.20 -  unsigned int markedForReclamation:1;    // Used by NMethodSweeper
    1.21 +  unsigned int isUncommonRecompiled:1;       // recompiled because of uncommon trap?
    1.22 +  unsigned int isToBeRecompiled:1;           // to be recompiled as soon as it matures
    1.23 +  unsigned int hasFlushedDependencies:1;     // Used for maintenance of dependencies
    1.24 +  unsigned int markedForReclamation:1;       // Used by NMethodSweeper
    1.25  
    1.26 -  unsigned int has_unsafe_access:1;       // May fault due to unsafe access.
    1.27 +  unsigned int has_unsafe_access:1;          // May fault due to unsafe access.
    1.28 +  unsigned int has_method_handle_invokes:1;  // Has this method MethodHandle invokes?
    1.29  
    1.30    void clear();
    1.31  };
    1.32 @@ -409,6 +410,9 @@
    1.33    bool  has_unsafe_access() const                 { return flags.has_unsafe_access; }
    1.34    void  set_has_unsafe_access(bool z)             { flags.has_unsafe_access = z; }
    1.35  
    1.36 +  bool  has_method_handle_invokes() const         { return flags.has_method_handle_invokes; }
    1.37 +  void  set_has_method_handle_invokes(bool z)     { flags.has_method_handle_invokes = z; }
    1.38 +
    1.39    int   level() const                             { return flags.level; }
    1.40    void  set_level(int newLevel)                   { check_safepoint(); flags.level = newLevel; }
    1.41  
    1.42 @@ -541,6 +545,9 @@
    1.43    address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); }
    1.44    void    set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; }
    1.45  
    1.46 +  // MethodHandle
    1.47 +  bool is_method_handle_return(address return_pc);
    1.48 +
    1.49    // jvmti support:
    1.50    void post_compiled_method_load_event();
    1.51  

mercurial