SAP found a G1 bug in the template interpreter on x86_64 and sparc with compressed Oops. ���do_oop_store��� performs a ���store_heap_oop��� which compresses the input register. This compressed Oop is passed to the succeeding g1_write_barrier_post, which is wrong. Correctly, g1_write_barrier_post needs the uncompressed Oop for the heap region crossing check. This fix preserves the uncompressed Oop in a register which gets passed to the g1_write_barrier_post: http://cr.openjdk.java.net/~goetz/webrevs/g1-cOops_bug/
|