src/cpu/x86/vm/x86_32.ad
Print this page
rev 2506 : [mq]: membar2
*** 7803,7844 ****
format %{ "MEMBAR-acquire ! (empty encoding)" %}
ins_encode();
ins_pipe(empty);
%}
- instruct membar_acquire_lock() %{
- match(MemBarAcquire);
- predicate(Matcher::prior_fast_lock(n));
- ins_cost(0);
-
- size(0);
- format %{ "MEMBAR-acquire (prior CMPXCHG in FastLock so empty encoding)" %}
- ins_encode( );
- ins_pipe(empty);
- %}
-
instruct membar_release() %{
match(MemBarRelease);
ins_cost(400);
size(0);
format %{ "MEMBAR-release ! (empty encoding)" %}
ins_encode( );
ins_pipe(empty);
%}
- instruct membar_release_lock() %{
- match(MemBarRelease);
- predicate(Matcher::post_fast_unlock(n));
- ins_cost(0);
-
- size(0);
- format %{ "MEMBAR-release (a FastUnlock follows so empty encoding)" %}
- ins_encode( );
- ins_pipe(empty);
- %}
-
instruct membar_volatile(eFlagsReg cr) %{
match(MemBarVolatile);
effect(KILL cr);
ins_cost(400);
--- 7803,7822 ----