United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-8012335 G1: TemplateInterpreter do_oop_store passes a compressed oop to g1_write_barrier_post
JDK-8012335 : G1: TemplateInterpreter do_oop_store passes a compressed oop to g1_write_barrier_post

Details
Type:
Bug
Submit Date:
2013-04-16
Status:
Resolved
Updated Date:
2013-05-14
Project Name:
JDK
Resolved Date:
2013-04-18
Component:
hotspot
OS:
Sub-Component:
gc
CPU:
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs25
Fixed Versions:
hs25 (b29)

Related Reports
Backport:
Backport:
Backport:

Sub Tasks

Description
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/

                                    

Comments
Reviewing fix from SAP.
                                     
2013-04-16
URL:   http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/f2e682ef3156
User:  johnc
Date:  2013-04-18 00:17:07 +0000

                                     
2013-04-18
URL:   http://hg.openjdk.java.net/hsx/hsx25/hotspot/rev/f2e682ef3156
User:  amurillo
Date:  2013-04-19 20:07:30 +0000

                                     
2013-04-19



Hardware and Software, Engineered to Work Together