290 // The Klasses are not placed in the Heap, so the Card Table or |
290 // The Klasses are not placed in the Heap, so the Card Table or |
291 // the Mod Union Table can't be used to mark when klasses have modified oops. |
291 // the Mod Union Table can't be used to mark when klasses have modified oops. |
292 // The CT and MUT bits saves this information for the individual Klasses. |
292 // The CT and MUT bits saves this information for the individual Klasses. |
293 void record_modified_oops() { |
293 void record_modified_oops() { |
294 _modified_oops = 1; |
294 _modified_oops = 1; |
295 #ifdef MIPS |
295 #if defined MIPS && !defined ZERO |
296 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
296 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
297 #endif |
297 #endif |
298 } |
298 } |
299 void clear_modified_oops() { |
299 void clear_modified_oops() { |
300 _modified_oops = 0; |
300 _modified_oops = 0; |
301 #ifdef MIPS |
301 #if defined MIPS && !defined ZERO |
302 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
302 if (UseSyncLevel >= 2000) OrderAccess::fence(); |
303 #endif |
303 #endif |
304 } |
304 } |
305 bool has_modified_oops() { return _modified_oops == 1; } |
305 bool has_modified_oops() { return _modified_oops == 1; } |
306 |
306 |