RFR (S): G1: Fix bug with compressed oops on x86_64 and sparc
John Cuthbertson
john.cuthbertson at oracle.com
Tue Apr 16 23:41:32 UTC 2013
Hi Martin,
This looks good to me. Coleen has also reviewed the change and given it
the thumbs up. I'll let you get back to me regarding a test case before
pushing the changes.
JohnC
On 4/16/2013 1:38 AM, Doerr, Martin wrote:
>
> Hi all,
>
> we 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/
> <http://cr.openjdk.java.net/%7Egoetz/webrevs/g1-cOops_bug/>
>
> Please supply a bug id and review this change.
>
> Kind regards,
>
> Martin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20130416/5dae441f/attachment.htm>
More information about the hotspot-gc-dev
mailing list