comparison src/share/vm/interpreter/abstractInterpreter.hpp @ 710:e5b0439ef4ae

6655638: dynamic languages need method handles Summary: initial implementation, with known omissions (x86/64, sparc, compiler optim., c-oops, C++ interp.) Reviewed-by: kvn, twisti, never
author jrose
date Wed, 08 Apr 2009 10:56:49 -0700
parents 98cb887364d3
children be93aad57795
comparison
equal deleted inserted replaced
709:1d037ecd7960 710:e5b0439ef4ae
1 /* 1 /*
2 * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright 1997-2009 Sun Microsystems, Inc. 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.
59 native, // native method 59 native, // native method
60 native_synchronized, // native method & is synchronized 60 native_synchronized, // native method & is synchronized
61 empty, // empty method (code: _return) 61 empty, // empty method (code: _return)
62 accessor, // accessor method (code: _aload_0, _getfield, _(a|i)return) 62 accessor, // accessor method (code: _aload_0, _getfield, _(a|i)return)
63 abstract, // abstract method (throws an AbstractMethodException) 63 abstract, // abstract method (throws an AbstractMethodException)
64 method_handle, // java.dyn.MethodHandles::invoke
64 java_lang_math_sin, // implementation of java.lang.Math.sin (x) 65 java_lang_math_sin, // implementation of java.lang.Math.sin (x)
65 java_lang_math_cos, // implementation of java.lang.Math.cos (x) 66 java_lang_math_cos, // implementation of java.lang.Math.cos (x)
66 java_lang_math_tan, // implementation of java.lang.Math.tan (x) 67 java_lang_math_tan, // implementation of java.lang.Math.tan (x)
67 java_lang_math_abs, // implementation of java.lang.Math.abs (x) 68 java_lang_math_abs, // implementation of java.lang.Math.abs (x)
68 java_lang_math_sqrt, // implementation of java.lang.Math.sqrt (x) 69 java_lang_math_sqrt, // implementation of java.lang.Math.sqrt (x)
89 static address _native_abi_to_tosca[number_of_result_handlers]; // for native method result handlers 90 static address _native_abi_to_tosca[number_of_result_handlers]; // for native method result handlers
90 static address _slow_signature_handler; // the native method generic (slow) signature handler 91 static address _slow_signature_handler; // the native method generic (slow) signature handler
91 92
92 static address _rethrow_exception_entry; // rethrows an activation in previous frame 93 static address _rethrow_exception_entry; // rethrows an activation in previous frame
93 94
94
95
96 friend class AbstractInterpreterGenerator; 95 friend class AbstractInterpreterGenerator;
97 friend class InterpreterGenerator; 96 friend class InterpreterGenerator;
98 friend class InterpreterMacroAssembler; 97 friend class InterpreterMacroAssembler;
99 98
100 public: 99 public: