review (XS): 7047491: C1: registers saved incorrectly when calling checkcast_arraycopy stub
igor.veresov at oracle.com
Mon May 23 12:48:50 PDT 2011
Incorrect handling of the registers made runThese fail one of the
arraycopy tests on 64bit windows with -d64 -Xcomp -XX:+TieredCompilation.
The problem is that when we call the checkcast_arraycopy stub we assume
that it abides to C calling convention, but in fact it doesn't, so it
can kill the registers containing arguments that are expected later by
the slow stub. The easiest solution is to save argument registers before
the call and then restore them.
Tested with JPRT by passing -XX:+TieredCompilation to every test.
More information about the hotspot-compiler-dev