src/share/vm/opto/library_call.cpp

Print this page

        

*** 272,281 **** --- 272,282 ---- typedef enum { LS_xadd, LS_xchg, LS_cmpxchg } LoadStoreKind; bool inline_unsafe_load_store(BasicType type, LoadStoreKind kind); bool inline_unsafe_ordered_store(BasicType type); bool inline_unsafe_fence(vmIntrinsics::ID id); + bool inline_onspinwait(); bool inline_fp_conversions(vmIntrinsics::ID id); bool inline_number_methods(vmIntrinsics::ID id); bool inline_reference_get(); bool inline_Class_cast(); bool inline_aescrypt_Block(vmIntrinsics::ID id);
*** 627,636 **** --- 628,639 ---- case vmIntrinsics::_loadFence: case vmIntrinsics::_storeFence: case vmIntrinsics::_fullFence: return inline_unsafe_fence(intrinsic_id()); + case vmIntrinsics::_onSpinWait: return inline_onspinwait(); + case vmIntrinsics::_currentThread: return inline_native_currentThread(); case vmIntrinsics::_isInterrupted: return inline_native_isInterrupted(); #ifdef TRACE_HAVE_INTRINSICS case vmIntrinsics::_classID: return inline_native_classID();
*** 2972,2981 **** --- 2975,2989 ---- fatal_unexpected_iid(id); return false; } } + bool LibraryCallKit::inline_onspinwait() { + insert_mem_bar(Op_OnSpinWait); + return true; + } + bool LibraryCallKit::klass_needs_init_guard(Node* kls) { if (!kls->is_Con()) { return true; } const TypeKlassPtr* klsptr = kls->bottom_type()->isa_klassptr();
*** 3355,3364 **** --- 3363,3375 ---- case vmIntrinsics::_isInstance: // nothing is an instance of a primitive type query_value = gen_instanceof(obj, kls, safe_for_replace); break; + case vmIntrinsics::_onSpinWait: + break; + case vmIntrinsics::_getModifiers: p = basic_plus_adr(kls, in_bytes(Klass::modifier_flags_offset())); query_value = make_load(NULL, p, TypeInt::INT, T_INT, MemNode::unordered); break;