United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-7047961 : JSR 292 MethodHandleWalk swap args doesn't handle T_LONG and T_DOUBLE properly

Details
Type:
Bug
Submit Date:
2011-05-24
Status:
Resolved
Updated Date:
2012-12-05
Project Name:
JDK
Resolved Date:
2011-06-04
Component:
hotspot
OS:
solaris_10
Sub-Component:
compiler
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs21
Fixed Versions:
hs21 (b15)

Related Reports
Backport:
Backport:
Backport:

Sub Tasks

Description
More stress testing with MethodHandleWalk uncovered a few new issues, in particular swap wasn't handling double word arguments properly which corrupted the argument list.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/5ac411b3b8fc
                                     
2011-05-27
EVALUATION

7047961: JSR 292 MethodHandleWalk swap args doesn't handle T_LONG and T_DOUBLE properly
Reviewed-by: kvn, jrose

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.
                                     
2011-05-27
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/88559690c95a
                                     
2011-06-01
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/5ac411b3b8fc
                                     
2011-06-03
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/88559690c95a
                                     
2011-06-09



Hardware and Software, Engineered to Work Together