3557 // Use the intrinsic version of Reference.get() so that the value in
3558 // the referent field can be registered by the G1 pre-barrier code.
3559 // Also to prevent commoning reads from this field across safepoint
3560 // since GC can change its value.
3561 preserves_state = true;
3562 break;
3563
3564 case vmIntrinsics::_updateCRC32:
3565 case vmIntrinsics::_updateBytesCRC32:
3566 case vmIntrinsics::_updateByteBufferCRC32:
3567 if (!UseCRC32Intrinsics) return false;
3568 cantrap = false;
3569 preserves_state = true;
3570 break;
3571
3572 case vmIntrinsics::_loadFence :
3573 case vmIntrinsics::_storeFence:
3574 case vmIntrinsics::_fullFence :
3575 break;
3576
3577 default : return false; // do not inline
3578 }
3579 // create intrinsic node
3580 const bool has_receiver = !callee->is_static();
3581 ValueType* result_type = as_ValueType(callee->return_type());
3582 ValueStack* state_before = copy_state_for_exception();
3583
3584 Values* args = state()->pop_arguments(callee->arg_size());
3585
3586 if (is_profiling()) {
3587 // Don't profile in the special case where the root method
3588 // is the intrinsic
3589 if (callee != method()) {
3590 // Note that we'd collect profile data in this method if we wanted it.
3591 compilation()->set_would_profile(true);
3592 if (profile_calls()) {
3593 Value recv = NULL;
3594 if (has_receiver) {
3595 recv = args->at(0);
3596 null_check(recv);
|
3557 // Use the intrinsic version of Reference.get() so that the value in
3558 // the referent field can be registered by the G1 pre-barrier code.
3559 // Also to prevent commoning reads from this field across safepoint
3560 // since GC can change its value.
3561 preserves_state = true;
3562 break;
3563
3564 case vmIntrinsics::_updateCRC32:
3565 case vmIntrinsics::_updateBytesCRC32:
3566 case vmIntrinsics::_updateByteBufferCRC32:
3567 if (!UseCRC32Intrinsics) return false;
3568 cantrap = false;
3569 preserves_state = true;
3570 break;
3571
3572 case vmIntrinsics::_loadFence :
3573 case vmIntrinsics::_storeFence:
3574 case vmIntrinsics::_fullFence :
3575 break;
3576
3577 case vmIntrinsics::_getCompiler:
3578 break;
3579
3580 default : return false; // do not inline
3581 }
3582 // create intrinsic node
3583 const bool has_receiver = !callee->is_static();
3584 ValueType* result_type = as_ValueType(callee->return_type());
3585 ValueStack* state_before = copy_state_for_exception();
3586
3587 Values* args = state()->pop_arguments(callee->arg_size());
3588
3589 if (is_profiling()) {
3590 // Don't profile in the special case where the root method
3591 // is the intrinsic
3592 if (callee != method()) {
3593 // Note that we'd collect profile data in this method if we wanted it.
3594 compilation()->set_would_profile(true);
3595 if (profile_calls()) {
3596 Value recv = NULL;
3597 if (has_receiver) {
3598 recv = args->at(0);
3599 null_check(recv);
|