< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahRuntime.hpp

Print this page

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
< prev index next >