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