Mercurial > hg > truffle
comparison src/share/vm/adlc/formssel.cpp @ 6795:7eca5de9e0b6
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Summary: use shorter instruction sequences for atomic add and atomic exchange when possible.
Reviewed-by: kvn, jrose
author | roland |
---|---|
date | Thu, 20 Sep 2012 16:49:17 +0200 |
parents | da91efe96a93 |
children | 0702f188baeb |
comparison
equal
deleted
inserted
replaced
6794:8ae8f9dd7099 | 6795:7eca5de9e0b6 |
---|---|
749 (!strcmp(_matrule->_rChild->_opType,"CastPP") || // new result type | 749 (!strcmp(_matrule->_rChild->_opType,"CastPP") || // new result type |
750 !strcmp(_matrule->_rChild->_opType,"CastX2P") || // new result type | 750 !strcmp(_matrule->_rChild->_opType,"CastX2P") || // new result type |
751 !strcmp(_matrule->_rChild->_opType,"DecodeN") || | 751 !strcmp(_matrule->_rChild->_opType,"DecodeN") || |
752 !strcmp(_matrule->_rChild->_opType,"EncodeP") || | 752 !strcmp(_matrule->_rChild->_opType,"EncodeP") || |
753 !strcmp(_matrule->_rChild->_opType,"LoadN") || | 753 !strcmp(_matrule->_rChild->_opType,"LoadN") || |
754 !strcmp(_matrule->_rChild->_opType,"GetAndSetN") || | |
754 !strcmp(_matrule->_rChild->_opType,"LoadNKlass") || | 755 !strcmp(_matrule->_rChild->_opType,"LoadNKlass") || |
755 !strcmp(_matrule->_rChild->_opType,"CreateEx") || // type of exception | 756 !strcmp(_matrule->_rChild->_opType,"CreateEx") || // type of exception |
756 !strcmp(_matrule->_rChild->_opType,"CheckCastPP")) ) return true; | 757 !strcmp(_matrule->_rChild->_opType,"CheckCastPP")) ) return true; |
757 else if ( is_ideal_load() == Form::idealP ) return true; | 758 else if ( is_ideal_load() == Form::idealP ) return true; |
758 else if ( is_ideal_store() != Form::none ) return true; | 759 else if ( is_ideal_store() != Form::none ) return true; |
3397 "LoadRange", "LoadKlass", "LoadNKlass", "LoadL_unaligned", "LoadD_unaligned", | 3398 "LoadRange", "LoadKlass", "LoadNKlass", "LoadL_unaligned", "LoadD_unaligned", |
3398 "LoadPLocked", | 3399 "LoadPLocked", |
3399 "StorePConditional", "StoreIConditional", "StoreLConditional", | 3400 "StorePConditional", "StoreIConditional", "StoreLConditional", |
3400 "CompareAndSwapI", "CompareAndSwapL", "CompareAndSwapP", "CompareAndSwapN", | 3401 "CompareAndSwapI", "CompareAndSwapL", "CompareAndSwapP", "CompareAndSwapN", |
3401 "StoreCM", | 3402 "StoreCM", |
3402 "ClearArray" | 3403 "ClearArray", |
3404 "GetAndAddI", "GetAndSetI", "GetAndSetP", | |
3405 "GetAndAddL", "GetAndSetL", "GetAndSetN", | |
3403 }; | 3406 }; |
3404 int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*); | 3407 int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*); |
3405 if( strcmp(_opType,"PrefetchRead")==0 || | 3408 if( strcmp(_opType,"PrefetchRead")==0 || |
3406 strcmp(_opType,"PrefetchWrite")==0 || | 3409 strcmp(_opType,"PrefetchWrite")==0 || |
3407 strcmp(_opType,"PrefetchAllocation")==0 ) | 3410 strcmp(_opType,"PrefetchAllocation")==0 ) |