src/share/vm/memory/barrierSet.hpp

changeset 8019
3fb3ceb7398f
parent 6876
710a3c8b516e
child 9138
b56ab8e56604
equal deleted inserted replaced
8018:7763e0b50e20 8019:3fb3ceb7398f
96 // Keep this private so as to catch violations at build time. 96 // Keep this private so as to catch violations at build time.
97 virtual void write_ref_field_pre_work( void* field, oop new_val) { guarantee(false, "Not needed"); }; 97 virtual void write_ref_field_pre_work( void* field, oop new_val) { guarantee(false, "Not needed"); };
98 protected: 98 protected:
99 virtual void write_ref_field_pre_work( oop* field, oop new_val) { 99 virtual void write_ref_field_pre_work( oop* field, oop new_val) {
100 #ifdef MIPS64 100 #ifdef MIPS64
101 if (Use3A2000) OrderAccess::fence(); 101 if (UseSyncLevel >= 2000) OrderAccess::fence();
102 #endif 102 #endif
103 }; 103 };
104 virtual void write_ref_field_pre_work(narrowOop* field, oop new_val) { 104 virtual void write_ref_field_pre_work(narrowOop* field, oop new_val) {
105 #ifdef MIPS64 105 #ifdef MIPS64
106 if (Use3A2000) OrderAccess::fence(); 106 if (UseSyncLevel >= 2000) OrderAccess::fence();
107 #endif 107 #endif
108 }; 108 };
109 public: 109 public:
110 110
111 // ...then the post-write version. 111 // ...then the post-write version.
141 141
142 // Below length is the # array elements being written 142 // Below length is the # array elements being written
143 virtual void write_ref_array_pre(oop* dst, int length, 143 virtual void write_ref_array_pre(oop* dst, int length,
144 bool dest_uninitialized = false) { 144 bool dest_uninitialized = false) {
145 #ifdef MIPS64 145 #ifdef MIPS64
146 if (Use3A2000) OrderAccess::fence(); 146 if (UseSyncLevel >= 2000) OrderAccess::fence();
147 #endif 147 #endif
148 } 148 }
149 virtual void write_ref_array_pre(narrowOop* dst, int length, 149 virtual void write_ref_array_pre(narrowOop* dst, int length,
150 bool dest_uninitialized = false) { 150 bool dest_uninitialized = false) {
151 #ifdef MIPS64 151 #ifdef MIPS64
152 if (Use3A2000) OrderAccess::fence(); 152 if (UseSyncLevel >= 2000) OrderAccess::fence();
153 #endif 153 #endif
154 } 154 }
155 // Below count is the # array elements being written, starting 155 // Below count is the # array elements being written, starting
156 // at the address "start", which may not necessarily be HeapWord-aligned 156 // at the address "start", which may not necessarily be HeapWord-aligned
157 inline void write_ref_array(HeapWord* start, size_t count); 157 inline void write_ref_array(HeapWord* start, size_t count);

mercurial