comparison src/share/vm/c1x/c1x_VMEntries.cpp @ 2501:6594e6d8bfe7

Rebranding to com.oracle.graal
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 26 Apr 2011 21:10:53 +0200
parents ad9b14650e15
children 3e3e8bd12730
comparison
equal deleted inserted replaced
2500:f100b972fd19 2501:6594e6d8bfe7
30 #include "c1x/c1x_VMExits.hpp" 30 #include "c1x/c1x_VMExits.hpp"
31 #include "c1x/c1x_VmIds.hpp" 31 #include "c1x/c1x_VmIds.hpp"
32 #include "c1/c1_Runtime1.hpp" 32 #include "c1/c1_Runtime1.hpp"
33 33
34 // public byte[] RiMethod_code(long vmId); 34 // public byte[] RiMethod_code(long vmId);
35 JNIEXPORT jbyteArray JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1code(JNIEnv *env, jobject, jlong vmId) { 35 JNIEXPORT jbyteArray JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1code(JNIEnv *env, jobject, jlong vmId) {
36 TRACE_C1X_3("VMEntries::RiMethod_code"); 36 TRACE_C1X_3("VMEntries::RiMethod_code");
37 methodHandle method = VmIds::get<methodOop>(vmId); 37 methodHandle method = VmIds::get<methodOop>(vmId);
38 int code_size = method->code_size(); 38 int code_size = method->code_size();
39 jbyteArray result = env->NewByteArray(code_size); 39 jbyteArray result = env->NewByteArray(code_size);
40 env->SetByteArrayRegion(result, 0, code_size, (const jbyte *) method->code_base()); 40 env->SetByteArrayRegion(result, 0, code_size, (const jbyte *) method->code_base());
41 return result; 41 return result;
42 } 42 }
43 43
44 // public int RiMethod_maxStackSize(long vmId); 44 // public int RiMethod_maxStackSize(long vmId);
45 JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxStackSize(JNIEnv *, jobject, jlong vmId) { 45 JNIEXPORT jint JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1maxStackSize(JNIEnv *, jobject, jlong vmId) {
46 TRACE_C1X_3("VMEntries::RiMethod_maxStackSize"); 46 TRACE_C1X_3("VMEntries::RiMethod_maxStackSize");
47 return VmIds::get<methodOop>(vmId)->max_stack(); 47 return VmIds::get<methodOop>(vmId)->max_stack();
48 } 48 }
49 49
50 // public int RiMethod_maxLocals(long vmId); 50 // public int RiMethod_maxLocals(long vmId);
51 JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxLocals(JNIEnv *, jobject, jlong vmId) { 51 JNIEXPORT jint JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1maxLocals(JNIEnv *, jobject, jlong vmId) {
52 TRACE_C1X_3("VMEntries::RiMethod_maxLocals"); 52 TRACE_C1X_3("VMEntries::RiMethod_maxLocals");
53 return VmIds::get<methodOop>(vmId)->max_locals(); 53 return VmIds::get<methodOop>(vmId)->max_locals();
54 } 54 }
55 55
56 // public RiType RiMethod_holder(long vmId); 56 // public RiType RiMethod_holder(long vmId);
57 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1holder(JNIEnv *, jobject, jlong vmId) { 57 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1holder(JNIEnv *, jobject, jlong vmId) {
58 TRACE_C1X_3("VMEntries::RiMethod_holder"); 58 TRACE_C1X_3("VMEntries::RiMethod_holder");
59 VM_ENTRY_MARK 59 VM_ENTRY_MARK
60 KlassHandle klass = VmIds::get<methodOop>(vmId)->method_holder(); 60 KlassHandle klass = VmIds::get<methodOop>(vmId)->method_holder();
61 Handle name = VmIds::toString<Handle>(klass->name(), CHECK_NULL); 61 Handle name = VmIds::toString<Handle>(klass->name(), CHECK_NULL);
62 oop holder = C1XCompiler::createHotSpotTypeResolved(klass, name, CHECK_NULL); 62 oop holder = C1XCompiler::createHotSpotTypeResolved(klass, name, CHECK_NULL);
63 return JNIHandles::make_local(THREAD, holder); 63 return JNIHandles::make_local(THREAD, holder);
64 } 64 }
65 65
66 // public String RiMethod_signature(long vmId); 66 // public String RiMethod_signature(long vmId);
67 JNIEXPORT jstring JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1signature(JNIEnv *env, jobject, jlong vmId) { 67 JNIEXPORT jstring JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1signature(JNIEnv *env, jobject, jlong vmId) {
68 TRACE_C1X_3("VMEntries::RiMethod_signature"); 68 TRACE_C1X_3("VMEntries::RiMethod_signature");
69 VM_ENTRY_MARK 69 VM_ENTRY_MARK
70 methodOop method = VmIds::get<methodOop>(vmId); 70 methodOop method = VmIds::get<methodOop>(vmId);
71 method->constMethod()->exception_table(); 71 method->constMethod()->exception_table();
72 return VmIds::toString<jstring>(method->signature(), THREAD); 72 return VmIds::toString<jstring>(method->signature(), THREAD);
73 } 73 }
74 74
75 // public int RiMethod_accessFlags(long vmId); 75 // public int RiMethod_accessFlags(long vmId);
76 JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1accessFlags(JNIEnv *, jobject, jlong vmId) { 76 JNIEXPORT jint JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1accessFlags(JNIEnv *, jobject, jlong vmId) {
77 TRACE_C1X_3("VMEntries::RiMethod_accessFlags"); 77 TRACE_C1X_3("VMEntries::RiMethod_accessFlags");
78 return VmIds::get<methodOop>(vmId)->access_flags().as_int(); 78 return VmIds::get<methodOop>(vmId)->access_flags().as_int();
79 } 79 }
80 80
81 // public RiExceptionHandler[] RiMethod_exceptionHandlers(long vmId); 81 // public RiExceptionHandler[] RiMethod_exceptionHandlers(long vmId);
82 JNIEXPORT jobjectArray JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1exceptionHandlers(JNIEnv *, jobject, jlong vmId) { 82 JNIEXPORT jobjectArray JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1exceptionHandlers(JNIEnv *, jobject, jlong vmId) {
83 TRACE_C1X_3("VMEntries::RiMethod_exceptionHandlers"); 83 TRACE_C1X_3("VMEntries::RiMethod_exceptionHandlers");
84 VM_ENTRY_MARK 84 VM_ENTRY_MARK
85 methodHandle method = VmIds::get<methodOop>(vmId); 85 methodHandle method = VmIds::get<methodOop>(vmId);
86 typeArrayHandle handlers = method->exception_table(); 86 typeArrayHandle handlers = method->exception_table();
87 int handler_count = handlers.is_null() ? 0 : handlers->length() / 4; 87 int handler_count = handlers.is_null() ? 0 : handlers->length() / 4;
115 115
116 return (jobjectArray) JNIHandles::make_local(array()); 116 return (jobjectArray) JNIHandles::make_local(array());
117 } 117 }
118 118
119 // public boolean RiMethod_hasBalancedMonitors(long vmId); 119 // public boolean RiMethod_hasBalancedMonitors(long vmId);
120 JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1hasBalancedMonitors(JNIEnv *, jobject, jlong vmId) { 120 JNIEXPORT jint JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1hasBalancedMonitors(JNIEnv *, jobject, jlong vmId) {
121 TRACE_C1X_3("VMEntries::RiMethod_hasBalancedMonitors"); 121 TRACE_C1X_3("VMEntries::RiMethod_hasBalancedMonitors");
122 ciMethod* cimethod; 122 ciMethod* cimethod;
123 { 123 {
124 VM_ENTRY_MARK; 124 VM_ENTRY_MARK;
125 cimethod = (ciMethod*)CURRENT_ENV->get_object(VmIds::get<methodOop>(vmId)); 125 cimethod = (ciMethod*)CURRENT_ENV->get_object(VmIds::get<methodOop>(vmId));
126 } 126 }
127 return cimethod->has_balanced_monitors(); 127 return cimethod->has_balanced_monitors();
128 } 128 }
129 129
130 // public boolean RiMethod_uniqueConcreteMethod(long vmId); 130 // public boolean RiMethod_uniqueConcreteMethod(long vmId);
131 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1uniqueConcreteMethod(JNIEnv *, jobject, jlong vmId) { 131 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiMethod_1uniqueConcreteMethod(JNIEnv *, jobject, jlong vmId) {
132 TRACE_C1X_3("VMEntries::RiMethod_uniqueConcreteMethod"); 132 TRACE_C1X_3("VMEntries::RiMethod_uniqueConcreteMethod");
133 VM_ENTRY_MARK; 133 VM_ENTRY_MARK;
134 ciMethod* cimethod = (ciMethod*)CURRENT_ENV->get_object(VmIds::get<methodOop>(vmId)); 134 ciMethod* cimethod = (ciMethod*)CURRENT_ENV->get_object(VmIds::get<methodOop>(vmId));
135 if (cimethod->holder()->is_interface()) { 135 if (cimethod->holder()->is_interface()) {
136 // Cannot trust interfaces. Because of: 136 // Cannot trust interfaces. Because of:
158 oop method_resolved = VMExits::createRiMethodResolved(VmIds::add<methodOop>(unique_concrete()), name, CHECK_NULL); 158 oop method_resolved = VMExits::createRiMethodResolved(VmIds::add<methodOop>(unique_concrete()), name, CHECK_NULL);
159 return JNIHandles::make_local(THREAD, method_resolved); 159 return JNIHandles::make_local(THREAD, method_resolved);
160 } 160 }
161 161
162 // public RiType RiSignature_lookupType(String returnType, HotSpotTypeResolved accessingClass); 162 // public RiType RiSignature_lookupType(String returnType, HotSpotTypeResolved accessingClass);
163 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiSignature_1lookupType(JNIEnv *env, jobject, jstring jname, jobject accessingClass) { 163 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiSignature_1lookupType(JNIEnv *env, jobject, jstring jname, jobject accessingClass) {
164 TRACE_C1X_3("VMEntries::RiSignature_lookupType"); 164 TRACE_C1X_3("VMEntries::RiSignature_lookupType");
165 VM_ENTRY_MARK; 165 VM_ENTRY_MARK;
166 166
167 Symbol* nameSymbol = VmIds::toSymbol(jname); 167 Symbol* nameSymbol = VmIds::toSymbol(jname);
168 Handle name = JNIHandles::resolve(jname); 168 Handle name = JNIHandles::resolve(jname);
209 209
210 return JNIHandles::make_local(THREAD, result); 210 return JNIHandles::make_local(THREAD, result);
211 } 211 }
212 212
213 // public Object RiConstantPool_lookupConstant(long vmId, int cpi); 213 // public Object RiConstantPool_lookupConstant(long vmId, int cpi);
214 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupConstant(JNIEnv *env, jobject, jlong vmId, jint index) { 214 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupConstant(JNIEnv *env, jobject, jlong vmId, jint index) {
215 TRACE_C1X_3("VMEntries::RiConstantPool_lookupConstant"); 215 TRACE_C1X_3("VMEntries::RiConstantPool_lookupConstant");
216 VM_ENTRY_MARK; 216 VM_ENTRY_MARK;
217 217
218 constantPoolOop cp = VmIds::get<constantPoolOop>(vmId); 218 constantPoolOop cp = VmIds::get<constantPoolOop>(vmId);
219 219
256 256
257 return JNIHandles::make_local(THREAD, result); 257 return JNIHandles::make_local(THREAD, result);
258 } 258 }
259 259
260 // public RiMethod RiConstantPool_lookupMethod(long vmId, int cpi, byte byteCode); 260 // public RiMethod RiConstantPool_lookupMethod(long vmId, int cpi, byte byteCode);
261 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupMethod(JNIEnv *env, jobject, jlong vmId, jint index, jbyte byteCode) { 261 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupMethod(JNIEnv *env, jobject, jlong vmId, jint index, jbyte byteCode) {
262 TRACE_C1X_3("VMEntries::RiConstantPool_lookupMethod"); 262 TRACE_C1X_3("VMEntries::RiConstantPool_lookupMethod");
263 VM_ENTRY_MARK; 263 VM_ENTRY_MARK;
264 264
265 index = C1XCompiler::to_cp_index_u2(index); 265 index = C1XCompiler::to_cp_index_u2(index);
266 constantPoolHandle cp = VmIds::get<constantPoolOop>(vmId); 266 constantPoolHandle cp = VmIds::get<constantPoolOop>(vmId);
279 return JNIHandles::make_local(THREAD, VMExits::createRiMethodUnresolved(name, signature, holder, THREAD)); 279 return JNIHandles::make_local(THREAD, VMExits::createRiMethodUnresolved(name, signature, holder, THREAD));
280 } 280 }
281 } 281 }
282 282
283 // public RiSignature RiConstantPool_lookupSignature(long vmId, int cpi); 283 // public RiSignature RiConstantPool_lookupSignature(long vmId, int cpi);
284 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupSignature(JNIEnv *env, jobject, jlong vmId, jint index) { 284 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupSignature(JNIEnv *env, jobject, jlong vmId, jint index) {
285 fatal("currently unsupported"); 285 fatal("currently unsupported");
286 return NULL; 286 return NULL;
287 } 287 }
288 288
289 // public RiType RiConstantPool_lookupType(long vmId, int cpi); 289 // public RiType RiConstantPool_lookupType(long vmId, int cpi);
290 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupType(JNIEnv *env, jobject, jlong vmId, jint index) { 290 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupType(JNIEnv *env, jobject, jlong vmId, jint index) {
291 TRACE_C1X_3("VMEntries::RiConstantPool_lookupType"); 291 TRACE_C1X_3("VMEntries::RiConstantPool_lookupType");
292 VM_ENTRY_MARK; 292 VM_ENTRY_MARK;
293 293
294 constantPoolOop cp = VmIds::get<constantPoolOop>(vmId); 294 constantPoolOop cp = VmIds::get<constantPoolOop>(vmId);
295 295
298 ciKlass *klass = CURRENT_ENV->get_klass_by_index(cp, index, is_accessible, loading_klass); 298 ciKlass *klass = CURRENT_ENV->get_klass_by_index(cp, index, is_accessible, loading_klass);
299 return JNIHandles::make_local(THREAD, C1XCompiler::get_RiType(klass, cp->klass(), THREAD)); 299 return JNIHandles::make_local(THREAD, C1XCompiler::get_RiType(klass, cp->klass(), THREAD));
300 } 300 }
301 301
302 // public RiField RiConstantPool_lookupField(long vmId, int cpi); 302 // public RiField RiConstantPool_lookupField(long vmId, int cpi);
303 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupField(JNIEnv *env, jobject, jlong vmId, jint index, jbyte byteCode) { 303 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupField(JNIEnv *env, jobject, jlong vmId, jint index, jbyte byteCode) {
304 TRACE_C1X_3("VMEntries::RiConstantPool_lookupField"); 304 TRACE_C1X_3("VMEntries::RiConstantPool_lookupField");
305 VM_ENTRY_MARK; 305 VM_ENTRY_MARK;
306 306
307 index = C1XCompiler::to_cp_index_u2(index); 307 index = C1XCompiler::to_cp_index_u2(index);
308 constantPoolOop cp = VmIds::get<constantPoolOop>(vmId); 308 constantPoolOop cp = VmIds::get<constantPoolOop>(vmId);
362 } 362 }
363 return JNIHandles::make_local(THREAD, field_handle()); 363 return JNIHandles::make_local(THREAD, field_handle());
364 } 364 }
365 365
366 // public RiConstantPool RiType_constantPool(HotSpotTypeResolved klass); 366 // public RiConstantPool RiType_constantPool(HotSpotTypeResolved klass);
367 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1constantPool(JNIEnv *, jobject, jobject klass) { 367 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiType_1constantPool(JNIEnv *, jobject, jobject klass) {
368 TRACE_C1X_3("VMEntries::RiType_constantPool"); 368 TRACE_C1X_3("VMEntries::RiType_constantPool");
369 VM_ENTRY_MARK; 369 VM_ENTRY_MARK;
370 370
371 assert(JNIHandles::resolve(klass) != NULL, ""); 371 assert(JNIHandles::resolve(klass) != NULL, "");
372 constantPoolOop constantPool = ((instanceKlass*)java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass))->klass_part())->constants(); 372 constantPoolOop constantPool = ((instanceKlass*)java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass))->klass_part())->constants();
373 return JNIHandles::make_local(VMExits::createRiConstantPool(VmIds::add<constantPoolOop>(constantPool), THREAD)); 373 return JNIHandles::make_local(VMExits::createRiConstantPool(VmIds::add<constantPoolOop>(constantPool), THREAD));
374 } 374 }
375 375
376 // public RiMethod RiType_resolveMethodImpl(HotSpotTypeResolved klass, String name, String signature); 376 // public RiMethod RiType_resolveMethodImpl(HotSpotTypeResolved klass, String name, String signature);
377 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_3resolveMethodImpl(JNIEnv *, jobject, jobject resolved_type, jstring name, jstring signature) { 377 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiType_3resolveMethodImpl(JNIEnv *, jobject, jobject resolved_type, jstring name, jstring signature) {
378 TRACE_C1X_3("VMEntries::RiType_resolveMethodImpl"); 378 TRACE_C1X_3("VMEntries::RiType_resolveMethodImpl");
379 VM_ENTRY_MARK; 379 VM_ENTRY_MARK;
380 380
381 assert(JNIHandles::resolve(resolved_type) != NULL, ""); 381 assert(JNIHandles::resolve(resolved_type) != NULL, "");
382 klassOop klass = java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(resolved_type)); 382 klassOop klass = java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(resolved_type));
392 } 392 }
393 return JNIHandles::make_local(THREAD, VMExits::createRiMethodResolved(VmIds::add<methodOop>(method), Handle(JNIHandles::resolve(name)), THREAD)); 393 return JNIHandles::make_local(THREAD, VMExits::createRiMethodResolved(VmIds::add<methodOop>(method), Handle(JNIHandles::resolve(name)), THREAD));
394 } 394 }
395 395
396 // public boolean RiType_isSubtypeOf(HotSpotTypeResolved klass, RiType other); 396 // public boolean RiType_isSubtypeOf(HotSpotTypeResolved klass, RiType other);
397 JNIEXPORT jboolean JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_2isSubtypeOf(JNIEnv *, jobject, jobject klass, jobject jother) { 397 JNIEXPORT jboolean JNICALL Java_com_oracle_graal_runtime_VMEntries_RiType_2isSubtypeOf(JNIEnv *, jobject, jobject klass, jobject jother) {
398 TRACE_C1X_3("VMEntries::RiType_isSubtypeOf"); 398 TRACE_C1X_3("VMEntries::RiType_isSubtypeOf");
399 oop other = JNIHandles::resolve(jother); 399 oop other = JNIHandles::resolve(jother);
400 assert(other->is_a(HotSpotTypeResolved::klass()), "resolved hotspot type expected"); 400 assert(other->is_a(HotSpotTypeResolved::klass()), "resolved hotspot type expected");
401 assert(JNIHandles::resolve(klass) != NULL, ""); 401 assert(JNIHandles::resolve(klass) != NULL, "");
402 klassOop thisKlass = java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass)); 402 klassOop thisKlass = java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass));
410 return false; 410 return false;
411 } 411 }
412 } 412 }
413 413
414 // public RiType RiType_componentType(HotSpotResolvedType klass); 414 // public RiType RiType_componentType(HotSpotResolvedType klass);
415 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1componentType(JNIEnv *, jobject, jobject klass) { 415 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiType_1componentType(JNIEnv *, jobject, jobject klass) {
416 TRACE_C1X_3("VMEntries::RiType_componentType"); 416 TRACE_C1X_3("VMEntries::RiType_componentType");
417 ciArrayKlass* array_klass; 417 ciArrayKlass* array_klass;
418 { 418 {
419 VM_ENTRY_MARK; 419 VM_ENTRY_MARK;
420 assert(JNIHandles::resolve(klass) != NULL, ""); 420 assert(JNIHandles::resolve(klass) != NULL, "");
426 assert(JNIHandles::resolve(klass) != NULL, ""); 426 assert(JNIHandles::resolve(klass) != NULL, "");
427 return JNIHandles::make_local(C1XCompiler::get_RiType(element_type, java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass)), THREAD)); 427 return JNIHandles::make_local(C1XCompiler::get_RiType(element_type, java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass)), THREAD));
428 } 428 }
429 429
430 // public RiType RiType_superType(HotSpotResolvedType klass); 430 // public RiType RiType_superType(HotSpotResolvedType klass);
431 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1superType(JNIEnv *, jobject, jobject klass) { 431 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiType_1superType(JNIEnv *, jobject, jobject klass) {
432 TRACE_C1X_3("VMEntries::RiType_superType"); 432 TRACE_C1X_3("VMEntries::RiType_superType");
433 VM_ENTRY_MARK; 433 VM_ENTRY_MARK;
434 KlassHandle klass_handle(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass))); 434 KlassHandle klass_handle(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass)));
435 ciInstanceKlass* k = NULL; 435 ciInstanceKlass* k = NULL;
436 436
448 return NULL; 448 return NULL;
449 } 449 }
450 } 450 }
451 451
452 // public RiType RiType_uniqueConcreteSubtype(HotSpotResolvedType klass); 452 // public RiType RiType_uniqueConcreteSubtype(HotSpotResolvedType klass);
453 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1uniqueConcreteSubtype(JNIEnv *, jobject, jobject klass) { 453 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiType_1uniqueConcreteSubtype(JNIEnv *, jobject, jobject klass) {
454 TRACE_C1X_3("VMEntries::RiType_uniqueConcreteSubtype"); 454 TRACE_C1X_3("VMEntries::RiType_uniqueConcreteSubtype");
455 Thread* THREAD = Thread::current(); 455 Thread* THREAD = Thread::current();
456 KlassHandle klass_handle(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass))); 456 KlassHandle klass_handle(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass)));
457 ciInstanceKlass* k = NULL; 457 ciInstanceKlass* k = NULL;
458 { 458 {
473 473
474 return NULL; 474 return NULL;
475 } 475 }
476 476
477 // public RiType RiType_arrayOf(HotSpotTypeResolved klass); 477 // public RiType RiType_arrayOf(HotSpotTypeResolved klass);
478 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1arrayOf(JNIEnv *, jobject, jobject klass) { 478 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_RiType_1arrayOf(JNIEnv *, jobject, jobject klass) {
479 TRACE_C1X_3("VMEntries::RiType_arrayOf"); 479 TRACE_C1X_3("VMEntries::RiType_arrayOf");
480 VM_ENTRY_MARK; 480 VM_ENTRY_MARK;
481 481
482 KlassHandle klass_handle(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass))); 482 KlassHandle klass_handle(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(klass)));
483 KlassHandle array = klass_handle->array_klass(THREAD); 483 KlassHandle array = klass_handle->array_klass(THREAD);
484 Handle name = VmIds::toString<Handle>(array->name(), CHECK_NULL); 484 Handle name = VmIds::toString<Handle>(array->name(), CHECK_NULL);
485 return JNIHandles::make_local(THREAD, C1XCompiler::createHotSpotTypeResolved(array, name, THREAD)); 485 return JNIHandles::make_local(THREAD, C1XCompiler::createHotSpotTypeResolved(array, name, THREAD));
486 } 486 }
487 487
488 // public RiType getPrimitiveArrayType(CiKind kind); 488 // public RiType getPrimitiveArrayType(CiKind kind);
489 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_getPrimitiveArrayType(JNIEnv *env, jobject, jobject kind) { 489 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_getPrimitiveArrayType(JNIEnv *env, jobject, jobject kind) {
490 TRACE_C1X_3("VMEntries::VMEntries_getPrimitiveArrayType"); 490 TRACE_C1X_3("VMEntries::VMEntries_getPrimitiveArrayType");
491 VM_ENTRY_MARK; 491 VM_ENTRY_MARK;
492 BasicType type = C1XCompiler::kindToBasicType(CiKind::typeChar(kind)); 492 BasicType type = C1XCompiler::kindToBasicType(CiKind::typeChar(kind));
493 assert(type != T_OBJECT, "primitive type expecteds"); 493 assert(type != T_OBJECT, "primitive type expecteds");
494 ciKlass* klass = ciTypeArrayKlass::make(type); 494 ciKlass* klass = ciTypeArrayKlass::make(type);
495 return JNIHandles::make_local(THREAD, C1XCompiler::get_RiType(klass, KlassHandle(), THREAD)); 495 return JNIHandles::make_local(THREAD, C1XCompiler::get_RiType(klass, KlassHandle(), THREAD));
496 } 496 }
497 497
498 // public RiType getType(Class<?> javaClass); 498 // public RiType getType(Class<?> javaClass);
499 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_getType(JNIEnv *env, jobject, jobject javaClass) { 499 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_getType(JNIEnv *env, jobject, jobject javaClass) {
500 TRACE_C1X_3("VMEntries::VMEntries_getType"); 500 TRACE_C1X_3("VMEntries::VMEntries_getType");
501 VM_ENTRY_MARK; 501 VM_ENTRY_MARK;
502 oop javaClassOop = JNIHandles::resolve(javaClass); 502 oop javaClassOop = JNIHandles::resolve(javaClass);
503 if (javaClassOop == NULL) { 503 if (javaClassOop == NULL) {
504 fatal("argument to VMEntries.getType must not be NULL"); 504 fatal("argument to VMEntries.getType must not be NULL");
541 541
542 BasicType basicTypes[] = { T_BOOLEAN, T_BYTE, T_SHORT, T_CHAR, T_INT, T_FLOAT, T_LONG, T_DOUBLE, T_OBJECT }; 542 BasicType basicTypes[] = { T_BOOLEAN, T_BYTE, T_SHORT, T_CHAR, T_INT, T_FLOAT, T_LONG, T_DOUBLE, T_OBJECT };
543 int basicTypeCount = sizeof(basicTypes) / sizeof(BasicType); 543 int basicTypeCount = sizeof(basicTypes) / sizeof(BasicType);
544 544
545 // public HotSpotVMConfig getConfiguration(); 545 // public HotSpotVMConfig getConfiguration();
546 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_getConfiguration(JNIEnv *env, jobject) { 546 JNIEXPORT jobject JNICALL Java_com_oracle_graal_runtime_VMEntries_getConfiguration(JNIEnv *env, jobject) {
547 jclass klass = env->FindClass("com/sun/hotspot/c1x/HotSpotVMConfig"); 547 jclass klass = env->FindClass("com/oracle/graal/runtime/HotSpotVMConfig");
548 assert(klass != NULL, "HotSpot vm config class not found"); 548 assert(klass != NULL, "HotSpot vm config class not found");
549 jobject config = env->AllocObject(klass); 549 jobject config = env->AllocObject(klass);
550 #ifdef _WIN64 550 #ifdef _WIN64
551 set_boolean(env, config, "windowsOs", true); 551 set_boolean(env, config, "windowsOs", true);
552 #else 552 #else
629 set_int(env, config, "arrayClassElementOffset", objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc)); 629 set_int(env, config, "arrayClassElementOffset", objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc));
630 return config; 630 return config;
631 } 631 }
632 632
633 // public void installMethod(HotSpotTargetMethod targetMethod); 633 // public void installMethod(HotSpotTargetMethod targetMethod);
634 JNIEXPORT void JNICALL Java_com_sun_hotspot_c1x_VMEntries_installMethod(JNIEnv *jniEnv, jobject, jobject targetMethod) { 634 JNIEXPORT void JNICALL Java_com_oracle_graal_runtime_VMEntries_installMethod(JNIEnv *jniEnv, jobject, jobject targetMethod) {
635 VM_ENTRY_MARK; 635 VM_ENTRY_MARK;
636 CodeInstaller installer(JNIHandles::resolve(targetMethod)); 636 CodeInstaller installer(JNIHandles::resolve(targetMethod));
637 } 637 }
638 638
639 // public HotSpotProxy installStub(HotSpotTargetMethod targetMethod, String name); 639 // public HotSpotProxy installStub(HotSpotTargetMethod targetMethod, String name);
640 JNIEXPORT jlong JNICALL Java_com_sun_hotspot_c1x_VMEntries_installStub(JNIEnv *jniEnv, jobject, jobject targetMethod) { 640 JNIEXPORT jlong JNICALL Java_com_oracle_graal_runtime_VMEntries_installStub(JNIEnv *jniEnv, jobject, jobject targetMethod) {
641 VM_ENTRY_MARK; 641 VM_ENTRY_MARK;
642 jlong id; 642 jlong id;
643 CodeInstaller installer(JNIHandles::resolve(targetMethod), id); 643 CodeInstaller installer(JNIHandles::resolve(targetMethod), id);
644 return id; 644 return id;
645 } 645 }
646 646
647 // public void recordBailout(String reason); 647 // public void recordBailout(String reason);
648 JNIEXPORT void JNICALL Java_com_sun_hotspot_c1x_VMEntries_recordBailout(JNIEnv *jniEnv, jobject message) { 648 JNIEXPORT void JNICALL Java_com_oracle_graal_runtime_VMEntries_recordBailout(JNIEnv *jniEnv, jobject message) {
649 if (C1XBailoutIsFatal) { 649 if (C1XBailoutIsFatal) {
650 Handle msg = JNIHandles::resolve(message); 650 Handle msg = JNIHandles::resolve(message);
651 if (!msg.is_null()) { 651 if (!msg.is_null()) {
652 java_lang_String::print(msg, tty); 652 java_lang_String::print(msg, tty);
653 } 653 }
661 #define CC (char*) /*cast a literal from (const char*)*/ 661 #define CC (char*) /*cast a literal from (const char*)*/
662 #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &f) 662 #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &f)
663 663
664 #define PROXY "J" 664 #define PROXY "J"
665 #define TYPE "Lcom/sun/cri/ri/RiType;" 665 #define TYPE "Lcom/sun/cri/ri/RiType;"
666 #define RESOLVED_TYPE "Lcom/sun/hotspot/c1x/HotSpotTypeResolved;" 666 #define RESOLVED_TYPE "Lcom/oracle/graal/runtime/HotSpotTypeResolved;"
667 #define METHOD "Lcom/sun/cri/ri/RiMethod;" 667 #define METHOD "Lcom/sun/cri/ri/RiMethod;"
668 #define SIGNATURE "Lcom/sun/cri/ri/RiSignature;" 668 #define SIGNATURE "Lcom/sun/cri/ri/RiSignature;"
669 #define FIELD "Lcom/sun/cri/ri/RiField;" 669 #define FIELD "Lcom/sun/cri/ri/RiField;"
670 #define CONSTANT_POOL "Lcom/sun/cri/ri/RiConstantPool;" 670 #define CONSTANT_POOL "Lcom/sun/cri/ri/RiConstantPool;"
671 #define EXCEPTION_HANDLERS "[Lcom/sun/cri/ri/RiExceptionHandler;" 671 #define EXCEPTION_HANDLERS "[Lcom/sun/cri/ri/RiExceptionHandler;"
672 #define TARGET_METHOD "Lcom/sun/hotspot/c1x/HotSpotTargetMethod;" 672 #define TARGET_METHOD "Lcom/oracle/graal/runtime/HotSpotTargetMethod;"
673 #define CONFIG "Lcom/sun/hotspot/c1x/HotSpotVMConfig;" 673 #define CONFIG "Lcom/oracle/graal/runtime/HotSpotVMConfig;"
674 #define HS_METHOD "Lcom/sun/hotspot/c1x/HotSpotMethod;" 674 #define HS_METHOD "Lcom/oracle/graal/runtime/HotSpotMethod;"
675 #define CI_CONSTANT "Lcom/sun/cri/ci/CiConstant;" 675 #define CI_CONSTANT "Lcom/sun/cri/ci/CiConstant;"
676 #define CI_KIND "Lcom/sun/cri/ci/CiKind;" 676 #define CI_KIND "Lcom/sun/cri/ci/CiKind;"
677 #define STRING "Ljava/lang/String;" 677 #define STRING "Ljava/lang/String;"
678 #define OBJECT "Ljava/lang/Object;" 678 #define OBJECT "Ljava/lang/Object;"
679 #define CLASS "Ljava/lang/Class;" 679 #define CLASS "Ljava/lang/Class;"
680 680
681 JNINativeMethod VMEntries_methods[] = { 681 JNINativeMethod VMEntries_methods[] = {
682 {CC"RiMethod_code", CC"("PROXY")[B", FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1code)}, 682 {CC"RiMethod_code", CC"("PROXY")[B", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1code)},
683 {CC"RiMethod_maxStackSize", CC"("PROXY")I", FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxStackSize)}, 683 {CC"RiMethod_maxStackSize", CC"("PROXY")I", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1maxStackSize)},
684 {CC"RiMethod_maxLocals", CC"("PROXY")I", FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxLocals)}, 684 {CC"RiMethod_maxLocals", CC"("PROXY")I", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1maxLocals)},
685 {CC"RiMethod_holder", CC"("PROXY")"TYPE, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1holder)}, 685 {CC"RiMethod_holder", CC"("PROXY")"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1holder)},
686 {CC"RiMethod_signature", CC"("PROXY")"STRING, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1signature)}, 686 {CC"RiMethod_signature", CC"("PROXY")"STRING, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1signature)},
687 {CC"RiMethod_accessFlags", CC"("PROXY")I", FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1accessFlags)}, 687 {CC"RiMethod_accessFlags", CC"("PROXY")I", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1accessFlags)},
688 {CC"RiMethod_exceptionHandlers", CC"("PROXY")"EXCEPTION_HANDLERS, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1exceptionHandlers)}, 688 {CC"RiMethod_exceptionHandlers", CC"("PROXY")"EXCEPTION_HANDLERS, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1exceptionHandlers)},
689 {CC"RiMethod_hasBalancedMonitors", CC"("PROXY")Z", FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1hasBalancedMonitors)}, 689 {CC"RiMethod_hasBalancedMonitors", CC"("PROXY")Z", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1hasBalancedMonitors)},
690 {CC"RiMethod_uniqueConcreteMethod", CC"("PROXY")"METHOD, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1uniqueConcreteMethod)}, 690 {CC"RiMethod_uniqueConcreteMethod", CC"("PROXY")"METHOD, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiMethod_1uniqueConcreteMethod)},
691 {CC"RiSignature_lookupType", CC"("STRING RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiSignature_1lookupType)}, 691 {CC"RiSignature_lookupType", CC"("STRING RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiSignature_1lookupType)},
692 {CC"RiConstantPool_lookupConstant", CC"("PROXY"I)"OBJECT, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupConstant)}, 692 {CC"RiConstantPool_lookupConstant", CC"("PROXY"I)"OBJECT, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupConstant)},
693 {CC"RiConstantPool_lookupMethod", CC"("PROXY"IB)"METHOD, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupMethod)}, 693 {CC"RiConstantPool_lookupMethod", CC"("PROXY"IB)"METHOD, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupMethod)},
694 {CC"RiConstantPool_lookupSignature", CC"("PROXY"I)"SIGNATURE, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupSignature)}, 694 {CC"RiConstantPool_lookupSignature", CC"("PROXY"I)"SIGNATURE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupSignature)},
695 {CC"RiConstantPool_lookupType", CC"("PROXY"I)"TYPE, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupType)}, 695 {CC"RiConstantPool_lookupType", CC"("PROXY"I)"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupType)},
696 {CC"RiConstantPool_lookupField", CC"("PROXY"IB)"FIELD, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupField)}, 696 {CC"RiConstantPool_lookupField", CC"("PROXY"IB)"FIELD, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiConstantPool_1lookupField)},
697 {CC"RiType_constantPool", CC"("RESOLVED_TYPE")"CONSTANT_POOL, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1constantPool)}, 697 {CC"RiType_constantPool", CC"("RESOLVED_TYPE")"CONSTANT_POOL, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiType_1constantPool)},
698 {CC"RiType_resolveMethodImpl", CC"("RESOLVED_TYPE STRING STRING")"METHOD, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_3resolveMethodImpl)}, 698 {CC"RiType_resolveMethodImpl", CC"("RESOLVED_TYPE STRING STRING")"METHOD, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiType_3resolveMethodImpl)},
699 {CC"RiType_isSubtypeOf", CC"("RESOLVED_TYPE TYPE")Z", FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_2isSubtypeOf)}, 699 {CC"RiType_isSubtypeOf", CC"("RESOLVED_TYPE TYPE")Z", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiType_2isSubtypeOf)},
700 {CC"RiType_componentType", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1componentType)}, 700 {CC"RiType_componentType", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiType_1componentType)},
701 {CC"RiType_uniqueConcreteSubtype", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1uniqueConcreteSubtype)}, 701 {CC"RiType_uniqueConcreteSubtype", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiType_1uniqueConcreteSubtype)},
702 {CC"RiType_superType", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1superType)}, 702 {CC"RiType_superType", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiType_1superType)},
703 {CC"RiType_arrayOf", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1arrayOf)}, 703 {CC"RiType_arrayOf", CC"("RESOLVED_TYPE")"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_RiType_1arrayOf)},
704 {CC"getPrimitiveArrayType", CC"("CI_KIND")"TYPE, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_getPrimitiveArrayType)}, 704 {CC"getPrimitiveArrayType", CC"("CI_KIND")"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_getPrimitiveArrayType)},
705 {CC"getType", CC"("CLASS")"TYPE, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_getType)}, 705 {CC"getType", CC"("CLASS")"TYPE, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_getType)},
706 {CC"getConfiguration", CC"()"CONFIG, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_getConfiguration)}, 706 {CC"getConfiguration", CC"()"CONFIG, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_getConfiguration)},
707 {CC"installMethod", CC"("TARGET_METHOD")V", FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_installMethod)}, 707 {CC"installMethod", CC"("TARGET_METHOD")V", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_installMethod)},
708 {CC"installStub", CC"("TARGET_METHOD")"PROXY, FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_installStub)}, 708 {CC"installStub", CC"("TARGET_METHOD")"PROXY, FN_PTR(Java_com_oracle_graal_runtime_VMEntries_installStub)},
709 {CC"recordBailout", CC"("STRING")V", FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_recordBailout)} 709 {CC"recordBailout", CC"("STRING")V", FN_PTR(Java_com_oracle_graal_runtime_VMEntries_recordBailout)}
710 }; 710 };
711 711
712 int VMEntries_methods_count() { 712 int VMEntries_methods_count() {
713 return sizeof(VMEntries_methods) / sizeof(JNINativeMethod); 713 return sizeof(VMEntries_methods) / sizeof(JNINativeMethod);
714 } 714 }