review for 7145024: Crashes in ucrypto related to C2

Tom Rodriguez tom.rodriguez at
Fri Feb 24 10:28:15 PST 2012
489 lines changed: 451 ins; 22 del; 16 mod; 3645 unchg

7145024: Crashes in ucrypto related to C2

There are two issues here.  The first issue, that resulted in the
asserts was incorrect incrementing of the slots when building the oop
map.  Fixing that exposed the second issue which is that different
signatures may require very different orders for the move to avoid
clobbering other arguments.  There's no simple way to order them
safely so I resurrected some old C1 code for computing a safe order
for issuing stores and break any cycles in those stores.  The code
itself is fairly general but it's not necessary on the other platforms
so I kept it in the platform dependent code instead of moving it into
a shared file.  Tested with a new manual test that exercises all
permutations of 8 arguments that mix primtives and arrays on Solaris,
Linux and Windows.  Also tested with failing test.

More information about the hotspot-compiler-dev mailing list