Code Review for 6921352

Prepared by:twisti on Fri Jan 29 19:01:59 CET 2010
Workspace:/export/home/twisti/mlvm/6921352
Compare against: /export/home/twisti/hotspot-comp/hotspot
Summary of changes: 287 lines changed: 153 ins; 33 del; 101 mod; 21547 unchg
Patch of changes: 6921352.patch
Printable review: 6921352.pdf
Author comments:
When a deoptimization happens at a MethodHandle call site, we need to
restore the preserved SP when we walk the stack. During the stack
walk we don't know yet if the original pc is a MH call site until we
built the caller frame, but we only can build the caller frame when we
load the correct SP, which depends on whether the call site is a MH
call site or not.

To handle this chicken-egg problem we need to introduce a new MH deopt
handler so we can easily determine if the deopt happened at a MH call
site or not.

This is the new CR for the mess that happened with 6917766.
Bug id: Bug Database
Legend: Modified file
Deleted file
New file

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

25 lines changed: 7 ins; 13 del; 5 mod; 3127 unchg

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

7 lines changed: 1 ins; 0 del; 6 mod; 771 unchg

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

26 lines changed: 5 ins; 15 del; 6 mod; 3451 unchg

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

89 lines changed: 61 ins; 5 del; 23 mod; 571 unchg

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

8 lines changed: 8 ins; 0 del; 0 mod; 193 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/cpu/x86/vm/frame_x86.inline.hpp

15 lines changed: 3 ins; 0 del; 12 mod; 282 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/asm/codeBuffer.hpp

7 lines changed: 2 ins; 0 del; 5 mod; 538 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/c1/c1_Compilation.cpp

14 lines changed: 10 ins; 0 del; 4 mod; 522 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/c1/c1_LIRAssembler.hpp

3 lines changed: 0 ins; 0 del; 3 mod; 232 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/nmethod.cpp

21 lines changed: 17 ins; 0 del; 4 mod; 2645 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New Patch Raw src/share/vm/code/nmethod.hpp

33 lines changed: 9 ins; 0 del; 24 mod; 633 unchg

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

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

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

7 lines changed: 6 ins; 0 del; 1 mod; 1847 unchg

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

13 lines changed: 10 ins; 0 del; 3 mod; 1400 unchg

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

14 lines changed: 10 ins; 0 del; 4 mod; 2563 unchg

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