diff -r b109e761e927 -r c6386080541b src/share/vm/c1/c1_LIRGenerator.cpp --- a/src/share/vm/c1/c1_LIRGenerator.cpp Tue Jun 09 16:19:10 2009 -0700 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp Wed Jun 10 12:19:48 2009 -0700 @@ -1534,12 +1534,8 @@ } if (is_oop) { -#ifdef PRECISE_CARDMARK - // Precise cardmarks don't work - post_barrier(LIR_OprFact::address(address), value.result()); -#else + // Store to object so mark the card of the header post_barrier(object.result(), value.result()); -#endif // PRECISE_CARDMARK } if (is_volatile && os::is_MP()) {