diff src/share/vm/code/nmethod.hpp @ 5251:467de393651a

optimization: frame prologue & epilogue ommitted for methods with no spills, no callee-saved registers, no incoming stack args and no debug info
author Doug Simon <doug.simon@oracle.com>
date Wed, 18 Apr 2012 23:39:07 +0200
parents ab038e0d6b43
children e72dd6533eb9
line wrap: on
line diff
--- a/src/share/vm/code/nmethod.hpp	Wed Apr 18 23:19:58 2012 +0200
+++ b/src/share/vm/code/nmethod.hpp	Wed Apr 18 23:39:07 2012 +0200
@@ -340,6 +340,9 @@
   bool is_compiled_by_c2() const;
   bool is_compiled_by_shark() const;
 
+
+#define CHECK_POSITIVE(val) assert(val, "should be positive")
+
   // boundaries for different parts
   address consts_begin          () const          { return           header_begin() + _consts_offset        ; }
   address consts_end            () const          { return           header_begin() +  code_offset()        ; }
@@ -347,8 +350,8 @@
   address insts_end             () const          { return           header_begin() + _stub_offset          ; }
   address stub_begin            () const          { return           header_begin() + _stub_offset          ; }
   address stub_end              () const          { return           header_begin() + _oops_offset          ; }
-  address exception_begin       () const          { return           header_begin() + _exception_offset     ; }
-  address deopt_handler_begin   () const          { return           header_begin() + _deoptimize_offset    ; }
+  address exception_begin       () const          { assert(_exception_offset >= 0, "no exception handler"); return header_begin() + _exception_offset ; }
+  address deopt_handler_begin   () const          { assert(_deoptimize_offset >= 0, "no deopt handler"); return header_begin() + _deoptimize_offset ; }
   address deopt_mh_handler_begin() const          { return           header_begin() + _deoptimize_mh_offset ; }
   address unwind_handler_begin  () const          { return _unwind_handler_offset != -1 ? (header_begin() + _unwind_handler_offset) : NULL; }
   oop*    oops_begin            () const          { return (oop*)   (header_begin() + _oops_offset)         ; }