comparison src/share/vm/runtime/javaCalls.cpp @ 18942:96ec4e5d3292

fixed regression caused by GPU removal
author Doug Simon <doug.simon@oracle.com>
date Sun, 25 Jan 2015 20:58:50 +0100
parents 8f2fb6bec986
children 7848fc12602b
comparison
equal deleted inserted replaced
18941:c943ba97b2a7 18942:96ec4e5d3292
337 assert(!thread->handle_area()->no_handle_mark_active(), "cannot call out to Java here"); 337 assert(!thread->handle_area()->no_handle_mark_active(), "cannot call out to Java here");
338 338
339 339
340 CHECK_UNHANDLED_OOPS_ONLY(thread->clear_unhandled_oops();) 340 CHECK_UNHANDLED_OOPS_ONLY(thread->clear_unhandled_oops();)
341 341
342 // Verify the arguments 342 #ifdef GRAAL
343 nmethod* nm = args->alternative_target();
344 if (nm == NULL) {
345 #endif
346 // Verify the arguments
343 347
344 if (CheckJNICalls) { 348 if (CheckJNICalls) {
345 args->verify(method, result->get_type(), thread); 349 args->verify(method, result->get_type(), thread);
346 } 350 }
347 else debug_only(args->verify(method, result->get_type(), thread)); 351 else debug_only(args->verify(method, result->get_type(), thread));
352 #ifdef GRAAL
353 }
354 #else
348 355
349 // Ignore call if method is empty 356 // Ignore call if method is empty
350 if (method->is_empty_method()) { 357 if (method->is_empty_method()) {
351 assert(result->get_type() == T_VOID, "an empty method must return a void value"); 358 assert(result->get_type() == T_VOID, "an empty method must return a void value");
352 return; 359 return;
353 } 360 }
354 361 #endif
355 362
356 #ifdef ASSERT 363 #ifdef ASSERT
357 { InstanceKlass* holder = method->method_holder(); 364 { InstanceKlass* holder = method->method_holder();
358 // A klass might not be initialized since JavaCall's might be used during the executing of 365 // A klass might not be initialized since JavaCall's might be used during the executing of
359 // the <clinit>. For example, a Thread.start might start executing on an object that is 366 // the <clinit>. For example, a Thread.start might start executing on an object that is
406 // Touch pages checked if the OS needs them to be touched to be mapped. 413 // Touch pages checked if the OS needs them to be touched to be mapped.
407 os::bang_stack_shadow_pages(); 414 os::bang_stack_shadow_pages();
408 } 415 }
409 416
410 #ifdef GRAAL 417 #ifdef GRAAL
411 nmethod* nm = args->alternative_target();
412 if (nm != NULL) { 418 if (nm != NULL) {
413 if (nm->is_alive()) { 419 if (nm->is_alive()) {
414 ((JavaThread*) THREAD)->set_graal_alternate_call_target(nm->verified_entry_point()); 420 ((JavaThread*) THREAD)->set_graal_alternate_call_target(nm->verified_entry_point());
415 entry_point = method->adapter()->get_i2c_entry(); 421 entry_point = method->adapter()->get_i2c_entry();
416 } else { 422 } else {