hotspot/src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp
changeset 25722 72f566374afc
parent 24917 bf961166fa07
child 25723 b07df7835eac
equal deleted inserted replaced
25717:7493b8ac31b7 25722:72f566374afc
   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 }