Mercurial > hg > graal-jvmci-8
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); |