void frame_saved_regs_zalloc (struct frame_info *fi) { fi->saved_regs = (CORE_ADDR *) frame_obstack_alloc (SIZEOF_FRAME_SAVED_REGS); memset (fi->saved_regs, 0, SIZEOF_FRAME_SAVED_REGS); }
static void mn10300_init_extra_frame_info (int fromleaf, struct frame_info *fi) { if (fi->next) fi->pc = FRAME_SAVED_PC (fi->next); frame_saved_regs_zalloc (fi); fi->extra_info = (struct frame_extra_info *) frame_obstack_alloc (sizeof (struct frame_extra_info)); fi->extra_info->status = 0; fi->extra_info->stack_size = 0; mn10300_analyze_prologue (fi, 0); }
void get_frame_saved_regs (struct frame_info *frame, struct frame_saved_regs *saved_regs_addr) { if (frame->saved_regs == NULL) { frame->saved_regs = (CORE_ADDR *) frame_obstack_alloc (SIZEOF_FRAME_SAVED_REGS); } if (saved_regs_addr == NULL) { struct frame_saved_regs saved_regs; FRAME_FIND_SAVED_REGS (frame, saved_regs); memcpy (frame->saved_regs, &saved_regs, SIZEOF_FRAME_SAVED_REGS); } else { FRAME_FIND_SAVED_REGS (frame, *saved_regs_addr); memcpy (frame->saved_regs, saved_regs_addr, SIZEOF_FRAME_SAVED_REGS); } }
void microblaze_init_extra_frame_info (struct frame_info *fi) { if (fi->next) fi->pc = FRAME_SAVED_PC (fi->next); frame_saved_regs_zalloc (fi); fi->extra_info = (struct frame_extra_info *) frame_obstack_alloc (sizeof (struct frame_extra_info)); fi->extra_info->status = 0; fi->extra_info->framesize = 0; if (PC_IN_CALL_DUMMY (fi->pc, fi->frame, fi->frame)) { /* We need to setup fi->frame here because run_stack_dummy gets it wrong by assuming it's always FP. */ fi->frame = generic_read_register_dummy (fi->pc, fi->frame, SP_REGNUM); } else microblaze_analyze_prologue (fi, 0); }