Mercurial > hg > graal-compiler
comparison src/cpu/x86/vm/x86_32.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 |
---|---|
7803 ins_encode(); | 7803 ins_encode(); |
7804 ins_pipe(empty); | 7804 ins_pipe(empty); |
7805 %} | 7805 %} |
7806 | 7806 |
7807 instruct membar_acquire_lock() %{ | 7807 instruct membar_acquire_lock() %{ |
7808 match(MemBarAcquire); | 7808 match(MemBarAcquireLock); |
7809 predicate(Matcher::prior_fast_lock(n)); | |
7810 ins_cost(0); | 7809 ins_cost(0); |
7811 | 7810 |
7812 size(0); | 7811 size(0); |
7813 format %{ "MEMBAR-acquire (prior CMPXCHG in FastLock so empty encoding)" %} | 7812 format %{ "MEMBAR-acquire (prior CMPXCHG in FastLock so empty encoding)" %} |
7814 ins_encode( ); | 7813 ins_encode( ); |
7824 ins_encode( ); | 7823 ins_encode( ); |
7825 ins_pipe(empty); | 7824 ins_pipe(empty); |
7826 %} | 7825 %} |
7827 | 7826 |
7828 instruct membar_release_lock() %{ | 7827 instruct membar_release_lock() %{ |
7829 match(MemBarRelease); | 7828 match(MemBarReleaseLock); |
7830 predicate(Matcher::post_fast_unlock(n)); | |
7831 ins_cost(0); | 7829 ins_cost(0); |
7832 | 7830 |
7833 size(0); | 7831 size(0); |
7834 format %{ "MEMBAR-release (a FastUnlock follows so empty encoding)" %} | 7832 format %{ "MEMBAR-release (a FastUnlock follows so empty encoding)" %} |
7835 ins_encode( ); | 7833 ins_encode( ); |