1 /* |
1 /* |
2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
187 // Converts all Handles to oops, and returns a reference to parameter vector |
187 // Converts all Handles to oops, and returns a reference to parameter vector |
188 intptr_t* parameters() ; |
188 intptr_t* parameters() ; |
189 int size_of_parameters() const { return _size; } |
189 int size_of_parameters() const { return _size; } |
190 |
190 |
191 // Verify that pushed arguments fits a given method |
191 // Verify that pushed arguments fits a given method |
192 void verify(methodHandle method, BasicType return_type, Thread *thread); |
192 void verify(const methodHandle& method, BasicType return_type, Thread *thread); |
193 }; |
193 }; |
194 |
194 |
195 // All calls to Java have to go via JavaCalls. Sets up the stack frame |
195 // All calls to Java have to go via JavaCalls. Sets up the stack frame |
196 // and makes sure that the last_Java_frame pointers are chained correctly. |
196 // and makes sure that the last_Java_frame pointers are chained correctly. |
197 // |
197 // |
198 |
198 |
199 class JavaCalls: AllStatic { |
199 class JavaCalls: AllStatic { |
200 static void call_helper(JavaValue* result, methodHandle* method, JavaCallArguments* args, TRAPS); |
200 static void call_helper(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS); |
201 public: |
201 public: |
202 // call_special |
202 // call_special |
203 // ------------ |
203 // ------------ |
204 // The receiver must be first oop in argument list |
204 // The receiver must be first oop in argument list |
205 static void call_special(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS); |
205 static void call_special(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, JavaCallArguments* args, TRAPS); |
225 static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS); |
225 static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS); |
226 static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS); |
226 static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, TRAPS); |
227 static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS); |
227 static void call_static(JavaValue* result, KlassHandle klass, Symbol* name, Symbol* signature, Handle arg1, Handle arg2, TRAPS); |
228 |
228 |
229 // Low-level interface |
229 // Low-level interface |
230 static void call(JavaValue* result, methodHandle method, JavaCallArguments* args, TRAPS); |
230 static void call(JavaValue* result, const methodHandle& method, JavaCallArguments* args, TRAPS); |
231 }; |
231 }; |
232 |
232 |
233 #endif // SHARE_VM_RUNTIME_JAVACALLS_HPP |
233 #endif // SHARE_VM_RUNTIME_JAVACALLS_HPP |