--- old/src/hotspot/share/oops/access.inline.hpp 2019-09-26 16:22:12.177623838 +0200 +++ new/src/hotspot/share/oops/access.inline.hpp 2019-09-26 16:22:11.961620132 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2019, 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 @@ -199,6 +199,13 @@ }; template + struct PostRuntimeDispatch: public AllStatic { + static void access_barrier(void* src, void* dst, ValueKlass* md) { + GCBarrierType::value_copy_in_heap(src, dst, md); + } + }; + + template struct PostRuntimeDispatch: public AllStatic { static oop access_barrier(oop obj) { return GCBarrierType::resolve(obj); @@ -354,6 +361,13 @@ } template + void RuntimeDispatch::value_copy_init(void* src, void* dst, ValueKlass* md) { + func_t function = BarrierResolver::resolve_barrier(); + _value_copy_func = function; + function(src, dst, md); + } + + template oop RuntimeDispatch::resolve_init(oop obj) { func_t function = BarrierResolver::resolve_barrier(); _resolve_func = function;