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); |