-#define POP_FRAME \
-{ register FRAME frame = get_current_frame (); \
- register CORE_ADDR fp; \
- register int regnum; \
- struct frame_saved_regs fsr; \
- struct frame_info *fi; \
- double freg_buffer; \
- fi = get_frame_info (frame); \
- fp = fi->frame; \
- get_frame_saved_regs (fi, &fsr); \
- for (regnum = 31; regnum > 0; regnum--) \
- if (fsr.regs[regnum]) \
- write_register (regnum, read_memory_integer (fsr.regs[regnum], 4)); \
- for (regnum = NUM_REGS - 1; regnum >= FP0_REGNUM ; regnum--) \
- if (fsr.regs[regnum]) \
- { read_memory (fsr.regs[regnum], &freg_buffer, 8); \
- write_register_bytes (REGISTER_BYTE (regnum), &freg_buffer, 8); }\
- if (fsr.regs[IPSW_REGNUM]) \
- write_register (IPSW_REGNUM, \
- read_memory_integer (fsr.regs[IPSW_REGNUM], 4)); \
- if (fsr.regs[SAR_REGNUM]) \
- write_register (SAR_REGNUM, \
- read_memory_integer (fsr.regs[SAR_REGNUM], 4)); \
- if (fsr.regs[PCOQ_TAIL_REGNUM]) \
- write_register (PCOQ_TAIL_REGNUM, \
- read_memory_integer (fsr.regs[PCOQ_TAIL_REGNUM], 4));\
- if (fsr.regs[PCSQ_TAIL_REGNUM]) \
- write_register (PCSQ_TAIL_REGNUM, \
- read_memory_integer (fsr.regs[PCSQ_TAIL_REGNUM], 4));\
- write_register (FP_REGNUM, read_memory_integer (fp, 4)); \
- write_register (SP_REGNUM, fp + 8); \
- flush_cached_frames (); \
- set_current_frame (create_new_frame (read_register (FP_REGNUM),\
- read_pc ())); }