Mercurial > hg > graal-compiler
comparison src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp @ 20804:7848fc12602b
Merge with jdk8u40-b25
author | Gilles Duboscq <gilles.m.duboscq@oracle.com> |
---|---|
date | Tue, 07 Apr 2015 14:58:49 +0200 |
parents | 52b4284cb496 fbc0575cc9e4 |
children |
comparison
equal
deleted
inserted
replaced
20184:84105dcdb05b | 20804:7848fc12602b |
---|---|
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(), frame::unpatchable, fr->sender_pc()); |
146 } | 145 } |
147 | 146 |
148 frame os::current_frame() { | 147 frame os::current_frame() { |
149 fprintf(stderr, "current_frame()"); | |
150 | |
151 intptr_t* sp = StubRoutines::Sparc::flush_callers_register_windows_func()(); | 148 intptr_t* sp = StubRoutines::Sparc::flush_callers_register_windows_func()(); |
152 frame myframe(sp, frame::unpatchable, | 149 frame myframe(sp, frame::unpatchable, |
153 CAST_FROM_FN_PTR(address, os::current_frame)); | 150 CAST_FROM_FN_PTR(address, os::current_frame)); |
154 if (os::is_first_C_frame(&myframe)) { | 151 if (os::is_first_C_frame(&myframe)) { |
155 // stack is not walkable | 152 // stack is not walkable |