comparison src/share/vm/adlc/formssel.cpp @ 4763:1dc233a8c7fe

7121140: Allocation paths require explicit memory synchronization operations for RMO systems Summary: adds store store barrier after initialization of header and body of objects. Reviewed-by: never, kvn
author roland
date Tue, 20 Dec 2011 16:56:50 +0100
parents f03a3c8bd5e5
children 8b0a4867acf0
comparison
equal deleted inserted replaced
4762:069ab3f976d3 4763:1dc233a8c7fe
625 625
626 if( strcmp(_matrule->_opType,"MemBarRelease") == 0 ) return true; 626 if( strcmp(_matrule->_opType,"MemBarRelease") == 0 ) return true;
627 if( strcmp(_matrule->_opType,"MemBarAcquire") == 0 ) return true; 627 if( strcmp(_matrule->_opType,"MemBarAcquire") == 0 ) return true;
628 if( strcmp(_matrule->_opType,"MemBarReleaseLock") == 0 ) return true; 628 if( strcmp(_matrule->_opType,"MemBarReleaseLock") == 0 ) return true;
629 if( strcmp(_matrule->_opType,"MemBarAcquireLock") == 0 ) return true; 629 if( strcmp(_matrule->_opType,"MemBarAcquireLock") == 0 ) return true;
630 if( strcmp(_matrule->_opType,"MemBarStoreStore") == 0 ) return true;
630 631
631 return false; 632 return false;
632 } 633 }
633 634
634 int InstructForm::memory_operand(FormDict &globals) const { 635 int InstructForm::memory_operand(FormDict &globals) const {
3976 !strcmp(_opType,"MemBarAcquire" ) || 3977 !strcmp(_opType,"MemBarAcquire" ) ||
3977 !strcmp(_opType,"MemBarRelease" ) || 3978 !strcmp(_opType,"MemBarRelease" ) ||
3978 !strcmp(_opType,"MemBarAcquireLock") || 3979 !strcmp(_opType,"MemBarAcquireLock") ||
3979 !strcmp(_opType,"MemBarReleaseLock") || 3980 !strcmp(_opType,"MemBarReleaseLock") ||
3980 !strcmp(_opType,"MemBarVolatile" ) || 3981 !strcmp(_opType,"MemBarVolatile" ) ||
3981 !strcmp(_opType,"MemBarCPUOrder" ) ; 3982 !strcmp(_opType,"MemBarCPUOrder" ) ||
3983 !strcmp(_opType,"MemBarStoreStore" );
3982 } 3984 }
3983 3985
3984 bool MatchRule::is_ideal_loadPC() const { 3986 bool MatchRule::is_ideal_loadPC() const {
3985 if ( _opType && (strcmp(_opType,"Set") == 0) && _rChild ) { 3987 if ( _opType && (strcmp(_opType,"Set") == 0) && _rChild ) {
3986 return (strcmp(_rChild->_opType,"LoadPC") == 0); 3988 return (strcmp(_rChild->_opType,"LoadPC") == 0);