Code Review for 7047961

Prepared by:never on Wed May 25 13:43:20 PDT 2011
Compare against: ssh://
Summary of changes: 331 lines changed: 220 ins; 27 del; 84 mod; 5053 unchg
Patch of changes: 7047961.patch
Author comments:
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.

Bug id: Bug Database
Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/prims/methodHandleWalk.hpp

55 lines changed: 18 ins; 20 del; 17 mod; 415 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/prims/methodHandleWalk.cpp

262 lines changed: 200 ins; 4 del; 58 mod; 1566 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/prims/methodHandles.cpp

14 lines changed: 2 ins; 3 del; 9 mod; 3072 unchg

This code review page was prepared using /never/bin/webrev (vers 23.18-hg-never).