Mercurial > hg > graal-jvmci-8
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) { |