[Fwd: Request for review (S): CR 6889740 - G1: OpenDS fails with "unhandled exception in compiled code"]

john cuthbertson - Sun Microsystems John.Cuthbertson at Sun.COM
Tue Oct 27 15:10:23 PDT 2009


Hi Everyone,

I should have included the compiler alias on the attached review 
request. Can someone look over the changes?

Thanks,

JohnC

-------- Original Message --------
Subject: 	Request for review (S): CR 6889740 - G1: OpenDS fails with 
"unhandled exception in compiled code"
Date: 	Tue, 27 Oct 2009 14:51:46 -0700
From: 	john cuthbertson - Sun Microsystems <John.Cuthbertson at Sun.COM>
To: 	hotspot-gc-dev at openjdk.java.net



Hi Everyone,

Can I have a couple of volunteers to review the proposed fix for this 
bug? The webrev can be found at 
http://cr.openjdk.java.net/~johnc/6889740/webrev.0/.

The issue is that bad code was being generated for the store operation 
in the null case of the aastore bytecode template. The bad code was 
caused by there being only one version of the store_heap_oop routine 
that took a Register as the second argument. When the calling code 
passed in NULL_WORD (0) to this routine the value was used as a Register 
encoding and converted to Register(0), which is rax. Thus the generated 
store was "mov (dst), $rax" instead of "mov (dst), $0x0". This is 
normally not a problem as the preceding code in the template fetches the 
value to be stored into rax. When the G1 pre-barrier code calls the 
runtime, however, the value in rax can be overwritten and the heap can 
become corrupted.

Testing: OpenDS, jprt, refworkload, and the GC test suite.

Thanks,

JohnC

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20091027/d49d2c38/attachment.html 


More information about the hotspot-compiler-dev mailing list