18 *
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_SHENANDOAHBARRIERSETNMETHOD_HPP
26 #define SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSETNMETHOD_HPP
27
28 #include "gc/shared/barrierSetNMethod.hpp"
29 #include "memory/allocation.hpp"
30
31 class nmethod;
32 class ShenandoahHeap;
33
34 class ShenandoahBarrierSetNMethod : public BarrierSetNMethod {
35 private:
36 ShenandoahHeap* _heap;
37
38 public:
39 ShenandoahBarrierSetNMethod(ShenandoahHeap* heap) : _heap(heap) {
40 }
41
42 virtual bool nmethod_entry_barrier(nmethod* nm);
43 };
44
45 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSETNMETHOD_HPP
|
18 *
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_SHENANDOAHBARRIERSETNMETHOD_HPP
26 #define SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSETNMETHOD_HPP
27
28 #include "gc/shared/barrierSetNMethod.hpp"
29 #include "memory/allocation.hpp"
30
31 class nmethod;
32 class ShenandoahHeap;
33
34 class ShenandoahBarrierSetNMethod : public BarrierSetNMethod {
35 private:
36 ShenandoahHeap* _heap;
37
38 void cross_modify_fence();
39
40 public:
41 ShenandoahBarrierSetNMethod(ShenandoahHeap* heap) : _heap(heap) {
42 }
43
44 bool nmethod_entry_barrier(nmethod* nm) override;
45
46 void finalize_relocations(nmethod* nm) override;
47
48 void arm_all_nmethods() override;
49 };
50
51 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHBARRIERSETNMETHOD_HPP
|