comparison src/cpu/x86/vm/x86_64.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
7373 ins_pipe(empty); 7373 ins_pipe(empty);
7374 %} 7374 %}
7375 7375
7376 instruct membar_acquire_lock() 7376 instruct membar_acquire_lock()
7377 %{ 7377 %{
7378 match(MemBarAcquire); 7378 match(MemBarAcquireLock);
7379 predicate(Matcher::prior_fast_lock(n));
7380 ins_cost(0); 7379 ins_cost(0);
7381 7380
7382 size(0); 7381 size(0);
7383 format %{ "MEMBAR-acquire (prior CMPXCHG in FastLock so empty encoding)" %} 7382 format %{ "MEMBAR-acquire (prior CMPXCHG in FastLock so empty encoding)" %}
7384 ins_encode(); 7383 ins_encode();
7396 ins_pipe(empty); 7395 ins_pipe(empty);
7397 %} 7396 %}
7398 7397
7399 instruct membar_release_lock() 7398 instruct membar_release_lock()
7400 %{ 7399 %{
7401 match(MemBarRelease); 7400 match(MemBarReleaseLock);
7402 predicate(Matcher::post_fast_unlock(n));
7403 ins_cost(0); 7401 ins_cost(0);
7404 7402
7405 size(0); 7403 size(0);
7406 format %{ "MEMBAR-release (a FastUnlock follows so empty encoding)" %} 7404 format %{ "MEMBAR-release (a FastUnlock follows so empty encoding)" %}
7407 ins_encode(); 7405 ins_encode();