for review (M): 6812831 factor general subclass check (for 6655638)
Vladimir Kozlov
Vladimir.Kozlov at Sun.COM
Fri Mar 6 14:52:21 PST 2009
John,
Looks good. I would suggest to run CTW to verify it.
Use Tom's script ~never/bin/multictw which use all cpus.
stubGenerator_x86_32.cpp:
I think you should be careful with using forward jccb for
L_fallthrough label separated by a big macro instruction
check_klass_subtype_slow_pat().
Thanks,
Vladimir
John Rose wrote:
> Here is another review request similar to the previous:
> http://cr.openjdk.java.net/~jrose/6813212/webrev.00
>
> It moves assembly code for subtyping from about 20 places in the source
> base to two places, one for sparc and one for x86.
>
> I will update this webrev after I clean out the subtype assembly code
> from the *.ad files.
>
> While doing this work, I encountered two or three small bugs in the
> assembly code, probably due to the fact that it was so hard to read and
> understand all 20 variations:
> 1. 32-bit instead of 64-bit comparison of pointers in C1 subtype code
> (c1_LIRAssembler_sparc.cpp).
> 2. Compare against wrong register in sparc stub generator
> (stubGenerator_sparc.cpp at cmp(super_klass, sc_offset)).
> 3. Wrong variable names in C1 slow-path code: subclass and superclass
> were swapped (c1_Runtime1_x86.cpp).
>
> None of these are very harmful, or we would have fixed them already. I
> think we know about number 1; it makes it hard to port C1 to LP64.
> Number 2 would make System.arraycopy wrongly throw a CCE if the target
> array element type is a secondary supertype and is *not* already cached
> on the element subtypes. I think I'll have to break this one out as a
> separate fix, so it can be backported.
>
> -- John
More information about the hotspot-compiler-dev
mailing list