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 )