--- old/src/hotspot/share/oops/method.hpp 2018-03-02 08:12:39.903510169 -0500 +++ new/src/hotspot/share/oops/method.hpp 2018-03-02 08:12:39.204950725 -0500 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -136,9 +136,9 @@ static address make_adapters(const methodHandle& mh, TRAPS); - address from_compiled_entry() const { return OrderAccess::load_acquire(&_from_compiled_entry); } + address from_compiled_entry() const; address from_compiled_entry_no_trampoline() const; - address from_interpreted_entry() const{ return OrderAccess::load_acquire(&_from_interpreted_entry); } + address from_interpreted_entry() const; // access flag AccessFlags access_flags() const { return _access_flags; } @@ -333,12 +333,7 @@ return _method_data; } - void set_method_data(MethodData* data) { - // The store into method must be released. On platforms without - // total store order (TSO) the reference may become visible before - // the initialization of data otherwise. - OrderAccess::release_store(&_method_data, data); - } + void set_method_data(MethodData* data); MethodCounters* method_counters() const { return _method_counters; @@ -449,7 +444,7 @@ // nmethod/verified compiler entry address verified_code_entry(); bool check_code() const; // Not inline to avoid circular ref - CompiledMethod* volatile code() const { assert( check_code(), "" ); return OrderAccess::load_acquire(&_code); } + CompiledMethod* volatile code() const; void clear_code(bool acquire_lock = true); // Clear out any compiled code static void set_code(const methodHandle& mh, CompiledMethod* code); void set_adapter_entry(AdapterHandlerEntry* adapter) { @@ -662,7 +657,7 @@ // compiled code support // NOTE: code() is inherently racy as deopt can be clearing code // simultaneously. Use with caution. - bool has_compiled_code() const { return code() != NULL; } + bool has_compiled_code() const; #ifdef TIERED bool has_aot_code() const { return aot_code() != NULL; }