United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7010618 C1: array length should be treated at int on 64bit during array allocation
JDK-7010618 : C1: array length should be treated at int on 64bit during array allocation

Details
Type:
Bug
Submit Date:
2011-01-06
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs20
Fixed Versions:
hs20 (b07)

Related Reports
Backport:
Backport:

Sub Tasks

Description
java/util/Arrays/ArrayObjectMethods.java test failed with tiered on sparcv9.

To reproduce run:
javac -d . /net/sqenfs-1.sfbay/export1/comp/vm/testbase/jtreg/7-nightly/JT_JDK/test/java/util/Arrays/ArrayObjectMethods.java


java -Xmixed -server -d64 -XX:-UseCompressedOops -XX:+PrintCompilation -XX:+TieredCompilation -cp . ArrayObjectMethods

                                    

Comments
EVALUATION

The problem is that C1 expects to get sign-extended registers containing block size in tlab_allocate() and eden_allocate(). But in fact it's passed a 32bit int. The solution would be to do i2l conversion before doing pointer arithmetic with this register.
                                     
2011-01-06
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/55f868e91c3b
                                     
2011-01-07



Hardware and Software, Engineered to Work Together