< prev index next >

src/hotspot/share/oops/method.hpp

Print this page

        

@@ -111,10 +111,12 @@
   // time (whenever a compile completes).  It can transition from not-null to
   // NULL only at safepoints (because of a de-opt).
   CompiledMethod* volatile _code;                       // Points to the corresponding piece of native code
   volatile address           _from_interpreted_entry; // Cache of _code ? _adapter->i2c_entry() : _i2i_entry
 
+  int _num_stack_arg_slots;
+  
 #if INCLUDE_AOT && defined(TIERED)
   CompiledMethod* _aot_code;
 #endif
 
   // Constructor

@@ -488,10 +490,13 @@
   // setup entry points
   void link_method(const methodHandle& method, TRAPS);
   // clear entry points. Used by sharing code during dump time
   void unlink_method() NOT_CDS_RETURN;
 
+  // the number of argument reg slots that the compiled method uses on the stack.
+  int num_stack_arg_slots() const { return _num_stack_arg_slots;  };
+
   virtual void metaspace_pointers_do(MetaspaceClosure* iter);
   virtual MetaspaceObj::Type type() const { return MethodType; }
 
   // vtable index
   enum VtableIndexFlag {

@@ -981,15 +986,15 @@
 
   // Return if true if not all classes references in signature, including return type, has been loaded
   static bool has_unloaded_classes_in_signature(const methodHandle& m, TRAPS);
 
   // Printing
-  void print_short_name(outputStream* st = tty); // prints as klassname::methodname; Exposed so field engineers can debug VM
+  void print_short_name(outputStream* st = tty) const; // prints as klassname::methodname; Exposed so field engineers can debug VM
 #if INCLUDE_JVMTI
-  void print_name(outputStream* st = tty); // prints as "virtual void foo(int)"; exposed for TraceRedefineClasses
+  void print_name(outputStream* st = tty) const; // prints as "virtual void foo(int)"; exposed for TraceRedefineClasses
 #else
-  void print_name(outputStream* st = tty)        PRODUCT_RETURN; // prints as "virtual void foo(int)"
+  void print_name(outputStream* st = tty) const  PRODUCT_RETURN; // prints as "virtual void foo(int)"
 #endif
 
   // Helper routine used for method sorting
   static void sort_methods(Array<Method*>* methods, bool set_idnums = true);
 

@@ -1025,10 +1030,12 @@
  private:
 
   // Inlined elements
   address* native_function_addr() const          { assert(is_native(), "must be native"); return (address*) (this+1); }
   address* signature_handler_addr() const        { return native_function_addr() + 1; }
+
+  void set_num_stack_arg_slots();
 };
 
 
 // Utility class for compressing line number tables
 
< prev index next >