comparison src/share/vm/c1/c1_LIRAssembler.cpp @ 1301:fc2c71045ada

6934966: JSR 292 add C1 logic for saved SP over MethodHandle calls Summary: The logic for x86 C1 to save the SP over MH calls is pretty straight forward but SPARC handles that differently. Reviewed-by: never, jrose
author twisti
date Wed, 17 Mar 2010 10:22:41 +0100
parents 3cf667df43ef
children 9f5b60a14736
comparison
equal deleted inserted replaced
1300:428a9c451986 1301:fc2c71045ada
414 verify_oop_map(op->info()); 414 verify_oop_map(op->info());
415 415
416 // JSR 292 416 // JSR 292
417 // Preserve the SP over MethodHandle call sites. 417 // Preserve the SP over MethodHandle call sites.
418 if (op->is_method_handle_invoke()) { 418 if (op->is_method_handle_invoke()) {
419 preserve_SP(); 419 preserve_SP(op);
420 } 420 }
421 421
422 if (os::is_MP()) { 422 if (os::is_MP()) {
423 // must align calls sites, otherwise they can't be updated atomically on MP hardware 423 // must align calls sites, otherwise they can't be updated atomically on MP hardware
424 align_call(op->code()); 424 align_call(op->code());
443 break; 443 break;
444 default: ShouldNotReachHere(); 444 default: ShouldNotReachHere();
445 } 445 }
446 446
447 if (op->is_method_handle_invoke()) { 447 if (op->is_method_handle_invoke()) {
448 restore_SP(); 448 restore_SP(op);
449 } 449 }
450 450
451 #if defined(X86) && defined(TIERED) 451 #if defined(X86) && defined(TIERED)
452 // C2 leave fpu stack dirty clean it 452 // C2 leave fpu stack dirty clean it
453 if (UseSSE < 2) { 453 if (UseSSE < 2) {