Mercurial > hg > graal-compiler
annotate src/share/vm/classfile/vmSymbols.hpp @ 9126:bc26f978b0ce
HotSpotResolvedObjectType: implement hasFinalizeSubclass() correctly
don't use the (wrong) cached value, but ask the runtime on each request.
Fixes regression on xml.* benchmarks @ specjvm2008. The problem was:
After the constructor of Object was deoptimized due to an assumption violation,
it was recompiled again after some time. However, on recompilation, the value
of hasFinalizeSubclass for the class was not updated and it was compiled again
with a, now wrong, assumption, which then triggers deoptimization again.
This was repeated until it hit the recompilation limit (defined by
PerMethodRecompilationCutoff), and therefore only executed by the interpreter
from now on, causing the performance regression.
author | Bernhard Urban <bernhard.urban@jku.at> |
---|---|
date | Mon, 15 Apr 2013 19:54:58 +0200 |
parents | e0e85d78843b |
children | 0266549ff6e0 |
rev | line source |
---|---|
0 | 1 /* |
7951 | 2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
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 | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1507
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1507
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
1507
diff
changeset
|
21 * questions. |
0 | 22 * |
23 */ | |
24 | |
1972 | 25 #ifndef SHARE_VM_CLASSFILE_VMSYMBOLS_HPP |
26 #define SHARE_VM_CLASSFILE_VMSYMBOLS_HPP | |
27 | |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
28 #include "oops/symbol.hpp" |
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
29 #include "memory/iterator.hpp" |
6006
0105f367a14c
7160570: Intrinsification support for tracing framework
rbackman
parents:
5895
diff
changeset
|
30 #include "trace/traceMacros.hpp" |
1972 | 31 |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
32 // The class vmSymbols is a name space for fast lookup of |
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
33 // symbols commonly used in the VM. |
0 | 34 // |
35 // Sample usage: | |
36 // | |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
37 // Symbol* obj = vmSymbols::java_lang_Object(); |
0 | 38 |
39 | |
40 // Useful sub-macros exported by this header file: | |
41 | |
42 #define VM_SYMBOL_ENUM_NAME(name) name##_enum | |
43 #define VM_INTRINSIC_IGNORE(id, class, name, sig, flags) /*ignored*/ | |
44 #define VM_SYMBOL_IGNORE(id, name) /*ignored*/ | |
45 #define VM_ALIAS_IGNORE(id, id2) /*ignored*/ | |
46 | |
47 | |
48 // Mapping function names to values. New entries should be added below. | |
49 | |
50 #define VM_SYMBOLS_DO(template, do_alias) \ | |
51 /* commonly used class names */ \ | |
52 template(java_lang_System, "java/lang/System") \ | |
53 template(java_lang_Object, "java/lang/Object") \ | |
54 template(java_lang_Class, "java/lang/Class") \ | |
55 template(java_lang_String, "java/lang/String") \ | |
669
eca19a8425b5
6810653: Change String cache class used by Hotspot from String to StringValue
phh
parents:
647
diff
changeset
|
56 template(java_lang_StringValue, "java/lang/StringValue") \ |
675 | 57 template(java_lang_StringCache, "java/lang/StringValue$StringCache") \ |
0 | 58 template(java_lang_Thread, "java/lang/Thread") \ |
59 template(java_lang_ThreadGroup, "java/lang/ThreadGroup") \ | |
60 template(java_lang_Cloneable, "java/lang/Cloneable") \ | |
61 template(java_lang_Throwable, "java/lang/Throwable") \ | |
62 template(java_lang_ClassLoader, "java/lang/ClassLoader") \ | |
63 template(java_lang_ClassLoader_NativeLibrary, "java/lang/ClassLoader\x024NativeLibrary") \ | |
64 template(java_lang_ThreadDeath, "java/lang/ThreadDeath") \ | |
65 template(java_lang_Boolean, "java/lang/Boolean") \ | |
66 template(java_lang_Character, "java/lang/Character") \ | |
17
ff5961f4c095
6395208: Elide autoboxing for calls to HashMap.get(int) and HashMap.get(long)
never
parents:
0
diff
changeset
|
67 template(java_lang_Character_CharacterCache, "java/lang/Character$CharacterCache") \ |
0 | 68 template(java_lang_Float, "java/lang/Float") \ |
69 template(java_lang_Double, "java/lang/Double") \ | |
70 template(java_lang_Byte, "java/lang/Byte") \ | |
17
ff5961f4c095
6395208: Elide autoboxing for calls to HashMap.get(int) and HashMap.get(long)
never
parents:
0
diff
changeset
|
71 template(java_lang_Byte_Cache, "java/lang/Byte$ByteCache") \ |
0 | 72 template(java_lang_Short, "java/lang/Short") \ |
17
ff5961f4c095
6395208: Elide autoboxing for calls to HashMap.get(int) and HashMap.get(long)
never
parents:
0
diff
changeset
|
73 template(java_lang_Short_ShortCache, "java/lang/Short$ShortCache") \ |
0 | 74 template(java_lang_Integer, "java/lang/Integer") \ |
17
ff5961f4c095
6395208: Elide autoboxing for calls to HashMap.get(int) and HashMap.get(long)
never
parents:
0
diff
changeset
|
75 template(java_lang_Integer_IntegerCache, "java/lang/Integer$IntegerCache") \ |
0 | 76 template(java_lang_Long, "java/lang/Long") \ |
17
ff5961f4c095
6395208: Elide autoboxing for calls to HashMap.get(int) and HashMap.get(long)
never
parents:
0
diff
changeset
|
77 template(java_lang_Long_LongCache, "java/lang/Long$LongCache") \ |
0 | 78 template(java_lang_Shutdown, "java/lang/Shutdown") \ |
79 template(java_lang_ref_Reference, "java/lang/ref/Reference") \ | |
80 template(java_lang_ref_SoftReference, "java/lang/ref/SoftReference") \ | |
81 template(java_lang_ref_WeakReference, "java/lang/ref/WeakReference") \ | |
82 template(java_lang_ref_FinalReference, "java/lang/ref/FinalReference") \ | |
83 template(java_lang_ref_PhantomReference, "java/lang/ref/PhantomReference") \ | |
84 template(java_lang_ref_Finalizer, "java/lang/ref/Finalizer") \ | |
85 template(java_lang_reflect_AccessibleObject, "java/lang/reflect/AccessibleObject") \ | |
86 template(java_lang_reflect_Method, "java/lang/reflect/Method") \ | |
87 template(java_lang_reflect_Constructor, "java/lang/reflect/Constructor") \ | |
88 template(java_lang_reflect_Field, "java/lang/reflect/Field") \ | |
7462
ade95d680b42
8004728: Add hotspot support for parameter reflection
coleenp
parents:
7458
diff
changeset
|
89 template(java_lang_reflect_Parameter, "java/lang/reflect/Parameter") \ |
0 | 90 template(java_lang_reflect_Array, "java/lang/reflect/Array") \ |
91 template(java_lang_StringBuffer, "java/lang/StringBuffer") \ | |
1080
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
92 template(java_lang_StringBuilder, "java/lang/StringBuilder") \ |
0 | 93 template(java_lang_CharSequence, "java/lang/CharSequence") \ |
8866
16885e702c88
7198429: need checked categorization of caller-sensitive methods in the JDK
twisti
parents:
7955
diff
changeset
|
94 template(java_lang_SecurityManager, "java/lang/SecurityManager") \ |
0 | 95 template(java_security_AccessControlContext, "java/security/AccessControlContext") \ |
96 template(java_security_ProtectionDomain, "java/security/ProtectionDomain") \ | |
97 template(java_io_OutputStream, "java/io/OutputStream") \ | |
98 template(java_io_Reader, "java/io/Reader") \ | |
99 template(java_io_BufferedReader, "java/io/BufferedReader") \ | |
100 template(java_io_FileInputStream, "java/io/FileInputStream") \ | |
101 template(java_io_ByteArrayInputStream, "java/io/ByteArrayInputStream") \ | |
102 template(java_io_Serializable, "java/io/Serializable") \ | |
103 template(java_util_Arrays, "java/util/Arrays") \ | |
104 template(java_util_Properties, "java/util/Properties") \ | |
105 template(java_util_Vector, "java/util/Vector") \ | |
106 template(java_util_AbstractList, "java/util/AbstractList") \ | |
107 template(java_util_Hashtable, "java/util/Hashtable") \ | |
18
c7d713375c94
6621621: HashMap front cache should be enabled only with AggressiveOpts
phh
parents:
17
diff
changeset
|
108 template(java_util_HashMap, "java/util/HashMap") \ |
0 | 109 template(java_lang_Compiler, "java/lang/Compiler") \ |
110 template(sun_misc_Signal, "sun/misc/Signal") \ | |
111 template(java_lang_AssertionStatusDirectives, "java/lang/AssertionStatusDirectives") \ | |
112 template(getBootClassPathEntryForClass_name, "getBootClassPathEntryForClass") \ | |
2129
8f8dfba37802
6994753: Implement optional hook to a Java method at VM startup.
kevinw
parents:
2011
diff
changeset
|
113 template(sun_misc_PostVMInitHook, "sun/misc/PostVMInitHook") \ |
6894 | 114 template(sun_misc_Launcher_ExtClassLoader, "sun/misc/Launcher$ExtClassLoader") \ |
0 | 115 \ |
6181 | 116 /* Java runtime version access */ \ |
117 template(sun_misc_Version, "sun/misc/Version") \ | |
118 template(java_runtime_name_name, "java_runtime_name") \ | |
6921
a1b8cf9cf970
8002078: hs_err_pid file should report full JDK version string
sla
parents:
6847
diff
changeset
|
119 template(java_runtime_version_name, "java_runtime_version") \ |
6181 | 120 \ |
0 | 121 /* class file format tags */ \ |
122 template(tag_source_file, "SourceFile") \ | |
123 template(tag_inner_classes, "InnerClasses") \ | |
124 template(tag_constant_value, "ConstantValue") \ | |
125 template(tag_code, "Code") \ | |
126 template(tag_exceptions, "Exceptions") \ | |
127 template(tag_line_number_table, "LineNumberTable") \ | |
128 template(tag_local_variable_table, "LocalVariableTable") \ | |
129 template(tag_local_variable_type_table, "LocalVariableTypeTable") \ | |
7462
ade95d680b42
8004728: Add hotspot support for parameter reflection
coleenp
parents:
7458
diff
changeset
|
130 template(tag_method_parameters, "MethodParameters") \ |
0 | 131 template(tag_stack_map_table, "StackMapTable") \ |
132 template(tag_synthetic, "Synthetic") \ | |
133 template(tag_deprecated, "Deprecated") \ | |
134 template(tag_source_debug_extension, "SourceDebugExtension") \ | |
135 template(tag_signature, "Signature") \ | |
136 template(tag_runtime_visible_annotations, "RuntimeVisibleAnnotations") \ | |
137 template(tag_runtime_invisible_annotations, "RuntimeInvisibleAnnotations") \ | |
138 template(tag_runtime_visible_parameter_annotations, "RuntimeVisibleParameterAnnotations") \ | |
139 template(tag_runtime_invisible_parameter_annotations,"RuntimeInvisibleParameterAnnotations") \ | |
140 template(tag_annotation_default, "AnnotationDefault") \ | |
7457
35431a769282
8004823: Add VM support for type annotation reflection
stefank
parents:
6935
diff
changeset
|
141 template(tag_runtime_visible_type_annotations, "RuntimeVisibleTypeAnnotations") \ |
35431a769282
8004823: Add VM support for type annotation reflection
stefank
parents:
6935
diff
changeset
|
142 template(tag_runtime_invisible_type_annotations, "RuntimeInvisibleTypeAnnotations") \ |
0 | 143 template(tag_enclosing_method, "EnclosingMethod") \ |
2011
dad31fc330cd
7001379: bootstrap method data needs to be moved from constant pool to a classfile attribute
jrose
parents:
1972
diff
changeset
|
144 template(tag_bootstrap_methods, "BootstrapMethods") \ |
0 | 145 \ |
146 /* exception klasses: at least all exceptions thrown by the VM have entries here */ \ | |
147 template(java_lang_ArithmeticException, "java/lang/ArithmeticException") \ | |
148 template(java_lang_ArrayIndexOutOfBoundsException, "java/lang/ArrayIndexOutOfBoundsException") \ | |
149 template(java_lang_ArrayStoreException, "java/lang/ArrayStoreException") \ | |
150 template(java_lang_ClassCastException, "java/lang/ClassCastException") \ | |
151 template(java_lang_ClassNotFoundException, "java/lang/ClassNotFoundException") \ | |
152 template(java_lang_CloneNotSupportedException, "java/lang/CloneNotSupportedException") \ | |
153 template(java_lang_IllegalAccessException, "java/lang/IllegalAccessException") \ | |
154 template(java_lang_IllegalArgumentException, "java/lang/IllegalArgumentException") \ | |
1507
cd5dbf694d45
6939134: JSR 292 adjustments to method handle invocation
jrose
parents:
1396
diff
changeset
|
155 template(java_lang_IllegalStateException, "java/lang/IllegalStateException") \ |
0 | 156 template(java_lang_IllegalMonitorStateException, "java/lang/IllegalMonitorStateException") \ |
157 template(java_lang_IllegalThreadStateException, "java/lang/IllegalThreadStateException") \ | |
158 template(java_lang_IndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException") \ | |
159 template(java_lang_InstantiationException, "java/lang/InstantiationException") \ | |
160 template(java_lang_InstantiationError, "java/lang/InstantiationError") \ | |
161 template(java_lang_InterruptedException, "java/lang/InterruptedException") \ | |
3417
ba550512d3b2
7049415: Failure of resolution of sym.reference to the c.s.s. should be wrapped in BootstrapMethodError
jrose
parents:
3373
diff
changeset
|
162 template(java_lang_BootstrapMethodError, "java/lang/BootstrapMethodError") \ |
0 | 163 template(java_lang_LinkageError, "java/lang/LinkageError") \ |
164 template(java_lang_NegativeArraySizeException, "java/lang/NegativeArraySizeException") \ | |
165 template(java_lang_NoSuchFieldException, "java/lang/NoSuchFieldException") \ | |
166 template(java_lang_NoSuchMethodException, "java/lang/NoSuchMethodException") \ | |
167 template(java_lang_NullPointerException, "java/lang/NullPointerException") \ | |
168 template(java_lang_StringIndexOutOfBoundsException, "java/lang/StringIndexOutOfBoundsException")\ | |
6271
93c71eb28866
7188911: nightly failures after JSR 292 lazy method handle update (round 2)
twisti
parents:
6266
diff
changeset
|
169 template(java_lang_UnsupportedOperationException, "java/lang/UnsupportedOperationException") \ |
0 | 170 template(java_lang_InvalidClassException, "java/lang/InvalidClassException") \ |
171 template(java_lang_reflect_InvocationTargetException, "java/lang/reflect/InvocationTargetException") \ | |
172 template(java_lang_Exception, "java/lang/Exception") \ | |
173 template(java_lang_RuntimeException, "java/lang/RuntimeException") \ | |
174 template(java_io_IOException, "java/io/IOException") \ | |
175 template(java_security_PrivilegedActionException, "java/security/PrivilegedActionException") \ | |
176 \ | |
177 /* error klasses: at least all errors thrown by the VM have entries here */ \ | |
178 template(java_lang_AbstractMethodError, "java/lang/AbstractMethodError") \ | |
179 template(java_lang_ClassCircularityError, "java/lang/ClassCircularityError") \ | |
180 template(java_lang_ClassFormatError, "java/lang/ClassFormatError") \ | |
181 template(java_lang_UnsupportedClassVersionError, "java/lang/UnsupportedClassVersionError") \ | |
182 template(java_lang_Error, "java/lang/Error") \ | |
183 template(java_lang_ExceptionInInitializerError, "java/lang/ExceptionInInitializerError") \ | |
184 template(java_lang_IllegalAccessError, "java/lang/IllegalAccessError") \ | |
185 template(java_lang_IncompatibleClassChangeError, "java/lang/IncompatibleClassChangeError") \ | |
186 template(java_lang_InternalError, "java/lang/InternalError") \ | |
187 template(java_lang_NoClassDefFoundError, "java/lang/NoClassDefFoundError") \ | |
188 template(java_lang_NoSuchFieldError, "java/lang/NoSuchFieldError") \ | |
189 template(java_lang_NoSuchMethodError, "java/lang/NoSuchMethodError") \ | |
190 template(java_lang_OutOfMemoryError, "java/lang/OutOfMemoryError") \ | |
191 template(java_lang_UnsatisfiedLinkError, "java/lang/UnsatisfiedLinkError") \ | |
192 template(java_lang_VerifyError, "java/lang/VerifyError") \ | |
193 template(java_lang_SecurityException, "java/lang/SecurityException") \ | |
194 template(java_lang_VirtualMachineError, "java/lang/VirtualMachineError") \ | |
195 template(java_lang_StackOverflowError, "java/lang/StackOverflowError") \ | |
196 template(java_lang_StackTraceElement, "java/lang/StackTraceElement") \ | |
7587 | 197 \ |
198 /* Concurrency support */ \ | |
0 | 199 template(java_util_concurrent_locks_AbstractOwnableSynchronizer, "java/util/concurrent/locks/AbstractOwnableSynchronizer") \ |
7587 | 200 template(sun_misc_Contended_signature, "Lsun/misc/Contended;") \ |
0 | 201 \ |
202 /* class symbols needed by intrinsics */ \ | |
203 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, template, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \ | |
204 \ | |
205 /* Support for reflection based on dynamic bytecode generation (JDK 1.4 and above) */ \ | |
206 \ | |
207 template(sun_reflect_FieldInfo, "sun/reflect/FieldInfo") \ | |
208 template(sun_reflect_MethodInfo, "sun/reflect/MethodInfo") \ | |
209 template(sun_reflect_MagicAccessorImpl, "sun/reflect/MagicAccessorImpl") \ | |
210 template(sun_reflect_MethodAccessorImpl, "sun/reflect/MethodAccessorImpl") \ | |
211 template(sun_reflect_ConstructorAccessorImpl, "sun/reflect/ConstructorAccessorImpl") \ | |
212 template(sun_reflect_SerializationConstructorAccessorImpl, "sun/reflect/SerializationConstructorAccessorImpl") \ | |
213 template(sun_reflect_DelegatingClassLoader, "sun/reflect/DelegatingClassLoader") \ | |
214 template(sun_reflect_Reflection, "sun/reflect/Reflection") \ | |
8866
16885e702c88
7198429: need checked categorization of caller-sensitive methods in the JDK
twisti
parents:
7955
diff
changeset
|
215 template(sun_reflect_CallerSensitive, "sun/reflect/CallerSensitive") \ |
16885e702c88
7198429: need checked categorization of caller-sensitive methods in the JDK
twisti
parents:
7955
diff
changeset
|
216 template(sun_reflect_CallerSensitive_signature, "Lsun/reflect/CallerSensitive;") \ |
0 | 217 template(checkedExceptions_name, "checkedExceptions") \ |
218 template(clazz_name, "clazz") \ | |
219 template(exceptionTypes_name, "exceptionTypes") \ | |
220 template(modifiers_name, "modifiers") \ | |
221 template(newConstructor_name, "newConstructor") \ | |
222 template(newConstructor_signature, "(Lsun/reflect/MethodInfo;)Ljava/lang/reflect/Constructor;") \ | |
223 template(newField_name, "newField") \ | |
224 template(newField_signature, "(Lsun/reflect/FieldInfo;)Ljava/lang/reflect/Field;") \ | |
225 template(newMethod_name, "newMethod") \ | |
226 template(newMethod_signature, "(Lsun/reflect/MethodInfo;)Ljava/lang/reflect/Method;") \ | |
6266
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
227 template(invokeBasic_name, "invokeBasic") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
228 template(linkToVirtual_name, "linkToVirtual") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
229 template(linkToStatic_name, "linkToStatic") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
230 template(linkToSpecial_name, "linkToSpecial") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
231 template(linkToInterface_name, "linkToInterface") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
232 template(compiledLambdaForm_name, "<compiledLambdaForm>") /*fake name*/ \ |
1507
cd5dbf694d45
6939134: JSR 292 adjustments to method handle invocation
jrose
parents:
1396
diff
changeset
|
233 template(star_name, "*") /*not really a name*/ \ |
0 | 234 template(invoke_name, "invoke") \ |
235 template(override_name, "override") \ | |
236 template(parameterTypes_name, "parameterTypes") \ | |
237 template(returnType_name, "returnType") \ | |
238 template(signature_name, "signature") \ | |
239 template(slot_name, "slot") \ | |
3905
c26de9aef2ed
7071307: MethodHandle bimorphic inlining should consider the frequency
never
parents:
3900
diff
changeset
|
240 template(selectAlternative_name, "selectAlternative") \ |
0 | 241 \ |
242 /* Support for annotations (JDK 1.5 and above) */ \ | |
243 \ | |
244 template(annotations_name, "annotations") \ | |
7462
ade95d680b42
8004728: Add hotspot support for parameter reflection
coleenp
parents:
7458
diff
changeset
|
245 template(index_name, "index") \ |
ade95d680b42
8004728: Add hotspot support for parameter reflection
coleenp
parents:
7458
diff
changeset
|
246 template(executable_name, "executable") \ |
0 | 247 template(parameter_annotations_name, "parameterAnnotations") \ |
248 template(annotation_default_name, "annotationDefault") \ | |
249 template(sun_reflect_ConstantPool, "sun/reflect/ConstantPool") \ | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6271
diff
changeset
|
250 template(ConstantPool_name, "constantPoolOop") \ |
0 | 251 template(sun_reflect_UnsafeStaticFieldAccessorImpl, "sun/reflect/UnsafeStaticFieldAccessorImpl")\ |
252 template(base_name, "base") \ | |
7457
35431a769282
8004823: Add VM support for type annotation reflection
stefank
parents:
6935
diff
changeset
|
253 /* Type Annotations (JDK 8 and above) */ \ |
35431a769282
8004823: Add VM support for type annotation reflection
stefank
parents:
6935
diff
changeset
|
254 template(type_annotations_name, "typeAnnotations") \ |
35431a769282
8004823: Add VM support for type annotation reflection
stefank
parents:
6935
diff
changeset
|
255 \ |
0 | 256 \ |
710 | 257 /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */ \ |
2357
8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents:
2356
diff
changeset
|
258 template(java_lang_invoke_CallSite, "java/lang/invoke/CallSite") \ |
3852
fdb992d83a87
7071653: JSR 292: call site change notification should be pushed not pulled
twisti
parents:
3417
diff
changeset
|
259 template(java_lang_invoke_ConstantCallSite, "java/lang/invoke/ConstantCallSite") \ |
fdb992d83a87
7071653: JSR 292: call site change notification should be pushed not pulled
twisti
parents:
3417
diff
changeset
|
260 template(java_lang_invoke_MutableCallSite, "java/lang/invoke/MutableCallSite") \ |
fdb992d83a87
7071653: JSR 292: call site change notification should be pushed not pulled
twisti
parents:
3417
diff
changeset
|
261 template(java_lang_invoke_VolatileCallSite, "java/lang/invoke/VolatileCallSite") \ |
2357
8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents:
2356
diff
changeset
|
262 template(java_lang_invoke_MethodHandle, "java/lang/invoke/MethodHandle") \ |
8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents:
2356
diff
changeset
|
263 template(java_lang_invoke_MethodType, "java/lang/invoke/MethodType") \ |
8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents:
2356
diff
changeset
|
264 template(java_lang_invoke_MethodType_signature, "Ljava/lang/invoke/MethodType;") \ |
6266
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
265 template(java_lang_invoke_MemberName_signature, "Ljava/lang/invoke/MemberName;") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
266 template(java_lang_invoke_LambdaForm_signature, "Ljava/lang/invoke/LambdaForm;") \ |
2357
8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents:
2356
diff
changeset
|
267 template(java_lang_invoke_MethodHandle_signature, "Ljava/lang/invoke/MethodHandle;") \ |
710 | 268 /* internal classes known only to the JVM: */ \ |
2357
8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents:
2356
diff
changeset
|
269 template(java_lang_invoke_MemberName, "java/lang/invoke/MemberName") \ |
8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents:
2356
diff
changeset
|
270 template(java_lang_invoke_MethodHandleNatives, "java/lang/invoke/MethodHandleNatives") \ |
6266
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
271 template(java_lang_invoke_LambdaForm, "java/lang/invoke/LambdaForm") \ |
6222
6d8f36bcef55
6711908: JVM needs direct access to some annotations
jrose
parents:
6181
diff
changeset
|
272 template(java_lang_invoke_ForceInline_signature, "Ljava/lang/invoke/ForceInline;") \ |
6266
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
273 template(java_lang_invoke_DontInline_signature, "Ljava/lang/invoke/DontInline;") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
274 template(java_lang_invoke_LambdaForm_Compiled_signature, "Ljava/lang/invoke/LambdaForm$Compiled;") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
275 template(java_lang_invoke_LambdaForm_Hidden_signature, "Ljava/lang/invoke/LambdaForm$Hidden;") \ |
6934 | 276 template(java_lang_invoke_MagicLambdaImpl, "java/lang/invoke/MagicLambdaImpl") \ |
2357
8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents:
2356
diff
changeset
|
277 /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */ \ |
1507
cd5dbf694d45
6939134: JSR 292 adjustments to method handle invocation
jrose
parents:
1396
diff
changeset
|
278 template(findMethodHandleType_name, "findMethodHandleType") \ |
2357
8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents:
2356
diff
changeset
|
279 template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \ |
1602 | 280 template(linkMethodHandleConstant_name, "linkMethodHandleConstant") \ |
2357
8033953d67ff
7012648: move JSR 292 to package java.lang.invoke and adjust names
jrose
parents:
2356
diff
changeset
|
281 template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;") \ |
6266
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
282 template(linkMethod_name, "linkMethod") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
283 template(linkMethod_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
284 template(linkCallSite_name, "linkCallSite") \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
285 template(linkCallSite_signature, "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/invoke/MemberName;") \ |
3900
a32de5085326
7079673: JSR 292: C1 should inline bytecoded method handle adapters
twisti
parents:
3852
diff
changeset
|
286 template(setTargetNormal_name, "setTargetNormal") \ |
a32de5085326
7079673: JSR 292: C1 should inline bytecoded method handle adapters
twisti
parents:
3852
diff
changeset
|
287 template(setTargetVolatile_name, "setTargetVolatile") \ |
a32de5085326
7079673: JSR 292: C1 should inline bytecoded method handle adapters
twisti
parents:
3852
diff
changeset
|
288 template(setTarget_signature, "(Ljava/lang/invoke/MethodHandle;)V") \ |
3938 | 289 NOT_LP64( do_alias(intptr_signature, int_signature) ) \ |
290 LP64_ONLY( do_alias(intptr_signature, long_signature) ) \ | |
3905
c26de9aef2ed
7071307: MethodHandle bimorphic inlining should consider the frequency
never
parents:
3900
diff
changeset
|
291 template(selectAlternative_signature, "(ZLjava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodHandle;)Ljava/lang/invoke/MethodHandle;") \ |
5776
2a64cf19ab2a
rename: HotSpotTargetMethod -> HotSpotCompilationResult
Doug Simon <doug.simon@oracle.com>
parents:
5747
diff
changeset
|
292 \ |
2a64cf19ab2a
rename: HotSpotTargetMethod -> HotSpotCompilationResult
Doug Simon <doug.simon@oracle.com>
parents:
5747
diff
changeset
|
293 /* Support for Graal */ \ |
2a64cf19ab2a
rename: HotSpotTargetMethod -> HotSpotCompilationResult
Doug Simon <doug.simon@oracle.com>
parents:
5747
diff
changeset
|
294 template(java_util_BitSet, "java/util/BitSet") \ |
2a64cf19ab2a
rename: HotSpotTargetMethod -> HotSpotCompilationResult
Doug Simon <doug.simon@oracle.com>
parents:
5747
diff
changeset
|
295 /* graal.hotspot */ \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
296 template(com_oracle_graal_hotspot_HotSpotGraalRuntime, "com/oracle/graal/hotspot/HotSpotGraalRuntime") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
297 template(com_oracle_graal_hotspot_HotSpotKlassOop, "com/oracle/graal/hotspot/HotSpotKlassOop") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
298 template(com_oracle_graal_hotspot_HotSpotOptions, "com/oracle/graal/hotspot/HotSpotOptions") \ |
5776
2a64cf19ab2a
rename: HotSpotTargetMethod -> HotSpotCompilationResult
Doug Simon <doug.simon@oracle.com>
parents:
5747
diff
changeset
|
299 template(com_oracle_graal_hotspot_HotSpotCompilationResult, "com/oracle/graal/hotspot/HotSpotCompilationResult") \ |
7814
bab2a51f8dbe
Introduce marker interface InvokeTarget. Remove method lookupRuntimeCall from CodeCacheProvider.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
7786
diff
changeset
|
300 template(com_oracle_graal_hotspot_HotSpotRuntimeCallTarget, "com/oracle/graal/hotspot/HotSpotRuntimeCallTarget") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
301 template(com_oracle_graal_hotspot_bridge_VMToCompiler, "com/oracle/graal/hotspot/bridge/VMToCompiler") \ |
9025
ff5a32117e02
Implement fast invocation of installed code (direct tail call to the target machine code address).
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
9023
diff
changeset
|
302 template(com_oracle_graal_hotspot_bridge_CompilerToVMImpl, "com/oracle/graal/hotspot/bridge/CompilerToVMImpl") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
303 template(com_oracle_graal_hotspot_meta_HotSpotCodeInfo, "com/oracle/graal/hotspot/meta/HotSpotCodeInfo") \ |
6948
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
304 template(com_oracle_graal_hotspot_meta_HotSpotInstalledCode, "com/oracle/graal/hotspot/meta/HotSpotInstalledCode") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
305 template(com_oracle_graal_hotspot_meta_HotSpotJavaType, "com/oracle/graal/hotspot/meta/HotSpotJavaType") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
306 template(com_oracle_graal_hotspot_meta_HotSpotMethodData, "com/oracle/graal/hotspot/meta/HotSpotMethodData") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
307 template(com_oracle_graal_hotspot_meta_HotSpotResolvedJavaField, "com/oracle/graal/hotspot/meta/HotSpotResolvedJavaField") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
308 template(com_oracle_graal_hotspot_meta_HotSpotResolvedJavaMethod, "com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethod") \ |
7084
9ba90252ce08
HotSpotResolvedJavaType is now the HotSpot implementation of ResolvedJavaType,
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6948
diff
changeset
|
309 template(com_oracle_graal_hotspot_meta_HotSpotResolvedObjectType, "com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType") \ |
8589
ec06c7e67698
renamed MonitorValue to HotSpotMonitorValue and moved it to com.oracle.graal.hotspot project
Doug Simon <doug.simon@oracle.com>
parents:
8124
diff
changeset
|
310 template(com_oracle_graal_hotspot_meta_HotSpotMonitorValue, "com/oracle/graal/hotspot/meta/HotSpotMonitorValue") \ |
7786
8bbbde9d0a52
extended ResolvedJavaMethod API by getLocalVariableTable
Matthias Grimmer <grimmer@ssw.jku.at>
parents:
7782
diff
changeset
|
311 template(com_oracle_graal_hotspot_debug_LocalImpl, "com/oracle/graal/hotspot/debug/LocalImpl") \ |
6495
75f130f2b30f
moved AMD64 specific HotSpot code in com.oracle.graal.hotspot.amd64 project
Doug Simon <doug.simon@oracle.com>
parents:
6494
diff
changeset
|
312 AMD64_ONLY(template(com_oracle_graal_hotspot_amd64_AMD64HotSpotGraalRuntime,"com/oracle/graal/hotspot/amd64/AMD64HotSpotGraalRuntime"))\ |
6494
df02fa2bce58
refactored all AMD64 specific HotSpot code in com.oracle.graal.hotspot.target.amd64 package
Doug Simon <doug.simon@oracle.com>
parents:
6275
diff
changeset
|
313 /* graal.api.meta */ \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
314 template(com_oracle_graal_api_meta_Constant, "com/oracle/graal/api/meta/Constant") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
315 template(com_oracle_graal_api_meta_ConstantPool, "com/oracle/graal/api/meta/ConstantPool") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
316 template(com_oracle_graal_api_meta_ExceptionHandler, "com/oracle/graal/api/meta/ExceptionHandler") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
317 template(com_oracle_graal_api_meta_JavaMethod, "com/oracle/graal/api/meta/JavaMethod") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
318 template(com_oracle_graal_api_meta_JavaType, "com/oracle/graal/api/meta/JavaType") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
319 template(com_oracle_graal_api_meta_Kind, "com/oracle/graal/api/meta/Kind") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
320 template(com_oracle_graal_api_meta_ResolvedJavaField, "com/oracle/graal/api/meta/ResolvedJavaField") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
321 template(com_oracle_graal_api_meta_Value, "com/oracle/graal/api/meta/Value") \ |
6494
df02fa2bce58
refactored all AMD64 specific HotSpot code in com.oracle.graal.hotspot.target.amd64 package
Doug Simon <doug.simon@oracle.com>
parents:
6275
diff
changeset
|
322 /* graal.api.code */ \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
323 template(com_oracle_graal_api_code_Assumptions, "com/oracle/graal/api/code/Assumptions") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
324 template(com_oracle_graal_api_code_Assumptions_MethodContents, "com/oracle/graal/api/code/Assumptions$MethodContents") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
325 template(com_oracle_graal_api_code_Assumptions_ConcreteSubtype, "com/oracle/graal/api/code/Assumptions$ConcreteSubtype") \ |
9012
2979aaac95af
assumptions: enable NoFinalizableSubclass assumption
Bernhard Urban <bernhard.urban@jku.at>
parents:
9004
diff
changeset
|
326 template(com_oracle_graal_api_code_Assumptions_NoFinalizableSubclass, "com/oracle/graal/api/code/Assumptions$NoFinalizableSubclass") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
327 template(com_oracle_graal_api_code_Assumptions_ConcreteMethod, "com/oracle/graal/api/code/Assumptions$ConcreteMethod") \ |
8947
707b20dd9512
draft call site target value assumption
Andreas Woess <andreas.woess@jku.at>
parents:
8883
diff
changeset
|
328 template(com_oracle_graal_api_code_Assumptions_CallSiteTargetValue,"com/oracle/graal/api/code/Assumptions$CallSiteTargetValue") \ |
6674
fd71ca8c5f88
VM infrstructure for OnStackReplacement
Lukas Stadler <lukas.stadler@jku.at>
parents:
6521
diff
changeset
|
329 template(com_oracle_graal_api_code_CompilationResult, "com/oracle/graal/api/code/CompilationResult") \ |
fd71ca8c5f88
VM infrstructure for OnStackReplacement
Lukas Stadler <lukas.stadler@jku.at>
parents:
6521
diff
changeset
|
330 template(com_oracle_graal_api_code_CompilationResult_Call, "com/oracle/graal/api/code/CompilationResult$Call") \ |
fd71ca8c5f88
VM infrstructure for OnStackReplacement
Lukas Stadler <lukas.stadler@jku.at>
parents:
6521
diff
changeset
|
331 template(com_oracle_graal_api_code_CompilationResult_DataPatch, "com/oracle/graal/api/code/CompilationResult$DataPatch") \ |
fd71ca8c5f88
VM infrstructure for OnStackReplacement
Lukas Stadler <lukas.stadler@jku.at>
parents:
6521
diff
changeset
|
332 template(com_oracle_graal_api_code_CompilationResult_ExceptionHandler, "com/oracle/graal/api/code/CompilationResult$ExceptionHandler") \ |
fd71ca8c5f88
VM infrstructure for OnStackReplacement
Lukas Stadler <lukas.stadler@jku.at>
parents:
6521
diff
changeset
|
333 template(com_oracle_graal_api_code_CompilationResult_Mark, "com/oracle/graal/api/code/CompilationResult$Mark") \ |
9003
a8fea2979e63
eager infopoint mode (fka debug mode)
Michael Haupt <michael.haupt@oracle.com>
parents:
8883
diff
changeset
|
334 template(com_oracle_graal_api_code_CompilationResult_Infopoint, "com/oracle/graal/api/code/CompilationResult$Infopoint") \ |
6674
fd71ca8c5f88
VM infrstructure for OnStackReplacement
Lukas Stadler <lukas.stadler@jku.at>
parents:
6521
diff
changeset
|
335 template(com_oracle_graal_api_code_CompilationResult_Site, "com/oracle/graal/api/code/CompilationResult$Site") \ |
9003
a8fea2979e63
eager infopoint mode (fka debug mode)
Michael Haupt <michael.haupt@oracle.com>
parents:
8883
diff
changeset
|
336 template(com_oracle_graal_api_code_InfopointReason, "com/oracle/graal/api/code/InfopointReason") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
337 template(com_oracle_graal_api_code_BytecodeFrame, "com/oracle/graal/api/code/BytecodeFrame") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
338 template(com_oracle_graal_api_code_BytecodePosition, "com/oracle/graal/api/code/BytecodePosition") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
339 template(com_oracle_graal_api_code_DebugInfo, "com/oracle/graal/api/code/DebugInfo") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
340 template(com_oracle_graal_api_code_Register, "com/oracle/graal/api/code/Register") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
341 template(com_oracle_graal_api_code_RegisterValue, "com/oracle/graal/api/code/RegisterValue") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
342 template(com_oracle_graal_api_code_StackSlot, "com/oracle/graal/api/code/StackSlot") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
343 template(com_oracle_graal_api_code_VirtualObject, "com/oracle/graal/api/code/VirtualObject") \ |
9023
f94bb5d20e5d
Rename MethodInvalidatedException to InvalidInstalledCodeException (and make it a checked exception). Make sure that a compiled code object can always be directly called without first doing a check on the native method pointer.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
8947
diff
changeset
|
344 template(com_oracle_graal_api_code_InvalidInstalledCodeException, "com/oracle/graal/api/code/InvalidInstalledCodeException") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
345 template(startCompiler_name, "startCompiler") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
346 template(bootstrap_name, "bootstrap") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
347 template(shutdownCompiler_name, "shutdownCompiler") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
348 template(compileMethod_name, "compileMethod") \ |
7084
9ba90252ce08
HotSpotResolvedJavaType is now the HotSpot implementation of ResolvedJavaType,
Gilles Duboscq <duboscq@ssw.jku.at>
parents:
6948
diff
changeset
|
349 template(compileMethod_signature, "(JLcom/oracle/graal/hotspot/meta/HotSpotResolvedObjectType;IZI)Z") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
350 template(setOption_name, "setOption") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
351 template(setOption_signature, "(Ljava/lang/String;)Z") \ |
6948
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
352 template(createUnresolvedJavaMethod_name, "createUnresolvedJavaMethod") \ |
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
353 template(createUnresolvedJavaMethod_signature, "(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/graal/api/meta/JavaType;)Lcom/oracle/graal/api/meta/JavaMethod;") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
354 template(createSignature_name, "createSignature") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
355 template(createSignature_signature, "(Ljava/lang/String;)Lcom/oracle/graal/api/meta/Signature;") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
356 template(createJavaField_name, "createJavaField") \ |
6948
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
357 template(createJavaField_signature, "(Lcom/oracle/graal/api/meta/JavaType;Ljava/lang/String;Lcom/oracle/graal/api/meta/JavaType;IIZ)Lcom/oracle/graal/api/meta/JavaField;") \ |
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
358 template(createResolvedJavaMethod_name, "createResolvedJavaMethod") \ |
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
359 template(createResolvedJavaMethod_signature, "(Lcom/oracle/graal/api/meta/JavaType;J)Lcom/oracle/graal/api/meta/ResolvedJavaMethod;") \ |
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
360 template(createUnresolvedJavaType_name, "createUnresolvedJavaType") \ |
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
361 template(createUnresolvedJavaType_signature, "(Ljava/lang/String;)Lcom/oracle/graal/api/meta/JavaType;") \ |
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
362 template(createResolvedJavaType_name, "createResolvedJavaType") \ |
9126
bc26f978b0ce
HotSpotResolvedObjectType: implement hasFinalizeSubclass() correctly
Bernhard Urban <bernhard.urban@jku.at>
parents:
9027
diff
changeset
|
363 template(createResolvedJavaType_signature, "(JLjava/lang/String;Ljava/lang/String;Ljava/lang/Class;I)Lcom/oracle/graal/api/meta/ResolvedJavaType;") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
364 template(createPrimitiveJavaType_name, "createPrimitiveJavaType") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
365 template(createPrimitiveJavaType_signature, "(I)Lcom/oracle/graal/api/meta/JavaType;") \ |
7786
8bbbde9d0a52
extended ResolvedJavaMethod API by getLocalVariableTable
Matthias Grimmer <grimmer@ssw.jku.at>
parents:
7782
diff
changeset
|
366 template(createLocalImpl_name, "createLocalImpl") \ |
8bbbde9d0a52
extended ResolvedJavaMethod API by getLocalVariableTable
Matthias Grimmer <grimmer@ssw.jku.at>
parents:
7782
diff
changeset
|
367 template(createLocalImpl_signature, "(Ljava/lang/String;Ljava/lang/String;Lcom/oracle/graal/hotspot/meta/HotSpotResolvedObjectType;III)Lcom/oracle/graal/hotspot/debug/LocalImpl;") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
368 template(createConstant_name, "createConstant") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
369 template(createConstant_signature, "(Lcom/oracle/graal/api/meta/Kind;J)Lcom/oracle/graal/api/meta/Constant;") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
370 template(createConstantFloat_name, "createConstantFloat") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
371 template(createConstantFloat_signature, "(F)Lcom/oracle/graal/api/meta/Constant;") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
372 template(createConstantDouble_name, "createConstantDouble") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
373 template(createConstantDouble_signature, "(D)Lcom/oracle/graal/api/meta/Constant;") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
374 template(createConstantObject_name, "createConstantObject") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
375 template(createConstantObject_signature, "(Ljava/lang/Object;)Lcom/oracle/graal/api/meta/Constant;") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
376 template(getVMToCompiler_name, "getVMToCompiler") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
377 template(getVMToCompiler_signature, "()Lcom/oracle/graal/hotspot/bridge/VMToCompiler;") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
378 template(getInstance_name, "getInstance") \ |
6505
1ecf984d490c
fixed an ordering issue in the initialization and retrieval of the platform specific HotSpotGraalRuntime instance
Doug Simon <doug.simon@oracle.com>
parents:
6495
diff
changeset
|
379 template(makeInstance_name, "makeInstance") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
380 template(initialize_name, "initialize") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
381 template(getInstance_signature, "()Lcom/oracle/graal/hotspot/HotSpotGraalRuntime;") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
382 template(forObject_name, "forObject") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
383 template(callbackInternal_name, "callbackInternal") \ |
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
384 template(callback_signature, "(Ljava/lang/Object;)Ljava/lang/Object;") \ |
5747
120820e30baa
added basic high-level interpreter support to HotSpot
Christian Haeubl <haeubl@ssw.jku.at>
parents:
5554
diff
changeset
|
385 /* graal.api.interpreter */ \ |
120820e30baa
added basic high-level interpreter support to HotSpot
Christian Haeubl <haeubl@ssw.jku.at>
parents:
5554
diff
changeset
|
386 template(com_oracle_graal_api_interpreter_Interpreter, "com/oracle/graal/api/interpreter/Interpreter") \ |
120820e30baa
added basic high-level interpreter support to HotSpot
Christian Haeubl <haeubl@ssw.jku.at>
parents:
5554
diff
changeset
|
387 template(interpreter_execute_name, "execute") \ |
120820e30baa
added basic high-level interpreter support to HotSpot
Christian Haeubl <haeubl@ssw.jku.at>
parents:
5554
diff
changeset
|
388 template(interpreter_execute_signature, "(Lcom/oracle/graal/api/meta/ResolvedJavaMethod;[Ljava/lang/Object;)Ljava/lang/Object;") \ |
5554
70f715dfbb41
Bring Java renamings and restructurings to the C++ part.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
5548
diff
changeset
|
389 \ |
710 | 390 \ |
7587 | 391 \ |
710 | 392 /* common method and field names */ \ |
0 | 393 template(object_initializer_name, "<init>") \ |
394 template(class_initializer_name, "<clinit>") \ | |
395 template(println_name, "println") \ | |
396 template(printStackTrace_name, "printStackTrace") \ | |
397 template(main_name, "main") \ | |
398 template(name_name, "name") \ | |
399 template(priority_name, "priority") \ | |
400 template(stillborn_name, "stillborn") \ | |
401 template(group_name, "group") \ | |
402 template(daemon_name, "daemon") \ | |
403 template(eetop_name, "eetop") \ | |
404 template(thread_status_name, "threadStatus") \ | |
405 template(run_method_name, "run") \ | |
406 template(exit_method_name, "exit") \ | |
407 template(add_method_name, "add") \ | |
4916
1b0e0f8be510
7131006: java/lang/management/ThreadMXBean/ThreadLists.java
minqi
parents:
4773
diff
changeset
|
408 template(remove_method_name, "remove") \ |
0 | 409 template(parent_name, "parent") \ |
410 template(threads_name, "threads") \ | |
411 template(groups_name, "groups") \ | |
412 template(maxPriority_name, "maxPriority") \ | |
413 template(destroyed_name, "destroyed") \ | |
414 template(vmAllowSuspension_name, "vmAllowSuspension") \ | |
415 template(nthreads_name, "nthreads") \ | |
416 template(ngroups_name, "ngroups") \ | |
417 template(shutdown_method_name, "shutdown") \ | |
418 template(finalize_method_name, "finalize") \ | |
419 template(reference_lock_name, "lock") \ | |
420 template(reference_discovered_name, "discovered") \ | |
4773 | 421 template(run_finalization_name, "runFinalization") \ |
0 | 422 template(run_finalizers_on_exit_name, "runFinalizersOnExit") \ |
423 template(uncaughtException_name, "uncaughtException") \ | |
424 template(dispatchUncaughtException_name, "dispatchUncaughtException") \ | |
425 template(initializeSystemClass_name, "initializeSystemClass") \ | |
426 template(loadClass_name, "loadClass") \ | |
427 template(loadClassInternal_name, "loadClassInternal") \ | |
428 template(get_name, "get") \ | |
429 template(put_name, "put") \ | |
430 template(type_name, "type") \ | |
431 template(findNative_name, "findNative") \ | |
432 template(deadChild_name, "deadChild") \ | |
6751
2a48c84f1d04
7197269: NPG: FollowReferences has no ClassLoader -> Class link to follow
coleenp
parents:
6725
diff
changeset
|
433 template(addClass_name, "addClass") \ |
0 | 434 template(getFromClass_name, "getFromClass") \ |
435 template(dispatch_name, "dispatch") \ | |
436 template(getSystemClassLoader_name, "getSystemClassLoader") \ | |
437 template(fillInStackTrace_name, "fillInStackTrace") \ | |
2476
6a615eae2f34
7034585: Adjust fillInStackTrace filtering to assist 6998871
dholmes
parents:
2357
diff
changeset
|
438 template(fillInStackTrace0_name, "fillInStackTrace0") \ |
0 | 439 template(getCause_name, "getCause") \ |
440 template(initCause_name, "initCause") \ | |
441 template(setProperty_name, "setProperty") \ | |
442 template(getProperty_name, "getProperty") \ | |
443 template(context_name, "context") \ | |
444 template(privilegedContext_name, "privilegedContext") \ | |
445 template(contextClassLoader_name, "contextClassLoader") \ | |
446 template(inheritedAccessControlContext_name, "inheritedAccessControlContext") \ | |
447 template(isPrivileged_name, "isPrivileged") \ | |
8866
16885e702c88
7198429: need checked categorization of caller-sensitive methods in the JDK
twisti
parents:
7955
diff
changeset
|
448 template(getClassContext_name, "getClassContext") \ |
0 | 449 template(wait_name, "wait") \ |
450 template(checkPackageAccess_name, "checkPackageAccess") \ | |
451 template(stackSize_name, "stackSize") \ | |
452 template(thread_id_name, "tid") \ | |
453 template(newInstance0_name, "newInstance0") \ | |
454 template(limit_name, "limit") \ | |
455 template(forName_name, "forName") \ | |
456 template(forName0_name, "forName0") \ | |
457 template(isJavaIdentifierStart_name, "isJavaIdentifierStart") \ | |
458 template(isJavaIdentifierPart_name, "isJavaIdentifierPart") \ | |
459 template(exclusive_owner_thread_name, "exclusiveOwnerThread") \ | |
460 template(park_blocker_name, "parkBlocker") \ | |
461 template(park_event_name, "nativeParkEventPointer") \ | |
17
ff5961f4c095
6395208: Elide autoboxing for calls to HashMap.get(int) and HashMap.get(long)
never
parents:
0
diff
changeset
|
462 template(cache_field_name, "cache") \ |
0 | 463 template(value_name, "value") \ |
6057 | 464 template(offset_name, "offset") \ |
465 template(count_name, "count") \ | |
466 template(hash_name, "hash") \ | |
18
c7d713375c94
6621621: HashMap front cache should be enabled only with AggressiveOpts
phh
parents:
17
diff
changeset
|
467 template(frontCacheEnabled_name, "frontCacheEnabled") \ |
192
6d13fcb3663f
6714404: Add UseStringCache switch to enable String caching under AggressiveOpts
kvn
parents:
169
diff
changeset
|
468 template(stringCacheEnabled_name, "stringCacheEnabled") \ |
775
93c14e5562c4
6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
twisti
parents:
726
diff
changeset
|
469 template(numberOfLeadingZeros_name, "numberOfLeadingZeros") \ |
93c14e5562c4
6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
twisti
parents:
726
diff
changeset
|
470 template(numberOfTrailingZeros_name, "numberOfTrailingZeros") \ |
643
c771b7f43bbf
6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents:
514
diff
changeset
|
471 template(bitCount_name, "bitCount") \ |
675 | 472 template(profile_name, "profile") \ |
681 | 473 template(equals_name, "equals") \ |
3476
65981c23c1d6
Fixed bootstrap (lowered compilation threshold and register more methods for compilation)
Thomas Wuerthinger <thomas@wuerthinger.net>
parents:
3464
diff
changeset
|
474 template(length_name, "length") \ |
726
be93aad57795
6655646: dynamic languages need dynamically linked call sites
jrose
parents:
710
diff
changeset
|
475 template(target_name, "target") \ |
710 | 476 template(toString_name, "toString") \ |
477 template(values_name, "values") \ | |
478 template(receiver_name, "receiver") \ | |
479 template(vmtarget_name, "vmtarget") \ | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6271
diff
changeset
|
480 template(next_target_name, "next_target") \ |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6271
diff
changeset
|
481 template(vmloader_name, "vmloader") \ |
6266
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
482 template(vmindex_name, "vmindex") \ |
3905
c26de9aef2ed
7071307: MethodHandle bimorphic inlining should consider the frequency
never
parents:
3900
diff
changeset
|
483 template(vmcount_name, "vmcount") \ |
6266
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
484 template(vmentry_name, "vmentry") \ |
710 | 485 template(flags_name, "flags") \ |
486 template(rtype_name, "rtype") \ | |
487 template(ptypes_name, "ptypes") \ | |
488 template(form_name, "form") \ | |
6266
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
489 template(basicType_name, "basicType") \ |
1080
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
490 template(append_name, "append") \ |
3938 | 491 template(klass_name, "klass") \ |
492 template(array_klass_name, "array_klass") \ | |
493 template(oop_size_name, "oop_size") \ | |
494 template(static_oop_field_count_name, "static_oop_field_count") \ | |
6948
e522a00b91aa
Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/ after NPG - C++ build works
Doug Simon <doug.simon@oracle.com>
diff
changeset
|
495 GRAAL_ONLY(template(graal_mirror_name, "graal_mirror")) \ |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6271
diff
changeset
|
496 template(loader_data_name, "loader_data") \ |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6271
diff
changeset
|
497 template(dependencies_name, "dependencies") \ |
0 | 498 \ |
499 /* non-intrinsic name/signature pairs: */ \ | |
500 template(register_method_name, "register") \ | |
501 do_alias(register_method_signature, object_void_signature) \ | |
502 \ | |
503 /* name symbols needed by intrinsics */ \ | |
504 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, template, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) \ | |
505 \ | |
506 /* common signatures names */ \ | |
507 template(void_method_signature, "()V") \ | |
1133
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
508 template(void_boolean_signature, "()Z") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
509 template(void_byte_signature, "()B") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
510 template(void_char_signature, "()C") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
511 template(void_short_signature, "()S") \ |
0 | 512 template(void_int_signature, "()I") \ |
513 template(void_long_signature, "()J") \ | |
1133
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
514 template(void_float_signature, "()F") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
515 template(void_double_signature, "()D") \ |
3650
0e8a2a629afb
Pass-by compilation broker.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
3632
diff
changeset
|
516 template(bool_void_signature, "(Z)V") \ |
0 | 517 template(int_void_signature, "(I)V") \ |
518 template(int_int_signature, "(I)I") \ | |
1396
d7f654633cfe
6946040: add intrinsic for short and char reverseBytes
never
parents:
1144
diff
changeset
|
519 template(char_char_signature, "(C)C") \ |
d7f654633cfe
6946040: add intrinsic for short and char reverseBytes
never
parents:
1144
diff
changeset
|
520 template(short_short_signature, "(S)S") \ |
0 | 521 template(int_bool_signature, "(I)Z") \ |
522 template(float_int_signature, "(F)I") \ | |
523 template(double_long_signature, "(D)J") \ | |
524 template(double_double_signature, "(D)D") \ | |
525 template(int_float_signature, "(I)F") \ | |
643
c771b7f43bbf
6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents:
514
diff
changeset
|
526 template(long_int_signature, "(J)I") \ |
0 | 527 template(long_long_signature, "(J)J") \ |
528 template(long_double_signature, "(J)D") \ | |
529 template(byte_signature, "B") \ | |
530 template(char_signature, "C") \ | |
531 template(double_signature, "D") \ | |
532 template(float_signature, "F") \ | |
533 template(int_signature, "I") \ | |
534 template(long_signature, "J") \ | |
535 template(short_signature, "S") \ | |
536 template(bool_signature, "Z") \ | |
537 template(void_signature, "V") \ | |
538 template(byte_array_signature, "[B") \ | |
539 template(char_array_signature, "[C") \ | |
3363
167b70ff3abc
6939861: JVM should handle more conversion operations
never
parents:
3261
diff
changeset
|
540 template(int_array_signature, "[I") \ |
0 | 541 template(object_void_signature, "(Ljava/lang/Object;)V") \ |
542 template(object_int_signature, "(Ljava/lang/Object;)I") \ | |
543 template(object_boolean_signature, "(Ljava/lang/Object;)Z") \ | |
544 template(string_void_signature, "(Ljava/lang/String;)V") \ | |
545 template(string_int_signature, "(Ljava/lang/String;)I") \ | |
546 template(throwable_void_signature, "(Ljava/lang/Throwable;)V") \ | |
547 template(void_throwable_signature, "()Ljava/lang/Throwable;") \ | |
548 template(throwable_throwable_signature, "(Ljava/lang/Throwable;)Ljava/lang/Throwable;") \ | |
549 template(class_void_signature, "(Ljava/lang/Class;)V") \ | |
550 template(class_int_signature, "(Ljava/lang/Class;)I") \ | |
6006
0105f367a14c
7160570: Intrinsification support for tracing framework
rbackman
parents:
5895
diff
changeset
|
551 template(class_long_signature, "(Ljava/lang/Class;)J") \ |
0 | 552 template(class_boolean_signature, "(Ljava/lang/Class;)Z") \ |
553 template(throwable_string_void_signature, "(Ljava/lang/Throwable;Ljava/lang/String;)V") \ | |
554 template(string_array_void_signature, "([Ljava/lang/String;)V") \ | |
555 template(string_array_string_array_void_signature, "([Ljava/lang/String;[Ljava/lang/String;)V") \ | |
556 template(thread_throwable_void_signature, "(Ljava/lang/Thread;Ljava/lang/Throwable;)V") \ | |
557 template(thread_void_signature, "(Ljava/lang/Thread;)V") \ | |
558 template(threadgroup_runnable_void_signature, "(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V") \ | |
559 template(threadgroup_string_void_signature, "(Ljava/lang/ThreadGroup;Ljava/lang/String;)V") \ | |
560 template(string_class_signature, "(Ljava/lang/String;)Ljava/lang/Class;") \ | |
561 template(object_object_object_signature, "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;") \ | |
562 template(string_string_string_signature, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;") \ | |
563 template(string_string_signature, "(Ljava/lang/String;)Ljava/lang/String;") \ | |
564 template(classloader_string_long_signature, "(Ljava/lang/ClassLoader;Ljava/lang/String;)J") \ | |
565 template(byte_array_void_signature, "([B)V") \ | |
566 template(char_array_void_signature, "([C)V") \ | |
567 template(int_int_void_signature, "(II)V") \ | |
568 template(long_long_void_signature, "(JJ)V") \ | |
569 template(void_classloader_signature, "()Ljava/lang/ClassLoader;") \ | |
570 template(void_object_signature, "()Ljava/lang/Object;") \ | |
571 template(void_class_signature, "()Ljava/lang/Class;") \ | |
8866
16885e702c88
7198429: need checked categorization of caller-sensitive methods in the JDK
twisti
parents:
7955
diff
changeset
|
572 template(void_class_array_signature, "()[Ljava/lang/Class;") \ |
1507
cd5dbf694d45
6939134: JSR 292 adjustments to method handle invocation
jrose
parents:
1396
diff
changeset
|
573 template(void_string_signature, "()Ljava/lang/String;") \ |
cd5dbf694d45
6939134: JSR 292 adjustments to method handle invocation
jrose
parents:
1396
diff
changeset
|
574 template(object_array_object_signature, "([Ljava/lang/Object;)Ljava/lang/Object;") \ |
cd5dbf694d45
6939134: JSR 292 adjustments to method handle invocation
jrose
parents:
1396
diff
changeset
|
575 template(object_object_array_object_signature, "(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;")\ |
0 | 576 template(exception_void_signature, "(Ljava/lang/Exception;)V") \ |
577 template(protectiondomain_signature, "[Ljava/security/ProtectionDomain;") \ | |
578 template(accesscontrolcontext_signature, "Ljava/security/AccessControlContext;") \ | |
579 template(class_protectiondomain_signature, "(Ljava/lang/Class;Ljava/security/ProtectionDomain;)V") \ | |
580 template(thread_signature, "Ljava/lang/Thread;") \ | |
581 template(thread_array_signature, "[Ljava/lang/Thread;") \ | |
582 template(threadgroup_signature, "Ljava/lang/ThreadGroup;") \ | |
583 template(threadgroup_array_signature, "[Ljava/lang/ThreadGroup;") \ | |
584 template(class_array_signature, "[Ljava/lang/Class;") \ | |
585 template(classloader_signature, "Ljava/lang/ClassLoader;") \ | |
586 template(object_signature, "Ljava/lang/Object;") \ | |
587 template(class_signature, "Ljava/lang/Class;") \ | |
588 template(string_signature, "Ljava/lang/String;") \ | |
589 template(reference_signature, "Ljava/lang/ref/Reference;") \ | |
7462
ade95d680b42
8004728: Add hotspot support for parameter reflection
coleenp
parents:
7458
diff
changeset
|
590 template(executable_signature, "Ljava/lang/reflect/Executable;") \ |
514 | 591 template(concurrenthashmap_signature, "Ljava/util/concurrent/ConcurrentHashMap;") \ |
1080
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
592 template(String_StringBuilder_signature, "(Ljava/lang/String;)Ljava/lang/StringBuilder;") \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
593 template(int_StringBuilder_signature, "(I)Ljava/lang/StringBuilder;") \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
594 template(char_StringBuilder_signature, "(C)Ljava/lang/StringBuilder;") \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
595 template(String_StringBuffer_signature, "(Ljava/lang/String;)Ljava/lang/StringBuffer;") \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
596 template(int_StringBuffer_signature, "(I)Ljava/lang/StringBuffer;") \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
597 template(char_StringBuffer_signature, "(C)Ljava/lang/StringBuffer;") \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
598 template(int_String_signature, "(I)Ljava/lang/String;") \ |
0 | 599 /* signature symbols needed by intrinsics */ \ |
600 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, template, VM_ALIAS_IGNORE) \ | |
601 \ | |
602 /* symbol aliases needed by intrinsics */ \ | |
603 VM_INTRINSICS_DO(VM_INTRINSIC_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, do_alias) \ | |
604 \ | |
605 /* returned by the C1 compiler in case there's not enough memory to allocate a new symbol*/ \ | |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
606 template(dummy_symbol, "illegal symbol") \ |
0 | 607 \ |
608 /* used by ClassFormatError when class name is not known yet */ \ | |
609 template(unknown_class_name, "<Unknown>") \ | |
610 \ | |
514 | 611 /* used to identify class loaders handling parallel class loading */ \ |
653
e55bcaf3a6a1
6819853: VM does not detect JDK which supports parallel class loaders
acorn
parents:
579
diff
changeset
|
612 template(parallelCapable_name, "parallelLockMap") \ |
514 | 613 \ |
0 | 614 /* JVM monitoring and management support */ \ |
615 template(java_lang_StackTraceElement_array, "[Ljava/lang/StackTraceElement;") \ | |
616 template(java_lang_management_ThreadState, "java/lang/management/ThreadState") \ | |
617 template(java_lang_management_MemoryUsage, "java/lang/management/MemoryUsage") \ | |
618 template(java_lang_management_ThreadInfo, "java/lang/management/ThreadInfo") \ | |
619 template(sun_management_ManagementFactory, "sun/management/ManagementFactory") \ | |
620 template(sun_management_Sensor, "sun/management/Sensor") \ | |
621 template(sun_management_Agent, "sun/management/Agent") \ | |
3356
78542e2b5e35
7036199: Adding a notification to the implementation of GarbageCollectorMXBeans
fparain
parents:
3261
diff
changeset
|
622 template(sun_management_GarbageCollectorImpl, "sun/management/GarbageCollectorImpl") \ |
78542e2b5e35
7036199: Adding a notification to the implementation of GarbageCollectorMXBeans
fparain
parents:
3261
diff
changeset
|
623 template(getGcInfoBuilder_name, "getGcInfoBuilder") \ |
78542e2b5e35
7036199: Adding a notification to the implementation of GarbageCollectorMXBeans
fparain
parents:
3261
diff
changeset
|
624 template(getGcInfoBuilder_signature, "()Lsun/management/GcInfoBuilder;") \ |
78542e2b5e35
7036199: Adding a notification to the implementation of GarbageCollectorMXBeans
fparain
parents:
3261
diff
changeset
|
625 template(com_sun_management_GcInfo, "com/sun/management/GcInfo") \ |
78542e2b5e35
7036199: Adding a notification to the implementation of GarbageCollectorMXBeans
fparain
parents:
3261
diff
changeset
|
626 template(com_sun_management_GcInfo_constructor_signature, "(Lsun/management/GcInfoBuilder;JJJ[Ljava/lang/management/MemoryUsage;[Ljava/lang/management/MemoryUsage;[Ljava/lang/Object;)V") \ |
78542e2b5e35
7036199: Adding a notification to the implementation of GarbageCollectorMXBeans
fparain
parents:
3261
diff
changeset
|
627 template(createGCNotification_name, "createGCNotification") \ |
78542e2b5e35
7036199: Adding a notification to the implementation of GarbageCollectorMXBeans
fparain
parents:
3261
diff
changeset
|
628 template(createGCNotification_signature, "(JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/sun/management/GcInfo;)V") \ |
0 | 629 template(createMemoryPoolMBean_name, "createMemoryPoolMBean") \ |
630 template(createMemoryManagerMBean_name, "createMemoryManagerMBean") \ | |
631 template(createGarbageCollectorMBean_name, "createGarbageCollectorMBean") \ | |
632 template(createMemoryPoolMBean_signature, "(Ljava/lang/String;ZJJ)Ljava/lang/management/MemoryPoolMBean;") \ | |
633 template(createMemoryManagerMBean_signature, "(Ljava/lang/String;)Ljava/lang/management/MemoryManagerMBean;") \ | |
634 template(createGarbageCollectorMBean_signature, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/management/GarbageCollectorMBean;") \ | |
635 template(trigger_name, "trigger") \ | |
636 template(clear_name, "clear") \ | |
637 template(trigger_method_signature, "(ILjava/lang/management/MemoryUsage;)V") \ | |
638 template(startAgent_name, "startAgent") \ | |
5895
645162d94294
7110104: It should be possible to stop and start JMX Agent at runtime
dsamersoff
parents:
4916
diff
changeset
|
639 template(startRemoteAgent_name, "startRemoteManagementAgent") \ |
645162d94294
7110104: It should be possible to stop and start JMX Agent at runtime
dsamersoff
parents:
4916
diff
changeset
|
640 template(startLocalAgent_name, "startLocalManagementAgent") \ |
645162d94294
7110104: It should be possible to stop and start JMX Agent at runtime
dsamersoff
parents:
4916
diff
changeset
|
641 template(stopRemoteAgent_name, "stopRemoteManagementAgent") \ |
0 | 642 template(java_lang_management_ThreadInfo_constructor_signature, "(Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;)V") \ |
643 template(java_lang_management_ThreadInfo_with_locks_constructor_signature, "(Ljava/lang/Thread;ILjava/lang/Object;Ljava/lang/Thread;JJJJ[Ljava/lang/StackTraceElement;[Ljava/lang/Object;[I[Ljava/lang/Object;)V") \ | |
644 template(long_long_long_long_void_signature, "(JJJJ)V") \ | |
645 \ | |
646 template(java_lang_management_MemoryPoolMXBean, "java/lang/management/MemoryPoolMXBean") \ | |
647 template(java_lang_management_MemoryManagerMXBean, "java/lang/management/MemoryManagerMXBean") \ | |
648 template(java_lang_management_GarbageCollectorMXBean,"java/lang/management/GarbageCollectorMXBean") \ | |
3356
78542e2b5e35
7036199: Adding a notification to the implementation of GarbageCollectorMXBeans
fparain
parents:
3261
diff
changeset
|
649 template(gcInfoBuilder_name, "gcInfoBuilder") \ |
0 | 650 template(createMemoryPool_name, "createMemoryPool") \ |
651 template(createMemoryManager_name, "createMemoryManager") \ | |
652 template(createGarbageCollector_name, "createGarbageCollector") \ | |
653 template(createMemoryPool_signature, "(Ljava/lang/String;ZJJ)Ljava/lang/management/MemoryPoolMXBean;") \ | |
654 template(createMemoryManager_signature, "(Ljava/lang/String;)Ljava/lang/management/MemoryManagerMXBean;") \ | |
655 template(createGarbageCollector_signature, "(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/management/GarbageCollectorMXBean;") \ | |
656 template(addThreadDumpForMonitors_name, "addThreadDumpForMonitors") \ | |
657 template(addThreadDumpForSynchronizers_name, "addThreadDumpForSynchronizers") \ | |
658 template(addThreadDumpForMonitors_signature, "(Ljava/lang/management/ThreadInfo;[Ljava/lang/Object;[I)V") \ | |
659 template(addThreadDumpForSynchronizers_signature, "(Ljava/lang/management/ThreadInfo;[Ljava/lang/Object;)V") \ | |
660 \ | |
661 /* JVMTI/java.lang.instrument support and VM Attach mechanism */ \ | |
662 template(sun_misc_VMSupport, "sun/misc/VMSupport") \ | |
663 template(appendToClassPathForInstrumentation_name, "appendToClassPathForInstrumentation") \ | |
664 do_alias(appendToClassPathForInstrumentation_signature, string_void_signature) \ | |
665 template(serializePropertiesToByteArray_name, "serializePropertiesToByteArray") \ | |
666 template(serializePropertiesToByteArray_signature, "()[B") \ | |
667 template(serializeAgentPropertiesToByteArray_name, "serializeAgentPropertiesToByteArray") \ | |
668 template(classRedefinedCount_name, "classRedefinedCount") \ | |
6006
0105f367a14c
7160570: Intrinsification support for tracing framework
rbackman
parents:
5895
diff
changeset
|
669 \ |
0105f367a14c
7160570: Intrinsification support for tracing framework
rbackman
parents:
5895
diff
changeset
|
670 /* trace signatures */ \ |
0105f367a14c
7160570: Intrinsification support for tracing framework
rbackman
parents:
5895
diff
changeset
|
671 TRACE_TEMPLATES(template) \ |
0105f367a14c
7160570: Intrinsification support for tracing framework
rbackman
parents:
5895
diff
changeset
|
672 \ |
0 | 673 /*end*/ |
674 | |
675 // Here are all the intrinsics known to the runtime and the CI. | |
676 // Each intrinsic consists of a public enum name (like _hashCode), | |
677 // followed by a specification of its klass, name, and signature: | |
678 // template(<id>, <klass>, <name>, <sig>, <FCODE>) | |
679 // | |
680 // If you add an intrinsic here, you must also define its name | |
681 // and signature as members of the VM symbols. The VM symbols for | |
682 // the intrinsic name and signature may be defined above. | |
683 // | |
684 // Because the VM_SYMBOLS_DO macro makes reference to VM_INTRINSICS_DO, | |
685 // you can also define an intrinsic's name and/or signature locally to the | |
686 // intrinsic, if this makes sense. (It often does make sense.) | |
687 // | |
688 // For example: | |
689 // do_intrinsic(_foo, java_lang_Object, foo_name, foo_signature, F_xx) | |
690 // do_name( foo_name, "foo") | |
691 // do_signature(foo_signature, "()F") | |
692 // klass = vmSymbols::java_lang_Object() | |
693 // name = vmSymbols::foo_name() | |
694 // signature = vmSymbols::foo_signature() | |
695 // | |
696 // The name and/or signature might be a "well known" symbol | |
697 // like "equal" or "()I", in which case there will be no local | |
698 // re-definition of the symbol. | |
699 // | |
700 // The do_class, do_name, and do_signature calls are all used for the | |
701 // same purpose: Define yet another VM symbol. They could all be merged | |
702 // into a common 'do_symbol' call, but it seems useful to record our | |
703 // intentions here about kinds of symbols (class vs. name vs. signature). | |
704 // | |
705 // The F_xx is one of the Flags enum; see below. | |
706 // | |
707 // for Emacs: (let ((c-backslash-column 120) (c-backslash-max-column 120)) (c-backslash-region (point) (point-max) nil t)) | |
708 #define VM_INTRINSICS_DO(do_intrinsic, do_class, do_name, do_signature, do_alias) \ | |
709 do_intrinsic(_hashCode, java_lang_Object, hashCode_name, void_int_signature, F_R) \ | |
710 do_name( hashCode_name, "hashCode") \ | |
711 do_intrinsic(_getClass, java_lang_Object, getClass_name, void_class_signature, F_R) \ | |
712 do_name( getClass_name, "getClass") \ | |
713 do_intrinsic(_clone, java_lang_Object, clone_name, void_object_signature, F_R) \ | |
714 do_name( clone_name, "clone") \ | |
715 \ | |
716 /* Math & StrictMath intrinsics are defined in terms of just a few signatures: */ \ | |
717 do_class(java_lang_Math, "java/lang/Math") \ | |
718 do_class(java_lang_StrictMath, "java/lang/StrictMath") \ | |
719 do_signature(double2_double_signature, "(DD)D") \ | |
720 do_signature(int2_int_signature, "(II)I") \ | |
721 \ | |
722 /* here are the math names, all together: */ \ | |
723 do_name(abs_name,"abs") do_name(sin_name,"sin") do_name(cos_name,"cos") \ | |
724 do_name(tan_name,"tan") do_name(atan2_name,"atan2") do_name(sqrt_name,"sqrt") \ | |
725 do_name(log_name,"log") do_name(log10_name,"log10") do_name(pow_name,"pow") \ | |
726 do_name(exp_name,"exp") do_name(min_name,"min") do_name(max_name,"max") \ | |
727 \ | |
728 do_intrinsic(_dabs, java_lang_Math, abs_name, double_double_signature, F_S) \ | |
729 do_intrinsic(_dsin, java_lang_Math, sin_name, double_double_signature, F_S) \ | |
730 do_intrinsic(_dcos, java_lang_Math, cos_name, double_double_signature, F_S) \ | |
731 do_intrinsic(_dtan, java_lang_Math, tan_name, double_double_signature, F_S) \ | |
732 do_intrinsic(_datan2, java_lang_Math, atan2_name, double2_double_signature, F_S) \ | |
733 do_intrinsic(_dsqrt, java_lang_Math, sqrt_name, double_double_signature, F_S) \ | |
734 do_intrinsic(_dlog, java_lang_Math, log_name, double_double_signature, F_S) \ | |
735 do_intrinsic(_dlog10, java_lang_Math, log10_name, double_double_signature, F_S) \ | |
736 do_intrinsic(_dpow, java_lang_Math, pow_name, double2_double_signature, F_S) \ | |
737 do_intrinsic(_dexp, java_lang_Math, exp_name, double_double_signature, F_S) \ | |
738 do_intrinsic(_min, java_lang_Math, min_name, int2_int_signature, F_S) \ | |
739 do_intrinsic(_max, java_lang_Math, max_name, int2_int_signature, F_S) \ | |
740 \ | |
741 do_intrinsic(_floatToRawIntBits, java_lang_Float, floatToRawIntBits_name, float_int_signature, F_S) \ | |
742 do_name( floatToRawIntBits_name, "floatToRawIntBits") \ | |
743 do_intrinsic(_floatToIntBits, java_lang_Float, floatToIntBits_name, float_int_signature, F_S) \ | |
744 do_name( floatToIntBits_name, "floatToIntBits") \ | |
745 do_intrinsic(_intBitsToFloat, java_lang_Float, intBitsToFloat_name, int_float_signature, F_S) \ | |
746 do_name( intBitsToFloat_name, "intBitsToFloat") \ | |
747 do_intrinsic(_doubleToRawLongBits, java_lang_Double, doubleToRawLongBits_name, double_long_signature, F_S) \ | |
748 do_name( doubleToRawLongBits_name, "doubleToRawLongBits") \ | |
749 do_intrinsic(_doubleToLongBits, java_lang_Double, doubleToLongBits_name, double_long_signature, F_S) \ | |
750 do_name( doubleToLongBits_name, "doubleToLongBits") \ | |
751 do_intrinsic(_longBitsToDouble, java_lang_Double, longBitsToDouble_name, long_double_signature, F_S) \ | |
752 do_name( longBitsToDouble_name, "longBitsToDouble") \ | |
643
c771b7f43bbf
6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents:
514
diff
changeset
|
753 \ |
775
93c14e5562c4
6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
twisti
parents:
726
diff
changeset
|
754 do_intrinsic(_numberOfLeadingZeros_i, java_lang_Integer, numberOfLeadingZeros_name,int_int_signature, F_S) \ |
93c14e5562c4
6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
twisti
parents:
726
diff
changeset
|
755 do_intrinsic(_numberOfLeadingZeros_l, java_lang_Long, numberOfLeadingZeros_name,long_int_signature, F_S) \ |
93c14e5562c4
6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
twisti
parents:
726
diff
changeset
|
756 \ |
93c14e5562c4
6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
twisti
parents:
726
diff
changeset
|
757 do_intrinsic(_numberOfTrailingZeros_i, java_lang_Integer, numberOfTrailingZeros_name,int_int_signature, F_S) \ |
93c14e5562c4
6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
twisti
parents:
726
diff
changeset
|
758 do_intrinsic(_numberOfTrailingZeros_l, java_lang_Long, numberOfTrailingZeros_name,long_int_signature, F_S) \ |
93c14e5562c4
6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
twisti
parents:
726
diff
changeset
|
759 \ |
643
c771b7f43bbf
6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents:
514
diff
changeset
|
760 do_intrinsic(_bitCount_i, java_lang_Integer, bitCount_name, int_int_signature, F_S) \ |
c771b7f43bbf
6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents:
514
diff
changeset
|
761 do_intrinsic(_bitCount_l, java_lang_Long, bitCount_name, long_int_signature, F_S) \ |
c771b7f43bbf
6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents:
514
diff
changeset
|
762 \ |
0 | 763 do_intrinsic(_reverseBytes_i, java_lang_Integer, reverseBytes_name, int_int_signature, F_S) \ |
764 do_name( reverseBytes_name, "reverseBytes") \ | |
765 do_intrinsic(_reverseBytes_l, java_lang_Long, reverseBytes_name, long_long_signature, F_S) \ | |
766 /* (symbol reverseBytes_name defined above) */ \ | |
1396
d7f654633cfe
6946040: add intrinsic for short and char reverseBytes
never
parents:
1144
diff
changeset
|
767 do_intrinsic(_reverseBytes_c, java_lang_Character, reverseBytes_name, char_char_signature, F_S) \ |
d7f654633cfe
6946040: add intrinsic for short and char reverseBytes
never
parents:
1144
diff
changeset
|
768 /* (symbol reverseBytes_name defined above) */ \ |
d7f654633cfe
6946040: add intrinsic for short and char reverseBytes
never
parents:
1144
diff
changeset
|
769 do_intrinsic(_reverseBytes_s, java_lang_Short, reverseBytes_name, short_short_signature, F_S) \ |
d7f654633cfe
6946040: add intrinsic for short and char reverseBytes
never
parents:
1144
diff
changeset
|
770 /* (symbol reverseBytes_name defined above) */ \ |
0 | 771 \ |
772 do_intrinsic(_identityHashCode, java_lang_System, identityHashCode_name, object_int_signature, F_S) \ | |
773 do_name( identityHashCode_name, "identityHashCode") \ | |
774 do_intrinsic(_currentTimeMillis, java_lang_System, currentTimeMillis_name, void_long_signature, F_S) \ | |
775 \ | |
776 do_name( currentTimeMillis_name, "currentTimeMillis") \ | |
777 do_intrinsic(_nanoTime, java_lang_System, nanoTime_name, void_long_signature, F_S) \ | |
778 do_name( nanoTime_name, "nanoTime") \ | |
779 \ | |
6006
0105f367a14c
7160570: Intrinsification support for tracing framework
rbackman
parents:
5895
diff
changeset
|
780 TRACE_INTRINSICS(do_intrinsic, do_class, do_name, do_signature, do_alias) \ |
0105f367a14c
7160570: Intrinsification support for tracing framework
rbackman
parents:
5895
diff
changeset
|
781 \ |
0 | 782 do_intrinsic(_arraycopy, java_lang_System, arraycopy_name, arraycopy_signature, F_S) \ |
783 do_name( arraycopy_name, "arraycopy") \ | |
784 do_signature(arraycopy_signature, "(Ljava/lang/Object;ILjava/lang/Object;II)V") \ | |
785 do_intrinsic(_isInterrupted, java_lang_Thread, isInterrupted_name, isInterrupted_signature, F_R) \ | |
786 do_name( isInterrupted_name, "isInterrupted") \ | |
787 do_signature(isInterrupted_signature, "(Z)Z") \ | |
788 do_intrinsic(_currentThread, java_lang_Thread, currentThread_name, currentThread_signature, F_S) \ | |
789 do_name( currentThread_name, "currentThread") \ | |
790 do_signature(currentThread_signature, "()Ljava/lang/Thread;") \ | |
791 \ | |
792 /* reflective intrinsics, for java/lang/Class, etc. */ \ | |
793 do_intrinsic(_isAssignableFrom, java_lang_Class, isAssignableFrom_name, class_boolean_signature, F_RN) \ | |
794 do_name( isAssignableFrom_name, "isAssignableFrom") \ | |
795 do_intrinsic(_isInstance, java_lang_Class, isInstance_name, object_boolean_signature, F_RN) \ | |
796 do_name( isInstance_name, "isInstance") \ | |
797 do_intrinsic(_getModifiers, java_lang_Class, getModifiers_name, void_int_signature, F_RN) \ | |
798 do_name( getModifiers_name, "getModifiers") \ | |
799 do_intrinsic(_isInterface, java_lang_Class, isInterface_name, void_boolean_signature, F_RN) \ | |
800 do_name( isInterface_name, "isInterface") \ | |
801 do_intrinsic(_isArray, java_lang_Class, isArray_name, void_boolean_signature, F_RN) \ | |
802 do_name( isArray_name, "isArray") \ | |
803 do_intrinsic(_isPrimitive, java_lang_Class, isPrimitive_name, void_boolean_signature, F_RN) \ | |
804 do_name( isPrimitive_name, "isPrimitive") \ | |
805 do_intrinsic(_getSuperclass, java_lang_Class, getSuperclass_name, void_class_signature, F_RN) \ | |
806 do_name( getSuperclass_name, "getSuperclass") \ | |
807 do_intrinsic(_getComponentType, java_lang_Class, getComponentType_name, void_class_signature, F_RN) \ | |
808 do_name( getComponentType_name, "getComponentType") \ | |
809 \ | |
810 do_intrinsic(_getClassAccessFlags, sun_reflect_Reflection, getClassAccessFlags_name, class_int_signature, F_SN) \ | |
811 do_name( getClassAccessFlags_name, "getClassAccessFlags") \ | |
812 do_intrinsic(_getLength, java_lang_reflect_Array, getLength_name, object_int_signature, F_SN) \ | |
813 do_name( getLength_name, "getLength") \ | |
814 \ | |
8866
16885e702c88
7198429: need checked categorization of caller-sensitive methods in the JDK
twisti
parents:
7955
diff
changeset
|
815 do_intrinsic(_getCallerClass, sun_reflect_Reflection, getCallerClass_name, void_class_signature, F_SN) \ |
0 | 816 do_name( getCallerClass_name, "getCallerClass") \ |
817 \ | |
818 do_intrinsic(_newArray, java_lang_reflect_Array, newArray_name, newArray_signature, F_SN) \ | |
819 do_name( newArray_name, "newArray") \ | |
820 do_signature(newArray_signature, "(Ljava/lang/Class;I)Ljava/lang/Object;") \ | |
821 \ | |
822 do_intrinsic(_copyOf, java_util_Arrays, copyOf_name, copyOf_signature, F_S) \ | |
823 do_name( copyOf_name, "copyOf") \ | |
824 do_signature(copyOf_signature, "([Ljava/lang/Object;ILjava/lang/Class;)[Ljava/lang/Object;") \ | |
825 \ | |
826 do_intrinsic(_copyOfRange, java_util_Arrays, copyOfRange_name, copyOfRange_signature, F_S) \ | |
827 do_name( copyOfRange_name, "copyOfRange") \ | |
828 do_signature(copyOfRange_signature, "([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;") \ | |
829 \ | |
169
9148c65abefc
6695049: (coll) Create an x86 intrinsic for Arrays.equals
rasbold
parents:
45
diff
changeset
|
830 do_intrinsic(_equalsC, java_util_Arrays, equals_name, equalsC_signature, F_S) \ |
9148c65abefc
6695049: (coll) Create an x86 intrinsic for Arrays.equals
rasbold
parents:
45
diff
changeset
|
831 do_signature(equalsC_signature, "([C[C)Z") \ |
9148c65abefc
6695049: (coll) Create an x86 intrinsic for Arrays.equals
rasbold
parents:
45
diff
changeset
|
832 \ |
0 | 833 do_intrinsic(_compareTo, java_lang_String, compareTo_name, string_int_signature, F_R) \ |
834 do_name( compareTo_name, "compareTo") \ | |
835 do_intrinsic(_indexOf, java_lang_String, indexOf_name, string_int_signature, F_R) \ | |
836 do_name( indexOf_name, "indexOf") \ | |
681 | 837 do_intrinsic(_equals, java_lang_String, equals_name, object_boolean_signature, F_R) \ |
0 | 838 \ |
839 do_class(java_nio_Buffer, "java/nio/Buffer") \ | |
840 do_intrinsic(_checkIndex, java_nio_Buffer, checkIndex_name, int_int_signature, F_R) \ | |
841 do_name( checkIndex_name, "checkIndex") \ | |
842 \ | |
7637
b30b3c2a0cf2
6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
kvn
parents:
7615
diff
changeset
|
843 do_class(sun_nio_cs_iso8859_1_Encoder, "sun/nio/cs/ISO_8859_1$Encoder") \ |
b30b3c2a0cf2
6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
kvn
parents:
7615
diff
changeset
|
844 do_intrinsic(_encodeISOArray, sun_nio_cs_iso8859_1_Encoder, encodeISOArray_name, encodeISOArray_signature, F_S) \ |
b30b3c2a0cf2
6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
kvn
parents:
7615
diff
changeset
|
845 do_name( encodeISOArray_name, "encodeISOArray") \ |
b30b3c2a0cf2
6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
kvn
parents:
7615
diff
changeset
|
846 do_signature(encodeISOArray_signature, "([CI[BII)I") \ |
b30b3c2a0cf2
6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
kvn
parents:
7615
diff
changeset
|
847 \ |
3249
e1162778c1c8
7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error
johnc
parents:
2357
diff
changeset
|
848 /* java/lang/ref/Reference */ \ |
e1162778c1c8
7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error
johnc
parents:
2357
diff
changeset
|
849 do_intrinsic(_Reference_get, java_lang_ref_Reference, get_name, void_object_signature, F_R) \ |
e1162778c1c8
7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error
johnc
parents:
2357
diff
changeset
|
850 \ |
6894 | 851 /* support for com.sum.crypto.provider.AESCrypt and some of its callers */ \ |
852 do_class(com_sun_crypto_provider_aescrypt, "com/sun/crypto/provider/AESCrypt") \ | |
853 do_intrinsic(_aescrypt_encryptBlock, com_sun_crypto_provider_aescrypt, encryptBlock_name, byteArray_int_byteArray_int_signature, F_R) \ | |
854 do_intrinsic(_aescrypt_decryptBlock, com_sun_crypto_provider_aescrypt, decryptBlock_name, byteArray_int_byteArray_int_signature, F_R) \ | |
855 do_name( encryptBlock_name, "encryptBlock") \ | |
856 do_name( decryptBlock_name, "decryptBlock") \ | |
857 do_signature(byteArray_int_byteArray_int_signature, "([BI[BI)V") \ | |
858 \ | |
859 do_class(com_sun_crypto_provider_cipherBlockChaining, "com/sun/crypto/provider/CipherBlockChaining") \ | |
860 do_intrinsic(_cipherBlockChaining_encryptAESCrypt, com_sun_crypto_provider_cipherBlockChaining, encrypt_name, byteArray_int_int_byteArray_int_signature, F_R) \ | |
861 do_intrinsic(_cipherBlockChaining_decryptAESCrypt, com_sun_crypto_provider_cipherBlockChaining, decrypt_name, byteArray_int_int_byteArray_int_signature, F_R) \ | |
862 do_name( encrypt_name, "encrypt") \ | |
863 do_name( decrypt_name, "decrypt") \ | |
864 do_signature(byteArray_int_int_byteArray_int_signature, "([BII[BI)V") \ | |
865 \ | |
0 | 866 /* support for sun.misc.Unsafe */ \ |
867 do_class(sun_misc_Unsafe, "sun/misc/Unsafe") \ | |
868 \ | |
869 do_intrinsic(_allocateInstance, sun_misc_Unsafe, allocateInstance_name, allocateInstance_signature, F_RN) \ | |
870 do_name( allocateInstance_name, "allocateInstance") \ | |
871 do_signature(allocateInstance_signature, "(Ljava/lang/Class;)Ljava/lang/Object;") \ | |
872 do_intrinsic(_copyMemory, sun_misc_Unsafe, copyMemory_name, copyMemory_signature, F_RN) \ | |
873 do_name( copyMemory_name, "copyMemory") \ | |
874 do_signature(copyMemory_signature, "(Ljava/lang/Object;JLjava/lang/Object;JJ)V") \ | |
875 do_intrinsic(_park, sun_misc_Unsafe, park_name, park_signature, F_RN) \ | |
876 do_name( park_name, "park") \ | |
877 do_signature(park_signature, "(ZJ)V") \ | |
878 do_intrinsic(_unpark, sun_misc_Unsafe, unpark_name, unpark_signature, F_RN) \ | |
879 do_name( unpark_name, "unpark") \ | |
880 do_alias( unpark_signature, /*(LObject;)V*/ object_void_signature) \ | |
7425 | 881 do_intrinsic(_loadFence, sun_misc_Unsafe, loadFence_name, loadFence_signature, F_RN) \ |
882 do_name( loadFence_name, "loadFence") \ | |
883 do_alias( loadFence_signature, void_method_signature) \ | |
884 do_intrinsic(_storeFence, sun_misc_Unsafe, storeFence_name, storeFence_signature, F_RN) \ | |
885 do_name( storeFence_name, "storeFence") \ | |
886 do_alias( storeFence_signature, void_method_signature) \ | |
887 do_intrinsic(_fullFence, sun_misc_Unsafe, fullFence_name, fullFence_signature, F_RN) \ | |
888 do_name( fullFence_name, "fullFence") \ | |
889 do_alias( fullFence_signature, void_method_signature) \ | |
0 | 890 \ |
891 /* unsafe memory references (there are a lot of them...) */ \ | |
892 do_signature(getObject_signature, "(Ljava/lang/Object;J)Ljava/lang/Object;") \ | |
893 do_signature(putObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;)V") \ | |
894 do_signature(getBoolean_signature, "(Ljava/lang/Object;J)Z") \ | |
895 do_signature(putBoolean_signature, "(Ljava/lang/Object;JZ)V") \ | |
896 do_signature(getByte_signature, "(Ljava/lang/Object;J)B") \ | |
897 do_signature(putByte_signature, "(Ljava/lang/Object;JB)V") \ | |
898 do_signature(getShort_signature, "(Ljava/lang/Object;J)S") \ | |
899 do_signature(putShort_signature, "(Ljava/lang/Object;JS)V") \ | |
900 do_signature(getChar_signature, "(Ljava/lang/Object;J)C") \ | |
901 do_signature(putChar_signature, "(Ljava/lang/Object;JC)V") \ | |
902 do_signature(getInt_signature, "(Ljava/lang/Object;J)I") \ | |
903 do_signature(putInt_signature, "(Ljava/lang/Object;JI)V") \ | |
904 do_signature(getLong_signature, "(Ljava/lang/Object;J)J") \ | |
905 do_signature(putLong_signature, "(Ljava/lang/Object;JJ)V") \ | |
906 do_signature(getFloat_signature, "(Ljava/lang/Object;J)F") \ | |
907 do_signature(putFloat_signature, "(Ljava/lang/Object;JF)V") \ | |
908 do_signature(getDouble_signature, "(Ljava/lang/Object;J)D") \ | |
909 do_signature(putDouble_signature, "(Ljava/lang/Object;JD)V") \ | |
910 \ | |
911 do_name(getObject_name,"getObject") do_name(putObject_name,"putObject") \ | |
912 do_name(getBoolean_name,"getBoolean") do_name(putBoolean_name,"putBoolean") \ | |
913 do_name(getByte_name,"getByte") do_name(putByte_name,"putByte") \ | |
914 do_name(getShort_name,"getShort") do_name(putShort_name,"putShort") \ | |
915 do_name(getChar_name,"getChar") do_name(putChar_name,"putChar") \ | |
916 do_name(getInt_name,"getInt") do_name(putInt_name,"putInt") \ | |
917 do_name(getLong_name,"getLong") do_name(putLong_name,"putLong") \ | |
918 do_name(getFloat_name,"getFloat") do_name(putFloat_name,"putFloat") \ | |
919 do_name(getDouble_name,"getDouble") do_name(putDouble_name,"putDouble") \ | |
920 \ | |
921 do_intrinsic(_getObject, sun_misc_Unsafe, getObject_name, getObject_signature, F_RN) \ | |
922 do_intrinsic(_getBoolean, sun_misc_Unsafe, getBoolean_name, getBoolean_signature, F_RN) \ | |
923 do_intrinsic(_getByte, sun_misc_Unsafe, getByte_name, getByte_signature, F_RN) \ | |
924 do_intrinsic(_getShort, sun_misc_Unsafe, getShort_name, getShort_signature, F_RN) \ | |
925 do_intrinsic(_getChar, sun_misc_Unsafe, getChar_name, getChar_signature, F_RN) \ | |
926 do_intrinsic(_getInt, sun_misc_Unsafe, getInt_name, getInt_signature, F_RN) \ | |
927 do_intrinsic(_getLong, sun_misc_Unsafe, getLong_name, getLong_signature, F_RN) \ | |
928 do_intrinsic(_getFloat, sun_misc_Unsafe, getFloat_name, getFloat_signature, F_RN) \ | |
929 do_intrinsic(_getDouble, sun_misc_Unsafe, getDouble_name, getDouble_signature, F_RN) \ | |
930 do_intrinsic(_putObject, sun_misc_Unsafe, putObject_name, putObject_signature, F_RN) \ | |
931 do_intrinsic(_putBoolean, sun_misc_Unsafe, putBoolean_name, putBoolean_signature, F_RN) \ | |
932 do_intrinsic(_putByte, sun_misc_Unsafe, putByte_name, putByte_signature, F_RN) \ | |
933 do_intrinsic(_putShort, sun_misc_Unsafe, putShort_name, putShort_signature, F_RN) \ | |
934 do_intrinsic(_putChar, sun_misc_Unsafe, putChar_name, putChar_signature, F_RN) \ | |
935 do_intrinsic(_putInt, sun_misc_Unsafe, putInt_name, putInt_signature, F_RN) \ | |
936 do_intrinsic(_putLong, sun_misc_Unsafe, putLong_name, putLong_signature, F_RN) \ | |
937 do_intrinsic(_putFloat, sun_misc_Unsafe, putFloat_name, putFloat_signature, F_RN) \ | |
938 do_intrinsic(_putDouble, sun_misc_Unsafe, putDouble_name, putDouble_signature, F_RN) \ | |
939 \ | |
940 do_name(getObjectVolatile_name,"getObjectVolatile") do_name(putObjectVolatile_name,"putObjectVolatile") \ | |
941 do_name(getBooleanVolatile_name,"getBooleanVolatile") do_name(putBooleanVolatile_name,"putBooleanVolatile") \ | |
942 do_name(getByteVolatile_name,"getByteVolatile") do_name(putByteVolatile_name,"putByteVolatile") \ | |
943 do_name(getShortVolatile_name,"getShortVolatile") do_name(putShortVolatile_name,"putShortVolatile") \ | |
944 do_name(getCharVolatile_name,"getCharVolatile") do_name(putCharVolatile_name,"putCharVolatile") \ | |
945 do_name(getIntVolatile_name,"getIntVolatile") do_name(putIntVolatile_name,"putIntVolatile") \ | |
946 do_name(getLongVolatile_name,"getLongVolatile") do_name(putLongVolatile_name,"putLongVolatile") \ | |
947 do_name(getFloatVolatile_name,"getFloatVolatile") do_name(putFloatVolatile_name,"putFloatVolatile") \ | |
948 do_name(getDoubleVolatile_name,"getDoubleVolatile") do_name(putDoubleVolatile_name,"putDoubleVolatile") \ | |
949 \ | |
950 do_intrinsic(_getObjectVolatile, sun_misc_Unsafe, getObjectVolatile_name, getObject_signature, F_RN) \ | |
951 do_intrinsic(_getBooleanVolatile, sun_misc_Unsafe, getBooleanVolatile_name, getBoolean_signature, F_RN) \ | |
952 do_intrinsic(_getByteVolatile, sun_misc_Unsafe, getByteVolatile_name, getByte_signature, F_RN) \ | |
953 do_intrinsic(_getShortVolatile, sun_misc_Unsafe, getShortVolatile_name, getShort_signature, F_RN) \ | |
954 do_intrinsic(_getCharVolatile, sun_misc_Unsafe, getCharVolatile_name, getChar_signature, F_RN) \ | |
955 do_intrinsic(_getIntVolatile, sun_misc_Unsafe, getIntVolatile_name, getInt_signature, F_RN) \ | |
956 do_intrinsic(_getLongVolatile, sun_misc_Unsafe, getLongVolatile_name, getLong_signature, F_RN) \ | |
957 do_intrinsic(_getFloatVolatile, sun_misc_Unsafe, getFloatVolatile_name, getFloat_signature, F_RN) \ | |
958 do_intrinsic(_getDoubleVolatile, sun_misc_Unsafe, getDoubleVolatile_name, getDouble_signature, F_RN) \ | |
959 do_intrinsic(_putObjectVolatile, sun_misc_Unsafe, putObjectVolatile_name, putObject_signature, F_RN) \ | |
960 do_intrinsic(_putBooleanVolatile, sun_misc_Unsafe, putBooleanVolatile_name, putBoolean_signature, F_RN) \ | |
961 do_intrinsic(_putByteVolatile, sun_misc_Unsafe, putByteVolatile_name, putByte_signature, F_RN) \ | |
962 do_intrinsic(_putShortVolatile, sun_misc_Unsafe, putShortVolatile_name, putShort_signature, F_RN) \ | |
963 do_intrinsic(_putCharVolatile, sun_misc_Unsafe, putCharVolatile_name, putChar_signature, F_RN) \ | |
964 do_intrinsic(_putIntVolatile, sun_misc_Unsafe, putIntVolatile_name, putInt_signature, F_RN) \ | |
965 do_intrinsic(_putLongVolatile, sun_misc_Unsafe, putLongVolatile_name, putLong_signature, F_RN) \ | |
966 do_intrinsic(_putFloatVolatile, sun_misc_Unsafe, putFloatVolatile_name, putFloat_signature, F_RN) \ | |
967 do_intrinsic(_putDoubleVolatile, sun_misc_Unsafe, putDoubleVolatile_name, putDouble_signature, F_RN) \ | |
968 \ | |
969 /* %%% these are redundant except perhaps for getAddress, but Unsafe has native methods for them */ \ | |
970 do_signature(getByte_raw_signature, "(J)B") \ | |
971 do_signature(putByte_raw_signature, "(JB)V") \ | |
972 do_signature(getShort_raw_signature, "(J)S") \ | |
973 do_signature(putShort_raw_signature, "(JS)V") \ | |
974 do_signature(getChar_raw_signature, "(J)C") \ | |
975 do_signature(putChar_raw_signature, "(JC)V") \ | |
976 do_signature(putInt_raw_signature, "(JI)V") \ | |
977 do_alias(getLong_raw_signature, /*(J)J*/ long_long_signature) \ | |
978 do_alias(putLong_raw_signature, /*(JJ)V*/ long_long_void_signature) \ | |
979 do_signature(getFloat_raw_signature, "(J)F") \ | |
980 do_signature(putFloat_raw_signature, "(JF)V") \ | |
981 do_alias(getDouble_raw_signature, /*(J)D*/ long_double_signature) \ | |
982 do_signature(putDouble_raw_signature, "(JD)V") \ | |
983 do_alias(getAddress_raw_signature, /*(J)J*/ long_long_signature) \ | |
984 do_alias(putAddress_raw_signature, /*(JJ)V*/ long_long_void_signature) \ | |
985 \ | |
986 do_name( getAddress_name, "getAddress") \ | |
987 do_name( putAddress_name, "putAddress") \ | |
988 \ | |
989 do_intrinsic(_getByte_raw, sun_misc_Unsafe, getByte_name, getByte_raw_signature, F_RN) \ | |
990 do_intrinsic(_getShort_raw, sun_misc_Unsafe, getShort_name, getShort_raw_signature, F_RN) \ | |
991 do_intrinsic(_getChar_raw, sun_misc_Unsafe, getChar_name, getChar_raw_signature, F_RN) \ | |
643
c771b7f43bbf
6378821: bitCount() should use POPC on SPARC processors and AMD+10h
twisti
parents:
514
diff
changeset
|
992 do_intrinsic(_getInt_raw, sun_misc_Unsafe, getInt_name, long_int_signature, F_RN) \ |
0 | 993 do_intrinsic(_getLong_raw, sun_misc_Unsafe, getLong_name, getLong_raw_signature, F_RN) \ |
994 do_intrinsic(_getFloat_raw, sun_misc_Unsafe, getFloat_name, getFloat_raw_signature, F_RN) \ | |
995 do_intrinsic(_getDouble_raw, sun_misc_Unsafe, getDouble_name, getDouble_raw_signature, F_RN) \ | |
996 do_intrinsic(_getAddress_raw, sun_misc_Unsafe, getAddress_name, getAddress_raw_signature, F_RN) \ | |
997 do_intrinsic(_putByte_raw, sun_misc_Unsafe, putByte_name, putByte_raw_signature, F_RN) \ | |
998 do_intrinsic(_putShort_raw, sun_misc_Unsafe, putShort_name, putShort_raw_signature, F_RN) \ | |
999 do_intrinsic(_putChar_raw, sun_misc_Unsafe, putChar_name, putChar_raw_signature, F_RN) \ | |
1000 do_intrinsic(_putInt_raw, sun_misc_Unsafe, putInt_name, putInt_raw_signature, F_RN) \ | |
1001 do_intrinsic(_putLong_raw, sun_misc_Unsafe, putLong_name, putLong_raw_signature, F_RN) \ | |
1002 do_intrinsic(_putFloat_raw, sun_misc_Unsafe, putFloat_name, putFloat_raw_signature, F_RN) \ | |
1003 do_intrinsic(_putDouble_raw, sun_misc_Unsafe, putDouble_name, putDouble_raw_signature, F_RN) \ | |
1004 do_intrinsic(_putAddress_raw, sun_misc_Unsafe, putAddress_name, putAddress_raw_signature, F_RN) \ | |
1005 \ | |
1006 do_intrinsic(_compareAndSwapObject, sun_misc_Unsafe, compareAndSwapObject_name, compareAndSwapObject_signature, F_RN) \ | |
1007 do_name( compareAndSwapObject_name, "compareAndSwapObject") \ | |
1008 do_signature(compareAndSwapObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z") \ | |
1009 do_intrinsic(_compareAndSwapLong, sun_misc_Unsafe, compareAndSwapLong_name, compareAndSwapLong_signature, F_RN) \ | |
1010 do_name( compareAndSwapLong_name, "compareAndSwapLong") \ | |
1011 do_signature(compareAndSwapLong_signature, "(Ljava/lang/Object;JJJ)Z") \ | |
1012 do_intrinsic(_compareAndSwapInt, sun_misc_Unsafe, compareAndSwapInt_name, compareAndSwapInt_signature, F_RN) \ | |
1013 do_name( compareAndSwapInt_name, "compareAndSwapInt") \ | |
1014 do_signature(compareAndSwapInt_signature, "(Ljava/lang/Object;JII)Z") \ | |
1015 do_intrinsic(_putOrderedObject, sun_misc_Unsafe, putOrderedObject_name, putOrderedObject_signature, F_RN) \ | |
1016 do_name( putOrderedObject_name, "putOrderedObject") \ | |
1017 do_alias( putOrderedObject_signature, /*(LObject;JLObject;)V*/ putObject_signature) \ | |
1018 do_intrinsic(_putOrderedLong, sun_misc_Unsafe, putOrderedLong_name, putOrderedLong_signature, F_RN) \ | |
1019 do_name( putOrderedLong_name, "putOrderedLong") \ | |
1020 do_alias( putOrderedLong_signature, /*(Ljava/lang/Object;JJ)V*/ putLong_signature) \ | |
1021 do_intrinsic(_putOrderedInt, sun_misc_Unsafe, putOrderedInt_name, putOrderedInt_signature, F_RN) \ | |
1022 do_name( putOrderedInt_name, "putOrderedInt") \ | |
1023 do_alias( putOrderedInt_signature, /*(Ljava/lang/Object;JI)V*/ putInt_signature) \ | |
1024 \ | |
6795
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
6725
diff
changeset
|
1025 do_intrinsic(_getAndAddInt, sun_misc_Unsafe, getAndAddInt_name, getAndAddInt_signature, F_R) \ |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
6725
diff
changeset
|
1026 do_name( getAndAddInt_name, "getAndAddInt") \ |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
6725
diff
changeset
|
1027 do_signature(getAndAddInt_signature, "(Ljava/lang/Object;JI)I" ) \ |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
6725
diff
changeset
|
1028 do_intrinsic(_getAndAddLong, sun_misc_Unsafe, getAndAddLong_name, getAndAddLong_signature, F_R) \ |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
6725
diff
changeset
|
1029 do_name( getAndAddLong_name, "getAndAddLong") \ |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
6725
diff
changeset
|
1030 do_signature(getAndAddLong_signature, "(Ljava/lang/Object;JJ)J" ) \ |
7429
a46457045d66
8004330: Add missing Unsafe entry points for addAndGet() family
kvn
parents:
7425
diff
changeset
|
1031 do_intrinsic(_getAndSetInt, sun_misc_Unsafe, getAndSetInt_name, getAndSetInt_signature, F_R) \ |
a46457045d66
8004330: Add missing Unsafe entry points for addAndGet() family
kvn
parents:
7425
diff
changeset
|
1032 do_name( getAndSetInt_name, "getAndSetInt") \ |
6795
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
6725
diff
changeset
|
1033 do_alias( getAndSetInt_signature, /*"(Ljava/lang/Object;JI)I"*/ getAndAddInt_signature) \ |
7429
a46457045d66
8004330: Add missing Unsafe entry points for addAndGet() family
kvn
parents:
7425
diff
changeset
|
1034 do_intrinsic(_getAndSetLong, sun_misc_Unsafe, getAndSetLong_name, getAndSetLong_signature, F_R) \ |
a46457045d66
8004330: Add missing Unsafe entry points for addAndGet() family
kvn
parents:
7425
diff
changeset
|
1035 do_name( getAndSetLong_name, "getAndSetLong") \ |
6795
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
6725
diff
changeset
|
1036 do_alias( getAndSetLong_signature, /*"(Ljava/lang/Object;JJ)J"*/ getAndAddLong_signature) \ |
7429
a46457045d66
8004330: Add missing Unsafe entry points for addAndGet() family
kvn
parents:
7425
diff
changeset
|
1037 do_intrinsic(_getAndSetObject, sun_misc_Unsafe, getAndSetObject_name, getAndSetObject_signature, F_R)\ |
a46457045d66
8004330: Add missing Unsafe entry points for addAndGet() family
kvn
parents:
7425
diff
changeset
|
1038 do_name( getAndSetObject_name, "getAndSetObject") \ |
6795
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
6725
diff
changeset
|
1039 do_signature(getAndSetObject_signature, "(Ljava/lang/Object;JLjava/lang/Object;)Ljava/lang/Object;" ) \ |
7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
roland
parents:
6725
diff
changeset
|
1040 \ |
0 | 1041 /* prefetch_signature is shared by all prefetch variants */ \ |
1042 do_signature( prefetch_signature, "(Ljava/lang/Object;J)V") \ | |
1043 \ | |
1044 do_intrinsic(_prefetchRead, sun_misc_Unsafe, prefetchRead_name, prefetch_signature, F_RN) \ | |
1045 do_name( prefetchRead_name, "prefetchRead") \ | |
1046 do_intrinsic(_prefetchWrite, sun_misc_Unsafe, prefetchWrite_name, prefetch_signature, F_RN) \ | |
1047 do_name( prefetchWrite_name, "prefetchWrite") \ | |
1048 do_intrinsic(_prefetchReadStatic, sun_misc_Unsafe, prefetchReadStatic_name, prefetch_signature, F_SN) \ | |
1049 do_name( prefetchReadStatic_name, "prefetchReadStatic") \ | |
1050 do_intrinsic(_prefetchWriteStatic, sun_misc_Unsafe, prefetchWriteStatic_name, prefetch_signature, F_SN) \ | |
1051 do_name( prefetchWriteStatic_name, "prefetchWriteStatic") \ | |
856
75596850f863
6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
jrose
parents:
775
diff
changeset
|
1052 /*== LAST_COMPILER_INLINE*/ \ |
75596850f863
6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
jrose
parents:
775
diff
changeset
|
1053 /*the compiler does have special inlining code for these; bytecode inline is just fine */ \ |
75596850f863
6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
jrose
parents:
775
diff
changeset
|
1054 \ |
75596850f863
6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
jrose
parents:
775
diff
changeset
|
1055 do_intrinsic(_fillInStackTrace, java_lang_Throwable, fillInStackTrace_name, void_throwable_signature, F_RNY) \ |
1080
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1056 \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1057 do_intrinsic(_StringBuilder_void, java_lang_StringBuilder, object_initializer_name, void_method_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1058 do_intrinsic(_StringBuilder_int, java_lang_StringBuilder, object_initializer_name, int_void_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1059 do_intrinsic(_StringBuilder_String, java_lang_StringBuilder, object_initializer_name, string_void_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1060 \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1061 do_intrinsic(_StringBuilder_append_char, java_lang_StringBuilder, append_name, char_StringBuilder_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1062 do_intrinsic(_StringBuilder_append_int, java_lang_StringBuilder, append_name, int_StringBuilder_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1063 do_intrinsic(_StringBuilder_append_String, java_lang_StringBuilder, append_name, String_StringBuilder_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1064 \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1065 do_intrinsic(_StringBuilder_toString, java_lang_StringBuilder, toString_name, void_string_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1066 \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1067 do_intrinsic(_StringBuffer_void, java_lang_StringBuffer, object_initializer_name, void_method_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1068 do_intrinsic(_StringBuffer_int, java_lang_StringBuffer, object_initializer_name, int_void_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1069 do_intrinsic(_StringBuffer_String, java_lang_StringBuffer, object_initializer_name, string_void_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1070 \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1071 do_intrinsic(_StringBuffer_append_char, java_lang_StringBuffer, append_name, char_StringBuffer_signature, F_Y) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1072 do_intrinsic(_StringBuffer_append_int, java_lang_StringBuffer, append_name, int_StringBuffer_signature, F_Y) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1073 do_intrinsic(_StringBuffer_append_String, java_lang_StringBuffer, append_name, String_StringBuffer_signature, F_Y) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1074 \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1075 do_intrinsic(_StringBuffer_toString, java_lang_StringBuffer, toString_name, void_string_signature, F_Y) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1076 \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1077 do_intrinsic(_Integer_toString, java_lang_Integer, toString_name, int_String_signature, F_S) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1078 \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1079 do_intrinsic(_String_String, java_lang_String, object_initializer_name, string_void_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1080 \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1081 do_intrinsic(_Object_init, java_lang_Object, object_initializer_name, void_method_signature, F_R) \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1082 /* (symbol object_initializer_name defined above) */ \ |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1083 \ |
1507
cd5dbf694d45
6939134: JSR 292 adjustments to method handle invocation
jrose
parents:
1396
diff
changeset
|
1084 do_intrinsic(_invoke, java_lang_reflect_Method, invoke_name, object_object_array_object_signature, F_R) \ |
856
75596850f863
6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
jrose
parents:
775
diff
changeset
|
1085 /* (symbols invoke_name and invoke_signature defined above) */ \ |
6266
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1086 /* the polymorphic MH intrinsics must be in compact order, with _invokeGeneric first and _linkToInterface last */ \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1087 do_intrinsic(_invokeGeneric, java_lang_invoke_MethodHandle, invoke_name, star_name, F_RN) \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1088 do_intrinsic(_invokeBasic, java_lang_invoke_MethodHandle, invokeBasic_name, star_name, F_RN) \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1089 do_intrinsic(_linkToVirtual, java_lang_invoke_MethodHandle, linkToVirtual_name, star_name, F_SN) \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1090 do_intrinsic(_linkToStatic, java_lang_invoke_MethodHandle, linkToStatic_name, star_name, F_SN) \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1091 do_intrinsic(_linkToSpecial, java_lang_invoke_MethodHandle, linkToSpecial_name, star_name, F_SN) \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1092 do_intrinsic(_linkToInterface, java_lang_invoke_MethodHandle, linkToInterface_name, star_name, F_SN) \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1093 /* special marker for bytecode generated for the JVM from a LambdaForm: */ \ |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1094 do_intrinsic(_compiledLambdaForm, java_lang_invoke_MethodHandle, compiledLambdaForm_name, star_name, F_RN) \ |
3905
c26de9aef2ed
7071307: MethodHandle bimorphic inlining should consider the frequency
never
parents:
3900
diff
changeset
|
1095 \ |
1133
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1096 /* unboxing methods: */ \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1097 do_intrinsic(_booleanValue, java_lang_Boolean, booleanValue_name, void_boolean_signature, F_R) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1098 do_name( booleanValue_name, "booleanValue") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1099 do_intrinsic(_byteValue, java_lang_Byte, byteValue_name, void_byte_signature, F_R) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1100 do_name( byteValue_name, "byteValue") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1101 do_intrinsic(_charValue, java_lang_Character, charValue_name, void_char_signature, F_R) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1102 do_name( charValue_name, "charValue") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1103 do_intrinsic(_shortValue, java_lang_Short, shortValue_name, void_short_signature, F_R) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1104 do_name( shortValue_name, "shortValue") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1105 do_intrinsic(_intValue, java_lang_Integer, intValue_name, void_int_signature, F_R) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1106 do_name( intValue_name, "intValue") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1107 do_intrinsic(_longValue, java_lang_Long, longValue_name, void_long_signature, F_R) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1108 do_name( longValue_name, "longValue") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1109 do_intrinsic(_floatValue, java_lang_Float, floatValue_name, void_float_signature, F_R) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1110 do_name( floatValue_name, "floatValue") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1111 do_intrinsic(_doubleValue, java_lang_Double, doubleValue_name, void_double_signature, F_R) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1112 do_name( doubleValue_name, "doubleValue") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1113 \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1114 /* boxing methods: */ \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1115 do_name( valueOf_name, "valueOf") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1116 do_intrinsic(_Boolean_valueOf, java_lang_Boolean, valueOf_name, Boolean_valueOf_signature, F_S) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1117 do_name( Boolean_valueOf_signature, "(Z)Ljava/lang/Boolean;") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1118 do_intrinsic(_Byte_valueOf, java_lang_Byte, valueOf_name, Byte_valueOf_signature, F_S) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1119 do_name( Byte_valueOf_signature, "(B)Ljava/lang/Byte;") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1120 do_intrinsic(_Character_valueOf, java_lang_Character, valueOf_name, Character_valueOf_signature, F_S) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1121 do_name( Character_valueOf_signature, "(C)Ljava/lang/Character;") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1122 do_intrinsic(_Short_valueOf, java_lang_Short, valueOf_name, Short_valueOf_signature, F_S) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1123 do_name( Short_valueOf_signature, "(S)Ljava/lang/Short;") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1124 do_intrinsic(_Integer_valueOf, java_lang_Integer, valueOf_name, Integer_valueOf_signature, F_S) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1125 do_name( Integer_valueOf_signature, "(I)Ljava/lang/Integer;") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1126 do_intrinsic(_Long_valueOf, java_lang_Long, valueOf_name, Long_valueOf_signature, F_S) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1127 do_name( Long_valueOf_signature, "(J)Ljava/lang/Long;") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1128 do_intrinsic(_Float_valueOf, java_lang_Float, valueOf_name, Float_valueOf_signature, F_S) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1129 do_name( Float_valueOf_signature, "(F)Ljava/lang/Float;") \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1130 do_intrinsic(_Double_valueOf, java_lang_Double, valueOf_name, Double_valueOf_signature, F_S) \ |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1131 do_name( Double_valueOf_signature, "(D)Ljava/lang/Double;") \ |
856
75596850f863
6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
jrose
parents:
775
diff
changeset
|
1132 \ |
9025
ff5a32117e02
Implement fast invocation of installed code (direct tail call to the target machine code address).
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
9023
diff
changeset
|
1133 do_intrinsic(_CompilerToVMImpl_executeCompiledMethod, com_oracle_graal_hotspot_bridge_CompilerToVMImpl, executeCompiledMethod_name, CompilerToVMImpl_executeCompiledMethod_signature, F_SN)\ |
ff5a32117e02
Implement fast invocation of installed code (direct tail call to the target machine code address).
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
9023
diff
changeset
|
1134 do_name( CompilerToVMImpl_executeCompiledMethod_signature, "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;J)Ljava/lang/Object;") \ |
ff5a32117e02
Implement fast invocation of installed code (direct tail call to the target machine code address).
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
9023
diff
changeset
|
1135 do_name( executeCompiledMethod_name, "executeCompiledMethodIntrinsic") \ |
0 | 1136 /*end*/ |
1137 | |
1138 | |
1139 | |
856
75596850f863
6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
jrose
parents:
775
diff
changeset
|
1140 |
0 | 1141 // Class vmSymbols |
1142 | |
1143 class vmSymbols: AllStatic { | |
3962
cb315dc80374
7092278: "jmap -finalizerinfo" throws "sun.jvm.hotspot.utilities.AssertionFailure: invalid cp index 0 137"
never
parents:
3938
diff
changeset
|
1144 friend class vmIntrinsics; |
cb315dc80374
7092278: "jmap -finalizerinfo" throws "sun.jvm.hotspot.utilities.AssertionFailure: invalid cp index 0 137"
never
parents:
3938
diff
changeset
|
1145 friend class VMStructs; |
0 | 1146 public: |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1147 // enum for figuring positions and size of array holding Symbol*s |
0 | 1148 enum SID { |
1149 NO_SID = 0, | |
1150 | |
1151 #define VM_SYMBOL_ENUM(name, string) VM_SYMBOL_ENUM_NAME(name), | |
1152 VM_SYMBOLS_DO(VM_SYMBOL_ENUM, VM_ALIAS_IGNORE) | |
1153 #undef VM_SYMBOL_ENUM | |
1154 | |
1155 SID_LIMIT, | |
1156 | |
1157 #define VM_ALIAS_ENUM(name, def) VM_SYMBOL_ENUM_NAME(name) = VM_SYMBOL_ENUM_NAME(def), | |
1158 VM_SYMBOLS_DO(VM_SYMBOL_IGNORE, VM_ALIAS_ENUM) | |
1159 #undef VM_ALIAS_ENUM | |
1160 | |
1161 FIRST_SID = NO_SID + 1 | |
1162 }; | |
1163 enum { | |
1164 log2_SID_LIMIT = 10 // checked by an assert at start-up | |
1165 }; | |
1166 | |
1167 private: | |
1168 // The symbol array | |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1169 static Symbol* _symbols[]; |
0 | 1170 |
1171 // Field signatures indexed by BasicType. | |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1172 static Symbol* _type_signatures[T_VOID+1]; |
0 | 1173 |
1174 public: | |
1175 // Initialization | |
1176 static void initialize(TRAPS); | |
1177 // Accessing | |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1178 #define VM_SYMBOL_DECLARE(name, ignore) \ |
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1179 static Symbol* name() { \ |
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1180 return _symbols[VM_SYMBOL_ENUM_NAME(name)]; \ |
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1181 } |
0 | 1182 VM_SYMBOLS_DO(VM_SYMBOL_DECLARE, VM_SYMBOL_DECLARE) |
1183 #undef VM_SYMBOL_DECLARE | |
1184 | |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1185 // Sharing support |
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1186 static void symbols_do(SymbolClosure* f); |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6271
diff
changeset
|
1187 static void serialize(SerializeClosure* soc); |
0 | 1188 |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1189 static Symbol* type_signature(BasicType t) { |
0 | 1190 assert((uint)t < T_VOID+1, "range check"); |
1191 assert(_type_signatures[t] != NULL, "domain check"); | |
1192 return _type_signatures[t]; | |
1193 } | |
1194 // inverse of type_signature; returns T_OBJECT if s is not recognized | |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1195 static BasicType signature_type(Symbol* s); |
0 | 1196 |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1197 static Symbol* symbol_at(SID id) { |
0 | 1198 assert(id >= FIRST_SID && id < SID_LIMIT, "oob"); |
1199 assert(_symbols[id] != NULL, "init"); | |
1200 return _symbols[id]; | |
1201 } | |
1202 | |
1203 // Returns symbol's SID if one is assigned, else NO_SID. | |
2177
3582bf76420e
6990754: Use native memory and reference counting to implement SymbolTable
coleenp
parents:
2129
diff
changeset
|
1204 static SID find_sid(Symbol* symbol); |
2356
72dee110246f
6839872: remove implementation inheritance from JSR 292 APIs
jrose
parents:
2202
diff
changeset
|
1205 static SID find_sid(const char* symbol_name); |
0 | 1206 |
1207 #ifndef PRODUCT | |
1208 // No need for this in the product: | |
1209 static const char* name_for(SID sid); | |
1210 #endif //PRODUCT | |
1211 }; | |
1212 | |
1213 // VM Intrinsic ID's uniquely identify some very special methods | |
1214 class vmIntrinsics: AllStatic { | |
1215 friend class vmSymbols; | |
1216 friend class ciObjectFactory; | |
1217 | |
1218 public: | |
1219 // Accessing | |
1220 enum ID { | |
1221 _none = 0, // not an intrinsic (default answer) | |
1222 | |
1223 #define VM_INTRINSIC_ENUM(id, klass, name, sig, flags) id, | |
1224 VM_INTRINSICS_DO(VM_INTRINSIC_ENUM, | |
1225 VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_SYMBOL_IGNORE, VM_ALIAS_IGNORE) | |
1226 #undef VM_INTRINSIC_ENUM | |
1227 | |
1228 ID_LIMIT, | |
856
75596850f863
6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
jrose
parents:
775
diff
changeset
|
1229 LAST_COMPILER_INLINE = _prefetchWriteStatic, |
6266
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1230 FIRST_MH_SIG_POLY = _invokeGeneric, |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1231 FIRST_MH_STATIC = _linkToVirtual, |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1232 LAST_MH_SIG_POLY = _linkToInterface, |
1d7922586cf6
7023639: JSR 292 method handle invocation needs a fast path for compiled code
twisti
parents:
6222
diff
changeset
|
1233 |
0 | 1234 FIRST_ID = _none + 1 |
1235 }; | |
1236 | |
1237 enum Flags { | |
1238 // AccessFlags syndromes relevant to intrinsics. | |
1239 F_none = 0, | |
1080
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1240 F_R, // !static ?native !synchronized (R="regular") |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1241 F_S, // static ?native !synchronized |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1242 F_Y, // !static ?native synchronized |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1243 F_RN, // !static native !synchronized |
7c57aead6d3e
6892658: C2 should optimize some stringbuilder patterns
never
parents:
1059
diff
changeset
|
1244 F_SN, // static native !synchronized |
1133
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1245 F_RNY, // !static native synchronized |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1246 |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1247 FLAG_LIMIT |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1248 }; |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1249 enum { |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1250 log2_FLAG_LIMIT = 4 // checked by an assert at start-up |
0 | 1251 }; |
1252 | |
1253 public: | |
1254 static ID ID_from(int raw_id) { | |
1255 assert(raw_id >= (int)_none && raw_id < (int)ID_LIMIT, | |
1256 "must be a valid intrinsic ID"); | |
1257 return (ID)raw_id; | |
1258 } | |
1259 | |
1260 static const char* name_at(ID id); | |
1261 | |
1133
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1262 private: |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1263 static ID find_id_impl(vmSymbols::SID holder, |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1264 vmSymbols::SID name, |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1265 vmSymbols::SID sig, |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1266 jshort flags); |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1267 |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1268 public: |
0 | 1269 // Given a method's class, name, signature, and access flags, report its ID. |
1270 static ID find_id(vmSymbols::SID holder, | |
1271 vmSymbols::SID name, | |
1272 vmSymbols::SID sig, | |
1133
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1273 jshort flags) { |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1274 ID id = find_id_impl(holder, name, sig, flags); |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1275 #ifdef ASSERT |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1276 // ID _none does not hold the following asserts. |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1277 if (id == _none) return id; |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1278 #endif |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1279 assert( class_for(id) == holder, "correct id"); |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1280 assert( name_for(id) == name, "correct id"); |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1281 assert(signature_for(id) == sig, "correct id"); |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1282 return id; |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1283 } |
0 | 1284 |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
6271
diff
changeset
|
1285 static void verify_method(ID actual_id, Method* m) PRODUCT_RETURN; |
0 | 1286 |
1133
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1287 // Find out the symbols behind an intrinsic: |
0 | 1288 static vmSymbols::SID class_for(ID id); |
1289 static vmSymbols::SID name_for(ID id); | |
1290 static vmSymbols::SID signature_for(ID id); | |
1291 static Flags flags_for(ID id); | |
1292 | |
1293 static const char* short_name_as_C_string(ID id, char* buf, int size); | |
856
75596850f863
6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
jrose
parents:
775
diff
changeset
|
1294 |
1133
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1295 // Wrapper object methods: |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1296 static ID for_boxing(BasicType type); |
aa62b9388fce
6894206: JVM needs a way to traverse method handle structures
twisti
parents:
1080
diff
changeset
|
1297 static ID for_unboxing(BasicType type); |
1138
dd57230ba8fe
6893268: additional dynamic language related optimizations in C2
twisti
parents:
1135
diff
changeset
|
1298 |
dd57230ba8fe
6893268: additional dynamic language related optimizations in C2
twisti
parents:
1135
diff
changeset
|
1299 // Raw conversion: |
dd57230ba8fe
6893268: additional dynamic language related optimizations in C2
twisti
parents:
1135
diff
changeset
|
1300 static ID for_raw_conversion(BasicType src, BasicType dest); |
0 | 1301 }; |
1972 | 1302 |
1303 #endif // SHARE_VM_CLASSFILE_VMSYMBOLS_HPP |