Mercurial > hg > graal-compiler
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 { |