JDK-7053520 : JSR292: crash in invokedynamic with C1 using tiered and compressed oops
Type:Bug
Component:hotspot
Sub-Component:compiler
Affected Version:hs21
Priority:P1
Status:Closed
Resolution:Fixed
OS:generic
CPU:generic
Submitted:2011-06-10
Updated:2014-01-16
Resolved:2011-06-18
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
Running JSR 292 test cases with TieredCompilation and UseCompressedOops results in crashes.
Comments
Verified via a lot of jsr292 tests in comiler nighlies w/ enabled TieredCompilation as well as in promotion after jdk8b102 (JDK-8008938).
Note: COops is enabled by default on many hosts by ergonomics.
EVALUATION
We are trying to decode the address of the CallSite object stored in constant pool cache as if it were an oop but it's a raw pointer which results in crashes. The fix is to replace the load instruction with move_wide.