6627983: G1: Bad oop deference during marking

Bulk zeroing reduction didn't work with G1, because arraycopy would call pre-barriers on uninitialized oops. The solution is to have version of arraycopy stubs that don't have pre-barriers. Also refactored arraycopy stubs generation on SPARC to be more readable and reduced the number of stubs necessary in some cases.

Reviewed-by: jrose, kvn, never
This commit is contained in:
Igor Veresov 2011-03-01 14:56:48 -08:00
parent 5432554ecb
commit 90a153aa38
10 changed files with 353 additions and 205 deletions

View file

@ -2790,10 +2790,6 @@ jint Arguments::finalize_vm_init_args(SysClassPath* scp_p, bool scp_assembly_req
if (!FLAG_IS_DEFAULT(OptoLoopAlignment) && FLAG_IS_DEFAULT(MaxLoopPad)) {
FLAG_SET_DEFAULT(MaxLoopPad, OptoLoopAlignment-1);
}
// Temporary disable bulk zeroing reduction with G1. See CR 6627983.
if (UseG1GC) {
FLAG_SET_DEFAULT(ReduceBulkZeroing, false);
}
#endif
// If we are running in a headless jre, force java.awt.headless property