equal
deleted
inserted
replaced
116 epc = ExtendedPC(os::Linux::ucontext_get_pc(uc)); |
116 epc = ExtendedPC(os::Linux::ucontext_get_pc(uc)); |
117 if (ret_sp) { |
117 if (ret_sp) { |
118 *ret_sp = os::Linux::ucontext_get_sp(uc); |
118 *ret_sp = os::Linux::ucontext_get_sp(uc); |
119 } |
119 } |
120 if (ret_fp) { |
120 if (ret_fp) { |
121 *ret_fp = os::Linux::ucontext_get_fp(uc); |
121 *ret_fp = (intptr_t*)NULL; |
122 } |
122 } |
123 } else { |
123 } else { |
124 // construct empty ExtendedPC for return value checking |
124 // construct empty ExtendedPC for return value checking |
125 epc = ExtendedPC(NULL); |
125 epc = ExtendedPC(NULL); |
126 if (ret_sp) { |
126 if (ret_sp) { |
134 return epc; |
134 return epc; |
135 } |
135 } |
136 |
136 |
137 frame os::fetch_frame_from_context(void* ucVoid) { |
137 frame os::fetch_frame_from_context(void* ucVoid) { |
138 intptr_t* sp; |
138 intptr_t* sp; |
139 intptr_t* fp; |
139 ExtendedPC epc = fetch_frame_from_context(ucVoid, &sp, NULL); |
140 ExtendedPC epc = fetch_frame_from_context(ucVoid, &sp, &fp); |
140 return frame(sp, frame::unpatchable, epc.pc()); |
141 return frame(sp, fp, epc.pc()); |
|
142 } |
141 } |
143 |
142 |
144 frame os::get_sender_for_C_frame(frame* fr) { |
143 frame os::get_sender_for_C_frame(frame* fr) { |
145 return frame(fr->sender_sp(), fr->link(), fr->sender_pc()); |
144 return frame(fr->sender_sp(), fr->link(), fr->sender_pc()); |
146 } |
145 } |