< prev index next >

src/share/vm/runtime/javaCalls.hpp

Print this page




 170   }
 171 
 172   // Converts all Handles to oops, and returns a reference to parameter vector
 173   intptr_t* parameters() ;
 174   int   size_of_parameters() const { return _size; }
 175 
 176   // Verify that pushed arguments fits a given method
 177   void verify(const methodHandle& method, BasicType return_type, Thread *thread);
 178 };
 179 
 180 // All calls to Java have to go via JavaCalls. Sets up the stack frame
 181 // and makes sure that the last_Java_frame pointers are chained correctly.
 182 //
 183 
 184 class JavaCalls: AllStatic {
 185   static void call_helper(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS);
 186  public:
 187   // call_special
 188   // ------------
 189   // The receiver must be first oop in argument list
 190   static void call_special(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS);
 191 
 192   static void call_special(JavaValue* result, Handle receiver, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS); // No args
 193   static void call_special(JavaValue* result, Handle receiver, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS);
 194   static void call_special(JavaValue* result, Handle receiver, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS);
 195 
 196   // virtual call
 197   // ------------
 198 
 199   // The receiver must be first oop in argument list
 200   static void call_virtual(JavaValue* result, KlassHandle spec_klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS);
 201 
 202   static void call_virtual(JavaValue* result, Handle receiver, KlassHandle spec_klass, Symbol* name, Symbol* signature, TRAPS); // No args
 203   static void call_virtual(JavaValue* result, Handle receiver, KlassHandle spec_klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS);
 204   static void call_virtual(JavaValue* result, Handle receiver, KlassHandle spec_klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS);
 205 
 206   // Static call
 207   // -----------
 208   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS);
 209 
 210   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS);
 211   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS);
 212   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS);
 213   static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, Handle arg3, TRAPS);
 214 
 215   // Low-level interface
 216   static void call(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS);
 217 };
 218 
 219 #endif // SHARE_VM_RUNTIME_JAVACALLS_HPP


 170   }
 171 
 172   // Converts all Handles to oops, and returns a reference to parameter vector
 173   intptr_t* parameters() ;
 174   int   size_of_parameters() const { return _size; }
 175 
 176   // Verify that pushed arguments fits a given method
 177   void verify(const methodHandle& method, BasicType return_type, Thread *thread);
 178 };
 179 
 180 // All calls to Java have to go via JavaCalls. Sets up the stack frame
 181 // and makes sure that the last_Java_frame pointers are chained correctly.
 182 //
 183 
 184 class JavaCalls: AllStatic {
 185   static void call_helper(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS);
 186  public:
 187   // call_special
 188   // ------------
 189   // The receiver must be first oop in argument list
 190   static void call_special(JavaValue* result, Klass* klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS);
 191 
 192   static void call_special(JavaValue* result, Handle receiver, Klass* klass, Symbol* name, Symbol* signature, TRAPS); // No args
 193   static void call_special(JavaValue* result, Handle receiver, Klass* klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS);
 194   static void call_special(JavaValue* result, Handle receiver, Klass* klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS);
 195 
 196   // virtual call
 197   // ------------
 198 
 199   // The receiver must be first oop in argument list
 200   static void call_virtual(JavaValue* result, Klass* spec_klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS);
 201 
 202   static void call_virtual(JavaValue* result, Handle receiver, Klass* spec_klass, Symbol* name, Symbol* signature, TRAPS); // No args
 203   static void call_virtual(JavaValue* result, Handle receiver, Klass* spec_klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS);
 204   static void call_virtual(JavaValue* result, Handle receiver, Klass* spec_klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS);
 205 
 206   // Static call
 207   // -----------
 208   static void call_static(JavaValue* result, Klass* klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS);
 209 
 210   static void call_static(JavaValue* result, Klass* klass, Symbol* name, Symbol* signature, TRAPS);
 211   static void call_static(JavaValue* result, Klass* klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS);
 212   static void call_static(JavaValue* result, Klass* klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS);
 213   static void call_static(JavaValue* result, Klass* klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, Handle arg3, TRAPS);
 214 
 215   // Low-level interface
 216   static void call(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS);
 217 };
 218 
 219 #endif // SHARE_VM_RUNTIME_JAVACALLS_HPP
< prev index next >