19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
26 #define SHARE_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
27
28 #include "memory/allStatic.hpp"
29 #include "oops/oopsHierarchy.hpp"
30
31 class JavaThread;
32 class oopDesc;
33
34 class ShenandoahRuntime : public AllStatic {
35 public:
36 static void arraycopy_barrier_oop(oop* src, oop* dst, size_t length);
37 static void arraycopy_barrier_narrow_oop(narrowOop* src, narrowOop* dst, size_t length);
38
39 static void write_barrier_pre(oopDesc* orig);
40
41 static oopDesc* load_reference_barrier_strong(oopDesc* src, oop* load_addr);
42 static oopDesc* load_reference_barrier_strong_narrow(oopDesc* src, narrowOop* load_addr);
43
44 static oopDesc* load_reference_barrier_weak(oopDesc* src, oop* load_addr);
45 static oopDesc* load_reference_barrier_weak_narrow(oopDesc* src, narrowOop* load_addr);
46
47 static oopDesc* load_reference_barrier_phantom(oopDesc* src, oop* load_addr);
48 static oopDesc* load_reference_barrier_phantom_narrow(oopDesc* src, narrowOop* load_addr);
49
50 static void clone_barrier(oopDesc* src);
51 };
52
53 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
26 #define SHARE_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
27
28 #include "memory/allStatic.hpp"
29 #include "oops/oopsHierarchy.hpp"
30
31 class JavaThread;
32 class oopDesc;
33
34 class ShenandoahRuntime : public AllStatic {
35 public:
36 static void arraycopy_barrier_oop(oop* src, oop* dst, size_t length);
37 static void arraycopy_barrier_narrow_oop(narrowOop* src, narrowOop* dst, size_t length);
38
39 static void write_barrier_pre(oopDesc* obj);
40 static void write_barrier_pre_narrow(narrowOop obj);
41
42 static oopDesc* load_reference_barrier_strong(oopDesc* src, oop* load_addr);
43 static oopDesc* load_reference_barrier_strong_narrow(oopDesc* src, narrowOop* load_addr);
44 static narrowOop load_reference_barrier_strong_narrow_narrow(narrowOop src, narrowOop* load_addr);
45
46 static oopDesc* load_reference_barrier_weak(oopDesc* src, oop* load_addr);
47 static oopDesc* load_reference_barrier_weak_narrow(oopDesc* src, narrowOop* load_addr);
48 static narrowOop load_reference_barrier_weak_narrow_narrow(narrowOop src, narrowOop* load_addr);
49
50 static oopDesc* load_reference_barrier_phantom(oopDesc* src, oop* load_addr);
51 static oopDesc* load_reference_barrier_phantom_narrow(oopDesc* src, narrowOop* load_addr);
52 static narrowOop load_reference_barrier_phantom_narrow_narrow(narrowOop src, narrowOop* load_addr);
53
54 static void clone(oopDesc* src, oopDesc* dst, size_t size);
55 static address clone_addr() { return reinterpret_cast<address>(clone); }
56 };
57
58 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHRUNTIME_HPP
|