Mercurial > hg > truffle
comparison src/share/vm/adlc/formssel.cpp @ 14439:50fdb38839eb
8028515: PPPC64 (part 113.2): opto: Introduce LoadFence/StoreFence.
Summary: Use new nodes for loadFence/storeFence intrinsics in C2.
Reviewed-by: kvn, dholmes
author | goetz |
---|---|
date | Tue, 26 Nov 2013 18:38:19 -0800 |
parents | 318d0622a6d7 |
children | abec000618bf |
comparison
equal
deleted
inserted
replaced
14438:4cdf4f71177d | 14439:50fdb38839eb |
---|---|
646 if( strcmp(_matrule->_opType,"MemBarRelease") == 0 ) return true; | 646 if( strcmp(_matrule->_opType,"MemBarRelease") == 0 ) return true; |
647 if( strcmp(_matrule->_opType,"MemBarAcquire") == 0 ) return true; | 647 if( strcmp(_matrule->_opType,"MemBarAcquire") == 0 ) return true; |
648 if( strcmp(_matrule->_opType,"MemBarReleaseLock") == 0 ) return true; | 648 if( strcmp(_matrule->_opType,"MemBarReleaseLock") == 0 ) return true; |
649 if( strcmp(_matrule->_opType,"MemBarAcquireLock") == 0 ) return true; | 649 if( strcmp(_matrule->_opType,"MemBarAcquireLock") == 0 ) return true; |
650 if( strcmp(_matrule->_opType,"MemBarStoreStore") == 0 ) return true; | 650 if( strcmp(_matrule->_opType,"MemBarStoreStore") == 0 ) return true; |
651 if( strcmp(_matrule->_opType,"StoreFence") == 0 ) return true; | |
652 if( strcmp(_matrule->_opType,"LoadFence") == 0 ) return true; | |
651 | 653 |
652 return false; | 654 return false; |
653 } | 655 } |
654 | 656 |
655 int InstructForm::memory_operand(FormDict &globals) const { | 657 int InstructForm::memory_operand(FormDict &globals) const { |
4052 } | 4054 } |
4053 | 4055 |
4054 bool MatchRule::is_ideal_membar() const { | 4056 bool MatchRule::is_ideal_membar() const { |
4055 if( !_opType ) return false; | 4057 if( !_opType ) return false; |
4056 return | 4058 return |
4057 !strcmp(_opType,"MemBarAcquire" ) || | 4059 !strcmp(_opType,"MemBarAcquire") || |
4058 !strcmp(_opType,"MemBarRelease" ) || | 4060 !strcmp(_opType,"MemBarRelease") || |
4059 !strcmp(_opType,"MemBarAcquireLock") || | 4061 !strcmp(_opType,"MemBarAcquireLock") || |
4060 !strcmp(_opType,"MemBarReleaseLock") || | 4062 !strcmp(_opType,"MemBarReleaseLock") || |
4061 !strcmp(_opType,"MemBarVolatile" ) || | 4063 !strcmp(_opType,"LoadFence" ) || |
4062 !strcmp(_opType,"MemBarCPUOrder" ) || | 4064 !strcmp(_opType,"StoreFence") || |
4063 !strcmp(_opType,"MemBarStoreStore" ); | 4065 !strcmp(_opType,"MemBarVolatile") || |
4066 !strcmp(_opType,"MemBarCPUOrder") || | |
4067 !strcmp(_opType,"MemBarStoreStore"); | |
4064 } | 4068 } |
4065 | 4069 |
4066 bool MatchRule::is_ideal_loadPC() const { | 4070 bool MatchRule::is_ideal_loadPC() const { |
4067 if ( _opType && (strcmp(_opType,"Set") == 0) && _rChild ) { | 4071 if ( _opType && (strcmp(_opType,"Set") == 0) && _rChild ) { |
4068 return (strcmp(_rChild->_opType,"LoadPC") == 0); | 4072 return (strcmp(_rChild->_opType,"LoadPC") == 0); |