1.1 --- a/src/share/vm/oops/klass.hpp Mon Sep 08 12:35:01 2014 -0700 1.2 +++ b/src/share/vm/oops/klass.hpp Tue Aug 08 15:57:29 2017 +0800 1.3 @@ -275,8 +275,18 @@ 1.4 // The Klasses are not placed in the Heap, so the Card Table or 1.5 // the Mod Union Table can't be used to mark when klasses have modified oops. 1.6 // The CT and MUT bits saves this information for the individual Klasses. 1.7 - void record_modified_oops() { _modified_oops = 1; } 1.8 - void clear_modified_oops() { _modified_oops = 0; } 1.9 + void record_modified_oops() { 1.10 + _modified_oops = 1; 1.11 +#ifdef MIPS64 1.12 + if (Use3A2000) OrderAccess::fence(); 1.13 +#endif 1.14 + } 1.15 + void clear_modified_oops() { 1.16 + _modified_oops = 0; 1.17 +#ifdef MIPS64 1.18 + if (Use3A2000) OrderAccess::fence(); 1.19 +#endif 1.20 + } 1.21 bool has_modified_oops() { return _modified_oops == 1; } 1.22 1.23 void accumulate_modified_oops() { if (has_modified_oops()) _accumulated_modified_oops = 1; }