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