Code Review for 7045514

Prepared by:never on Thu Jun 2 14:57:25 PDT 2011
Workspace:/net/smite.us.oracle.com/export/ws/7045514
Compare against: ssh://hg.openjdk.java.net/hsx/hotspot-comp-gate/hotspot
Summary of changes: 2383 lines changed: 1825 ins; 348 del; 210 mod; 46453 unchg
Patch of changes: 7045514.patch
Author comments:
7045514: SPARC assembly code for JSR 292 ricochet frames
Reviewed-by:

This is the complete support for Ricochet frames on sparc. Christian
did all the work and testing and I just did some final testing and bug
fixing.

A potential issue with checkcasts reusing locals in
methodHandleWalk.cpp was fixed. Comments weren't being transferred
onto the MethodHandlesAdapterBlob. A derived oop issue was found
where an assert was complaining that an offset was too large but
there's no real restriction on the offset of derived oops so I
disabled the assert. ResourceMarks were added in verification logic.
A verify_vmargslot call was verifying against the wrong signature
resulting in occasional incorrect exceptions. I updated the
MacroAssembler::debug assertion messages to include the passed in
message. Many of blob declarations were moved into shared code so
that we don't have to replicate code. Some x86 method handles code
was changed to make signatures match.

Currently it passes all the jdk regression tests on sparc but I can't
run any of the others because of version mismatches between the JDK
and the tests. Earlier versions ran those as well they had
previously. I also ran the jruby tests and those seemed clean as well.

Bug id: 7045514 SPARC assembly code for JSR 292 ricochet frames
Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/assembler_sparc.cpp

28 lines changed: 21 ins; 0 del; 7 mod; 4902 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/assembler_sparc.hpp

37 lines changed: 27 ins; 1 del; 9 mod; 2515 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/assembler_sparc.inline.hpp

5 lines changed: 4 ins; 0 del; 1 mod; 839 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/frame_sparc.cpp

2 lines changed: 2 ins; 0 del; 0 mod; 839 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/methodHandles_sparc.cpp

1725 lines changed: 1444 ins; 128 del; 153 mod; 736 unchg

------ ------ ------ ------ --- New Patch Raw src/cpu/sparc/vm/methodHandles_sparc.hpp

224 lines changed: 224 ins; 0 del; 0 mod; 0 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/registerMap_sparc.hpp

2 lines changed: 1 ins; 0 del; 1 mod; 57 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/runtime_sparc.cpp

3 lines changed: 0 ins; 2 del; 1 mod; 158 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/sharedRuntime_sparc.cpp

46 lines changed: 0 ins; 44 del; 2 mod; 3665 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/stubRoutines_sparc.hpp

6 lines changed: 0 ins; 5 del; 1 mod; 101 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/sparc/vm/templateInterpreter_sparc.cpp

1 line changed: 0 ins; 0 del; 1 mod; 2110 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/assembler_x86.cpp

2 lines changed: 1 ins; 0 del; 1 mod; 9579 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/methodHandles_x86.cpp

10 lines changed: 3 ins; 1 del; 6 mod; 2398 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/methodHandles_x86.hpp

8 lines changed: 7 ins; 0 del; 1 mod; 291 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/runtime_x86_32.cpp

3 lines changed: 0 ins; 2 del; 1 mod; 161 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/sharedRuntime_x86_32.cpp

72 lines changed: 0 ins; 70 del; 2 mod; 2958 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/sharedRuntime_x86_64.cpp

75 lines changed: 0 ins; 72 del; 3 mod; 3301 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/stubRoutines_x86_32.hpp

5 lines changed: 0 ins; 5 del; 0 mod; 52 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/stubRoutines_x86_64.hpp

6 lines changed: 0 ins; 5 del; 1 mod; 114 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/compiler/oopMap.cpp

3 lines changed: 2 ins; 0 del; 1 mod; 690 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/opto/runtime.cpp

1 line changed: 1 ins; 0 del; 0 mod; 1298 unchg

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

11 lines changed: 7 ins; 1 del; 3 mod; 1815 unchg

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

1 line changed: 1 ins; 0 del; 0 mod; 450 unchg

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

10 lines changed: 5 ins; 1 del; 4 mod; 3079 unchg

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

5 lines changed: 0 ins; 3 del; 2 mod; 831 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/runtime/sharedRuntime.cpp

69 lines changed: 67 ins; 2 del; 0 mod; 2838 unchg

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/share/vm/runtime/sharedRuntime.hpp

23 lines changed: 8 ins; 6 del; 9 mod; 676 unchg

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