hotspot/src/share/vm/code/nmethod.hpp
changeset 4749 f26b30116e3a
parent 4748 3fa8d8a7c0ea
child 4750 71fd601907dc
--- a/hotspot/src/share/vm/code/nmethod.hpp	Fri Jan 29 12:13:05 2010 +0100
+++ b/hotspot/src/share/vm/code/nmethod.hpp	Fri Jan 29 08:33:24 2010 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright 1997-2010 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -145,12 +145,8 @@
 
   // Offsets for different nmethod parts
   int _exception_offset;
-  // All deoptee's will resume execution at this location described by
-  // this offset.
+  // All deoptee's will resume execution at this location described by this offset
   int _deoptimize_offset;
-  // All deoptee's at a MethodHandle call site will resume execution
-  // at this location described by this offset.
-  int _deoptimize_mh_offset;
 #ifdef HAVE_DTRACE_H
   int _trap_offset;
 #endif // def HAVE_DTRACE_H
@@ -333,25 +329,24 @@
   bool is_compiled_by_c2() const;
 
   // boundaries for different parts
-  address code_begin            () const          { return _entry_point; }
-  address code_end              () const          { return           header_begin() + _stub_offset          ; }
-  address exception_begin       () const          { return           header_begin() + _exception_offset     ; }
-  address deopt_handler_begin   () const          { return           header_begin() + _deoptimize_offset    ; }
-  address deopt_mh_handler_begin() const          { return           header_begin() + _deoptimize_mh_offset ; }
-  address stub_begin            () const          { return           header_begin() + _stub_offset          ; }
-  address stub_end              () const          { return           header_begin() + _consts_offset        ; }
-  address consts_begin          () const          { return           header_begin() + _consts_offset        ; }
-  address consts_end            () const          { return           header_begin() + _scopes_data_offset   ; }
-  address scopes_data_begin     () const          { return           header_begin() + _scopes_data_offset   ; }
-  address scopes_data_end       () const          { return           header_begin() + _scopes_pcs_offset    ; }
-  PcDesc* scopes_pcs_begin      () const          { return (PcDesc*)(header_begin() + _scopes_pcs_offset   ); }
-  PcDesc* scopes_pcs_end        () const          { return (PcDesc*)(header_begin() + _dependencies_offset) ; }
-  address dependencies_begin    () const          { return           header_begin() + _dependencies_offset  ; }
-  address dependencies_end      () const          { return           header_begin() + _handler_table_offset ; }
-  address handler_table_begin   () const          { return           header_begin() + _handler_table_offset ; }
-  address handler_table_end     () const          { return           header_begin() + _nul_chk_table_offset ; }
-  address nul_chk_table_begin   () const          { return           header_begin() + _nul_chk_table_offset ; }
-  address nul_chk_table_end     () const          { return           header_begin() + _nmethod_end_offset   ; }
+  address code_begin         () const             { return _entry_point; }
+  address code_end           () const             { return           header_begin() + _stub_offset          ; }
+  address exception_begin    () const             { return           header_begin() + _exception_offset     ; }
+  address deopt_handler_begin() const             { return           header_begin() + _deoptimize_offset    ; }
+  address stub_begin         () const             { return           header_begin() + _stub_offset          ; }
+  address stub_end           () const             { return           header_begin() + _consts_offset        ; }
+  address consts_begin       () const             { return           header_begin() + _consts_offset        ; }
+  address consts_end         () const             { return           header_begin() + _scopes_data_offset   ; }
+  address scopes_data_begin  () const             { return           header_begin() + _scopes_data_offset   ; }
+  address scopes_data_end    () const             { return           header_begin() + _scopes_pcs_offset    ; }
+  PcDesc* scopes_pcs_begin   () const             { return (PcDesc*)(header_begin() + _scopes_pcs_offset   ); }
+  PcDesc* scopes_pcs_end     () const             { return (PcDesc*)(header_begin() + _dependencies_offset); }
+  address dependencies_begin () const             { return           header_begin() + _dependencies_offset ; }
+  address dependencies_end   () const             { return           header_begin() + _handler_table_offset ; }
+  address handler_table_begin() const             { return           header_begin() + _handler_table_offset ; }
+  address handler_table_end  () const             { return           header_begin() + _nul_chk_table_offset   ; }
+  address nul_chk_table_begin() const             { return           header_begin() + _nul_chk_table_offset ; }
+  address nul_chk_table_end  () const             { return           header_begin() + _nmethod_end_offset   ; }
 
   int code_size         () const                  { return      code_end         () -      code_begin         (); }
   int stub_size         () const                  { return      stub_end         () -      stub_begin         (); }
@@ -520,7 +515,7 @@
  private:
   ScopeDesc* scope_desc_in(address begin, address end);
 
-  address* orig_pc_addr(const frame* fr) { return (address*) ((address)fr->unextended_sp() + _orig_pc_offset); }
+  address* orig_pc_addr(const frame* fr ) { return (address*) ((address)fr->unextended_sp() + _orig_pc_offset); }
 
   PcDesc* find_pc_desc_internal(address pc, bool approximate);
 
@@ -543,17 +538,13 @@
   void copy_scopes_pcs(PcDesc* pcs, int count);
   void copy_scopes_data(address buffer, int size);
 
-  // Deopt
-  // Return true is the PC is one would expect if the frame is being deopted.
-  bool is_deopt_pc      (address pc) { return is_deopt_entry(pc) || is_deopt_mh_entry(pc); }
-  bool is_deopt_entry   (address pc) { return pc == deopt_handler_begin(); }
-  bool is_deopt_mh_entry(address pc) { return pc == deopt_mh_handler_begin(); }
+  // deopt
+  // return true is the pc is one would expect if the frame is being deopted.
+  bool is_deopt_pc(address pc);
   // Accessor/mutator for the original pc of a frame before a frame was deopted.
   address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); }
   void    set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; }
 
-  static address get_deopt_original_pc(const frame* fr);
-
   // MethodHandle
   bool is_method_handle_return(address return_pc);