review for 7047961: JSR 292 MethodHandleWalk swap args doesn't handle T_LONG and T_DOUBLE properly
tom.rodriguez at oracle.com
Wed May 25 12:07:58 PDT 2011
316 lines changed: 213 ins; 27 del; 76 mod; 5061 unchg
7047961: JSR 292 MethodHandleWalk swap args doesn't handle T_LONG and T_DOUBLE properly
Several more errors were found with handling op arguments in
MethodHandleWalk. swap wasn't dealing with the double word arguments
properly. collect and fold are allowed to have 0 length operations.
rotate was using the wrong type to determine the size of the
operation. boxing operations are allowed on subword types. nop
conversion operations should just do nothing. I also removed the
SlotState wrapper since its only purpose seemed to be to keep track of
the arg types when symbolic was used and I modified tt_symbolic to
keep accurate track of the type instead of claiming to be a long. I
also added more detail to most of the failure messages and fixed a
missing ResourceMark along with adding a lot more sanity checks.
Tested with vm/mlvm and java/lang/invoke regression tests.
More information about the hotspot-compiler-dev