equal
deleted
inserted
replaced
43 _sp = sp; |
43 _sp = sp; |
44 switch (zeroframe()->type()) { |
44 switch (zeroframe()->type()) { |
45 case ZeroFrame::ENTRY_FRAME: |
45 case ZeroFrame::ENTRY_FRAME: |
46 _pc = StubRoutines::call_stub_return_pc(); |
46 _pc = StubRoutines::call_stub_return_pc(); |
47 _cb = NULL; |
47 _cb = NULL; |
|
48 _deopt_state = not_deoptimized; |
48 break; |
49 break; |
49 |
50 |
50 case ZeroFrame::INTERPRETER_FRAME: |
51 case ZeroFrame::INTERPRETER_FRAME: |
51 _pc = NULL; |
52 _pc = NULL; |
52 _cb = NULL; |
53 _cb = NULL; |
|
54 _deopt_state = not_deoptimized; |
53 break; |
55 break; |
54 |
56 |
55 case ZeroFrame::SHARK_FRAME: |
57 case ZeroFrame::SHARK_FRAME: { |
56 _pc = zero_sharkframe()->pc(); |
58 _pc = zero_sharkframe()->pc(); |
57 _cb = CodeCache::find_blob_unsafe(pc()); |
59 _cb = CodeCache::find_blob_unsafe(pc()); |
|
60 address original_pc = nmethod::get_deopt_original_pc(this); |
|
61 if (original_pc != NULL) { |
|
62 _pc = original_pc; |
|
63 _deopt_state = is_deoptimized; |
|
64 } else { |
|
65 _deopt_state = not_deoptimized; |
|
66 } |
58 break; |
67 break; |
59 |
68 } |
60 case ZeroFrame::FAKE_STUB_FRAME: |
69 case ZeroFrame::FAKE_STUB_FRAME: |
61 _pc = NULL; |
70 _pc = NULL; |
62 _cb = NULL; |
71 _cb = NULL; |
|
72 _deopt_state = not_deoptimized; |
63 break; |
73 break; |
64 |
74 |
65 default: |
75 default: |
66 ShouldNotReachHere(); |
76 ShouldNotReachHere(); |
67 } |
77 } |
68 _deopt_state = not_deoptimized; |
|
69 } |
78 } |
70 |
79 |
71 // Accessors |
80 // Accessors |
72 |
81 |
73 inline intptr_t* frame::sender_sp() const { |
82 inline intptr_t* frame::sender_sp() const { |