JDK-8005722 : Assert in c1_LIR.hpp incorrect wrt to number of register operands
Type:Bug
Component:embedded
Sub-Component:hotspot
Affected Version:hs24,hs25
Priority:P3
Status:Closed
Resolution:Fixed
CPU:generic
Submitted:2013-01-04
Updated:2013-06-26
Resolved:2013-02-13
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.
assert(_oprs_len[mode] < maxNumberOfOperands, "array overflow") should probably be <= test
Comments
The problem is not the assert but the fact that in LIR_OpVisitState::visit() the receiver operand is processed twice. First at line 813 and then again when the arg list is processed starting at index 0 which is the receiver object. Fix is to set the start index to 0 or 1 based on receiver invalid/valid.