comparison src/cpu/sparc/vm/sparc.ad @ 3849:f1c12354c3f7

7074017: Introduce MemBarAcquireLock/MemBarReleaseLock nodes for monitor enter/exit code paths Summary: replace MemBarAcquire/MemBarRelease nodes on the monitor enter/exit code paths with new MemBarAcquireLock/MemBarReleaseLock nodes Reviewed-by: kvn, twisti
author roland
date Tue, 02 Aug 2011 18:36:40 +0200
parents c7b60b601eb4
children 95134e034042
comparison
equal deleted inserted replaced
3848:a19c671188cb 3849:f1c12354c3f7
6603 ins_encode( enc_membar_acquire ); 6603 ins_encode( enc_membar_acquire );
6604 ins_pipe(long_memory_op); 6604 ins_pipe(long_memory_op);
6605 %} 6605 %}
6606 6606
6607 instruct membar_acquire_lock() %{ 6607 instruct membar_acquire_lock() %{
6608 match(MemBarAcquire); 6608 match(MemBarAcquireLock);
6609 predicate(Matcher::prior_fast_lock(n));
6610 ins_cost(0); 6609 ins_cost(0);
6611 6610
6612 size(0); 6611 size(0);
6613 format %{ "!MEMBAR-acquire (CAS in prior FastLock so empty encoding)" %} 6612 format %{ "!MEMBAR-acquire (CAS in prior FastLock so empty encoding)" %}
6614 ins_encode( ); 6613 ins_encode( );
6624 ins_encode( enc_membar_release ); 6623 ins_encode( enc_membar_release );
6625 ins_pipe(long_memory_op); 6624 ins_pipe(long_memory_op);
6626 %} 6625 %}
6627 6626
6628 instruct membar_release_lock() %{ 6627 instruct membar_release_lock() %{
6629 match(MemBarRelease); 6628 match(MemBarReleaseLock);
6630 predicate(Matcher::post_fast_unlock(n));
6631 ins_cost(0); 6629 ins_cost(0);
6632 6630
6633 size(0); 6631 size(0);
6634 format %{ "!MEMBAR-release (CAS in succeeding FastUnlock so empty encoding)" %} 6632 format %{ "!MEMBAR-release (CAS in succeeding FastUnlock so empty encoding)" %}
6635 ins_encode( ); 6633 ins_encode( );