RFR 8218612 [lworld] C1 support for array covariance for aastore

Tobias Hartmann tobias.hartmann at oracle.com
Fri Feb 8 08:12:52 UTC 2019

Hi Ioi,

On 08.02.19 08:47, Ioi Lam wrote:
> The re-enabled tests did find a bug in my earlier aaload code -- the call to
> Runtime1::load_flattened_array() would scratch the RAX register. If RAX was allocated for some other
> value, I need to tell the register allocator to move the value to somewhere else. See
> http://hg.openjdk.java.net/valhalla/valhalla/file/673c89f7f22a/src/hotspot/cpu/x86/c1_CodeStubs_x86.cpp#l174
> Is this the correct way?

I wonder if you shouldn't use "visitor->do_temp" here?

> A few test cases still fail with C1, and I have to disable them like this:
> jtreg -vmoptions:'-XX:+EnableValhallaC1' -Dtest.c1=true \
>   $(grep -l @test *.java \
>       | grep -v TestNullableValueTypes.java \
>       | grep -v TestLWorld.java)
> jtreg -vmoptions:'-XX:+EnableValhallaC1' -Dtest.c1=true -DExclude=test14 TestNullableValueTypes.java
> jtreg -vmoptions:'-XX:+EnableValhallaC1' -Dtest.c1=true -DExclude=test37,test38,test45 TestLWorld.java
> But these seem to be unrelated to aaload/aastore, so I'll fix them in a separate changeset.

Okay, we are getting there. Great work!

Best regards,

More information about the valhalla-dev mailing list