mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +02:00
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:
parent
5432554ecb
commit
90a153aa38
10 changed files with 353 additions and 205 deletions
|
@ -35,9 +35,9 @@ void BarrierSet::static_write_ref_array_pre(HeapWord* start, size_t count) {
|
|||
start, count);
|
||||
#endif
|
||||
if (UseCompressedOops) {
|
||||
Universe::heap()->barrier_set()->write_ref_array_pre((narrowOop*)start, (int)count);
|
||||
Universe::heap()->barrier_set()->write_ref_array_pre((narrowOop*)start, (int)count, false);
|
||||
} else {
|
||||
Universe::heap()->barrier_set()->write_ref_array_pre( (oop*)start, (int)count);
|
||||
Universe::heap()->barrier_set()->write_ref_array_pre( (oop*)start, (int)count, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue