3151
3152 case vmIntrinsics::_compareAndSwapObject:
3153 do_CompareAndSwap(x, objectType);
3154 break;
3155 case vmIntrinsics::_compareAndSwapInt:
3156 do_CompareAndSwap(x, intType);
3157 break;
3158 case vmIntrinsics::_compareAndSwapLong:
3159 do_CompareAndSwap(x, longType);
3160 break;
3161
3162 case vmIntrinsics::_loadFence :
3163 if (os::is_MP()) __ membar_acquire();
3164 break;
3165 case vmIntrinsics::_storeFence:
3166 if (os::is_MP()) __ membar_release();
3167 break;
3168 case vmIntrinsics::_fullFence :
3169 if (os::is_MP()) __ membar();
3170 break;
3171
3172 case vmIntrinsics::_Reference_get:
3173 do_Reference_get(x);
3174 break;
3175
3176 case vmIntrinsics::_updateCRC32:
3177 case vmIntrinsics::_updateBytesCRC32:
3178 case vmIntrinsics::_updateByteBufferCRC32:
3179 do_update_CRC32(x);
3180 break;
3181
3182 default: ShouldNotReachHere(); break;
3183 }
3184 }
3185
3186 void LIRGenerator::profile_arguments(ProfileCall* x) {
3187 if (compilation()->profile_arguments()) {
3188 int bci = x->bci_of_invoke();
3189 ciMethodData* md = x->method()->method_data_or_null();
3190 ciProfileData* data = md->bci_to_data(bci);
3191 if ((data->is_CallTypeData() && data->as_CallTypeData()->has_arguments()) ||
|
3151
3152 case vmIntrinsics::_compareAndSwapObject:
3153 do_CompareAndSwap(x, objectType);
3154 break;
3155 case vmIntrinsics::_compareAndSwapInt:
3156 do_CompareAndSwap(x, intType);
3157 break;
3158 case vmIntrinsics::_compareAndSwapLong:
3159 do_CompareAndSwap(x, longType);
3160 break;
3161
3162 case vmIntrinsics::_loadFence :
3163 if (os::is_MP()) __ membar_acquire();
3164 break;
3165 case vmIntrinsics::_storeFence:
3166 if (os::is_MP()) __ membar_release();
3167 break;
3168 case vmIntrinsics::_fullFence :
3169 if (os::is_MP()) __ membar();
3170 break;
3171 case vmIntrinsics::_onSpinWait:
3172 __ on_spin_wait();
3173 break;
3174 case vmIntrinsics::_Reference_get:
3175 do_Reference_get(x);
3176 break;
3177
3178 case vmIntrinsics::_updateCRC32:
3179 case vmIntrinsics::_updateBytesCRC32:
3180 case vmIntrinsics::_updateByteBufferCRC32:
3181 do_update_CRC32(x);
3182 break;
3183
3184 default: ShouldNotReachHere(); break;
3185 }
3186 }
3187
3188 void LIRGenerator::profile_arguments(ProfileCall* x) {
3189 if (compilation()->profile_arguments()) {
3190 int bci = x->bci_of_invoke();
3191 ciMethodData* md = x->method()->method_data_or_null();
3192 ciProfileData* data = md->bci_to_data(bci);
3193 if ((data->is_CallTypeData() && data->as_CallTypeData()->has_arguments()) ||
|