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).