diff -r 76b73e112cb7 -r f543ff2cabcf src/cpu/mips/vm/macroAssembler_mips.cpp --- a/src/cpu/mips/vm/macroAssembler_mips.cpp Tue Oct 24 14:04:09 2017 +0800 +++ b/src/cpu/mips/vm/macroAssembler_mips.cpp Tue Oct 24 15:06:31 2017 +0800 @@ -1777,14 +1777,14 @@ CardTableModRefBS* ct = (CardTableModRefBS*)bs; assert(sizeof(*ct->byte_map_base) == sizeof(jbyte), "adjust this code"); - li(AT, (long)ct->byte_map_base); + set64(AT, (long)ct->byte_map_base); #ifdef _LP64 dadd(AT, AT, obj); #else add(AT, AT, obj); #endif + if (UseConcMarkSweepGC) sync(); sb(R0, AT, 0); - sync(); } // Defines obj, preserves var_size_in_bytes, okay for t2 == var_size_in_bytes.