--- old/src/share/vm/adlc/formssel.cpp 2015-10-14 13:53:45.041594993 +0200 +++ new/src/share/vm/adlc/formssel.cpp 2015-10-14 13:53:44.918597967 +0200 @@ -781,7 +781,9 @@ !strcmp(_matrule->_rChild->_opType,"CreateEx") || // type of exception !strcmp(_matrule->_rChild->_opType,"CheckCastPP") || !strcmp(_matrule->_rChild->_opType,"GetAndSetP") || - !strcmp(_matrule->_rChild->_opType,"GetAndSetN")) ) return true; + !strcmp(_matrule->_rChild->_opType,"GetAndSetN") || + !strcmp(_matrule->_rChild->_opType,"ShenandoahReadBarrier") || + !strcmp(_matrule->_rChild->_opType,"ShenandoahWriteBarrier")) ) return true; else if ( is_ideal_load() == Form::idealP ) return true; else if ( is_ideal_store() != Form::none ) return true; @@ -3487,6 +3489,7 @@ "ClearArray", "GetAndAddI", "GetAndSetI", "GetAndSetP", "GetAndAddL", "GetAndSetL", "GetAndSetN", + "ShenandoahReadBarrier", "ShenandoahWriteBarrier", }; int cnt = sizeof(needs_ideal_memory_list)/sizeof(char*); if( strcmp(_opType,"PrefetchAllocation")==0 )