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