Code Review for 6917766

Prepared by:twisti on Thu Jan 21 19:51:56 CET 2010
Workspace:/export/home/twisti/mlvm/6917766
Compare against: /export/home/twisti/hotspot-comp/hotspot
Summary of changes: 294 lines changed: 145 ins; 51 del; 98 mod; 21109 unchg
Patch of changes: 6917766.patch
Printable review: 6917766.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.
Bug id: 6917766 JSR 292 needs its own deopt handler
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

92 lines changed: 67 ins; 3 del; 22 mod; 574 unchg

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

14 lines changed: 3 ins; 0 del; 11 mod; 283 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

32 lines changed: 9 ins; 0 del; 23 mod; 634 unchg

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

4 lines changed: 4 ins; 0 del; 0 mod; 2773 unchg

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

21 lines changed: 0 ins; 20 del; 1 mod; 1827 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

15 lines changed: 10 ins; 0 del; 5 mod; 2332 unchg

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