OSDN Git Service

2003-01-03 Andrew Cagney <ac131313@redhat.com>
authorcagney <cagney>
Fri, 3 Jan 2003 23:53:46 +0000 (23:53 +0000)
committercagney <cagney>
Fri, 3 Jan 2003 23:53:46 +0000 (23:53 +0000)
* alpha-tdep.c: Use get_frame_saved_regs.
* arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
* h8300-tdep.c, i386-tdep.c, ia64-tdep.c, m68hc11-tdep.c: Ditto.
* m68k-tdep.c, mcore-tdep.c, mips-tdep.c, mn10300-tdep.c: Ditto.
* ns32k-tdep.c, s390-tdep.c, sh-tdep.c, v850-tdep.c: Ditto.
* vax-tdep.c, xstormy16-tdep.c: Ditto.

20 files changed:
gdb/ChangeLog
gdb/alpha-tdep.c
gdb/arm-tdep.c
gdb/avr-tdep.c
gdb/cris-tdep.c
gdb/d10v-tdep.c
gdb/h8300-tdep.c
gdb/i386-tdep.c
gdb/ia64-tdep.c
gdb/m68hc11-tdep.c
gdb/m68k-tdep.c
gdb/mcore-tdep.c
gdb/mips-tdep.c
gdb/mn10300-tdep.c
gdb/ns32k-tdep.c
gdb/s390-tdep.c
gdb/sh-tdep.c
gdb/v850-tdep.c
gdb/vax-tdep.c
gdb/xstormy16-tdep.c

index 3bff968..0ce2440 100644 (file)
@@ -1,3 +1,12 @@
+2003-01-03  Andrew Cagney  <ac131313@redhat.com>
+
+       * alpha-tdep.c: Use get_frame_saved_regs.
+       * arm-tdep.c, avr-tdep.c, cris-tdep.c, d10v-tdep.c: Ditto.
+       * h8300-tdep.c, i386-tdep.c, ia64-tdep.c, m68hc11-tdep.c: Ditto.
+       * m68k-tdep.c, mcore-tdep.c, mips-tdep.c, mn10300-tdep.c: Ditto.
+       * ns32k-tdep.c, s390-tdep.c, sh-tdep.c, v850-tdep.c: Ditto.
+       * vax-tdep.c, xstormy16-tdep.c: Ditto.
+
 2003-01-03  Mark Kettenis  <kettenis@gnu.org>
 
        * configure.in: Remove all use of the SUBDIRS variable; add
index 1459505..ea68302 100644 (file)
@@ -389,14 +389,14 @@ alpha_find_saved_regs (struct frame_info *frame)
       for (ireg = 0; ireg < 32; ireg++)
        {
          reg_position = sigcontext_addr + SIGFRAME_REGSAVE_OFF + ireg * 8;
-         frame->saved_regs[ireg] = reg_position;
+         get_frame_saved_regs (frame)[ireg] = reg_position;
        }
       for (ireg = 0; ireg < 32; ireg++)
        {
          reg_position = sigcontext_addr + SIGFRAME_FPREGSAVE_OFF + ireg * 8;
-         frame->saved_regs[FP0_REGNUM + ireg] = reg_position;
+         get_frame_saved_regs (frame)[FP0_REGNUM + ireg] = reg_position;
        }
-      frame->saved_regs[PC_REGNUM] = sigcontext_addr + SIGFRAME_PC_OFF;
+      get_frame_saved_regs (frame)[PC_REGNUM] = sigcontext_addr + SIGFRAME_PC_OFF;
       return;
     }
 
@@ -419,7 +419,7 @@ alpha_find_saved_regs (struct frame_info *frame)
      register number.  */
   if (mask & (1 << returnreg))
     {
-      frame->saved_regs[returnreg] = reg_position;
+      get_frame_saved_regs (frame)[returnreg] = reg_position;
       reg_position += 8;
       mask &= ~(1 << returnreg);       /* Clear bit for RA so we
                                           don't save again later. */
@@ -428,7 +428,7 @@ alpha_find_saved_regs (struct frame_info *frame)
   for (ireg = 0; ireg <= 31; ++ireg)
     if (mask & (1 << ireg))
       {
-       frame->saved_regs[ireg] = reg_position;
+       get_frame_saved_regs (frame)[ireg] = reg_position;
        reg_position += 8;
       }
 
@@ -441,19 +441,19 @@ alpha_find_saved_regs (struct frame_info *frame)
   for (ireg = 0; ireg <= 31; ++ireg)
     if (mask & (1 << ireg))
       {
-       frame->saved_regs[FP0_REGNUM + ireg] = reg_position;
+       get_frame_saved_regs (frame)[FP0_REGNUM + ireg] = reg_position;
        reg_position += 8;
       }
 
-  frame->saved_regs[PC_REGNUM] = frame->saved_regs[returnreg];
+  get_frame_saved_regs (frame)[PC_REGNUM] = get_frame_saved_regs (frame)[returnreg];
 }
 
 static void
 alpha_frame_init_saved_regs (struct frame_info *fi)
 {
-  if (fi->saved_regs == NULL)
+  if (get_frame_saved_regs (fi) == NULL)
     alpha_find_saved_regs (fi);
-  fi->saved_regs[SP_REGNUM] = fi->frame;
+  get_frame_saved_regs (fi)[SP_REGNUM] = fi->frame;
 }
 
 static CORE_ADDR
@@ -475,10 +475,10 @@ read_next_frame_reg (struct frame_info *fi, int regno)
        return fi->frame;
       else
        {
-         if (fi->saved_regs == NULL)
+         if (get_frame_saved_regs (fi) == NULL)
            alpha_find_saved_regs (fi);
-         if (fi->saved_regs[regno])
-           return read_memory_integer (fi->saved_regs[regno], 8);
+         if (get_frame_saved_regs (fi)[regno])
+           return read_memory_integer (get_frame_saved_regs (fi)[regno], 8);
        }
     }
   return read_register (regno);
@@ -984,7 +984,9 @@ alpha_init_extra_frame_info (int fromleaf, struct frame_info *frame)
   frame->extra_info = (struct frame_extra_info *)
     frame_obstack_alloc (sizeof (struct frame_extra_info));
 
-  frame->saved_regs = NULL;
+  /* NOTE: cagney/2003-01-03: No need to set saved_regs to NULL,
+     always NULL by default.  */
+  /* frame->saved_regs = NULL; */
   frame->extra_info->localoff = 0;
   frame->extra_info->pc_reg = ALPHA_RA_REGNUM;
   frame->extra_info->proc_desc = proc_desc == &temp_proc_desc ? 0 : proc_desc;
@@ -1028,12 +1030,11 @@ alpha_init_extra_frame_info (int fromleaf, struct frame_info *frame)
                                    (CORE_ADDR *) NULL, (CORE_ADDR *) NULL);
          if (!PC_IN_SIGTRAMP (get_frame_pc (frame), name))
            {
-             frame->saved_regs = (CORE_ADDR *)
-               frame_obstack_alloc (SIZEOF_FRAME_SAVED_REGS);
-             memcpy (frame->saved_regs, temp_saved_regs,
+             frame_saved_regs_zalloc (frame);
+             memcpy (get_frame_saved_regs (frame), temp_saved_regs,
                      SIZEOF_FRAME_SAVED_REGS);
-             frame->saved_regs[PC_REGNUM]
-               = frame->saved_regs[ALPHA_RA_REGNUM];
+             get_frame_saved_regs (frame)[PC_REGNUM]
+               = get_frame_saved_regs (frame)[ALPHA_RA_REGNUM];
            }
        }
     }
@@ -1302,19 +1303,19 @@ alpha_pop_frame (void)
      For now, we don't save a copy... */
 
   write_register (PC_REGNUM, FRAME_SAVED_PC (frame));
-  if (frame->saved_regs == NULL)
+  if (get_frame_saved_regs (frame) == NULL)
     alpha_find_saved_regs (frame);
   if (proc_desc)
     {
       for (regnum = 32; --regnum >= 0;)
        if (PROC_REG_MASK (proc_desc) & (1 << regnum))
          write_register (regnum,
-                         read_memory_integer (frame->saved_regs[regnum],
+                         read_memory_integer (get_frame_saved_regs (frame)[regnum],
                                               8));
       for (regnum = 32; --regnum >= 0;)
        if (PROC_FREG_MASK (proc_desc) & (1 << regnum))
          write_register (regnum + FP0_REGNUM,
-          read_memory_integer (frame->saved_regs[regnum + FP0_REGNUM], 8));
+          read_memory_integer (get_frame_saved_regs (frame)[regnum + FP0_REGNUM], 8));
     }
   write_register (SP_REGNUM, new_sp);
   flush_cached_frames ();
index 75c1824..b82f9e7 100644 (file)
@@ -591,7 +591,7 @@ thumb_scan_prologue (struct frame_info *fi)
            if (mask & (1 << regno))
              {
                fi->extra_info->framesize += 4;
-               fi->saved_regs[saved_reg[regno]] =
+               get_frame_saved_regs (fi)[saved_reg[regno]] =
                  -(fi->extra_info->framesize);
                /* Reset saved register map.  */
                saved_reg[regno] = regno;
@@ -670,7 +670,7 @@ check_prologue_cache (struct frame_info *fi)
       fi->extra_info->framesize = prologue_cache.extra_info->framesize;
       fi->extra_info->frameoffset = prologue_cache.extra_info->frameoffset;
       for (i = 0; i < NUM_REGS + NUM_PSEUDO_REGS; i++)
-       fi->saved_regs[i] = prologue_cache.saved_regs[i];
+       get_frame_saved_regs (fi)[i] = get_frame_saved_regs (&prologue_cache)[i];
       return 1;
     }
   else
@@ -691,7 +691,7 @@ save_prologue_cache (struct frame_info *fi)
   prologue_cache.extra_info->frameoffset = fi->extra_info->frameoffset;
 
   for (i = 0; i < NUM_REGS + NUM_PSEUDO_REGS; i++)
-    prologue_cache.saved_regs[i] = fi->saved_regs[i];
+    get_frame_saved_regs (&prologue_cache)[i] = get_frame_saved_regs (fi)[i];
 }
 
 
@@ -890,7 +890,7 @@ arm_scan_prologue (struct frame_info *fi)
            if (mask & (1 << regno))
              {
                sp_offset -= 4;
-               fi->saved_regs[regno] = sp_offset;
+               get_frame_saved_regs (fi)[regno] = sp_offset;
              }
        }
       else if ((insn & 0xffffc000) == 0xe54b0000 ||    /* strb rx,[r11,#-n] */
@@ -926,7 +926,7 @@ arm_scan_prologue (struct frame_info *fi)
        {
          sp_offset -= 12;
          regno = ARM_F0_REGNUM + ((insn >> 12) & 0x07);
-         fi->saved_regs[regno] = sp_offset;
+         get_frame_saved_regs (fi)[regno] = sp_offset;
        }
       else if ((insn & 0xffbf0fff) == 0xec2d0200)      /* sfmfd f0, 4, [sp!] */
        {
@@ -953,7 +953,7 @@ arm_scan_prologue (struct frame_info *fi)
          for (; fp_start_reg < fp_bound_reg; fp_start_reg++)
            {
              sp_offset -= 12;
-             fi->saved_regs[fp_start_reg++] = sp_offset;
+             get_frame_saved_regs (fi)[fp_start_reg++] = sp_offset;
            }
        }
       else if ((insn & 0xf0000000) != 0xe0000000)
@@ -997,14 +997,14 @@ arm_find_callers_reg (struct frame_info *fi, int regnum)
        {
          return deprecated_read_register_dummy (get_frame_pc (fi), fi->frame, regnum);
        }
-      else if (fi->saved_regs[regnum] != 0)
+      else if (get_frame_saved_regs (fi)[regnum] != 0)
        {
          /* NOTE: cagney/2002-05-03: This would normally need to
              handle ARM_SP_REGNUM as a special case as, according to
              the frame.h comments, saved_regs[SP_REGNUM] contains the
              SP value not its address.  It appears that the ARM isn't
              doing this though.  */
-         return read_memory_integer (fi->saved_regs[regnum],
+         return read_memory_integer (get_frame_saved_regs (fi)[regnum],
                                      REGISTER_RAW_SIZE (regnum));
        }
     }
@@ -1086,7 +1086,7 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi)
   int reg;
   CORE_ADDR sp;
 
-  if (fi->saved_regs == NULL)
+  if (get_frame_saved_regs (fi) == NULL)
     frame_saved_regs_zalloc (fi);
 
   fi->extra_info = (struct frame_extra_info *)
@@ -1099,7 +1099,7 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi)
   if (fi->next)
     deprecated_update_frame_pc_hack (fi, FRAME_SAVED_PC (fi->next));
 
-  memset (fi->saved_regs, '\000', sizeof fi->saved_regs);
+  memset (get_frame_saved_regs (fi), '\000', sizeof get_frame_saved_regs (fi));
 
   /* Compute stack pointer for this frame.  We use this value for both
      the sigtramp and call dummy cases.  */
@@ -1135,12 +1135,12 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi)
       && ((get_frame_type (fi) == SIGTRAMP_FRAME) || PC_IN_SIGTRAMP (get_frame_pc (fi), (char *)0)))
     {
       for (reg = 0; reg < NUM_REGS; reg++)
-       fi->saved_regs[reg] = SIGCONTEXT_REGISTER_ADDRESS (sp, get_frame_pc (fi), reg);
+       get_frame_saved_regs (fi)[reg] = SIGCONTEXT_REGISTER_ADDRESS (sp, get_frame_pc (fi), reg);
 
       /* FIXME: What about thumb mode?  */
       fi->extra_info->framereg = ARM_SP_REGNUM;
       fi->frame =
-       read_memory_integer (fi->saved_regs[fi->extra_info->framereg],
+       read_memory_integer (get_frame_saved_regs (fi)[fi->extra_info->framereg],
                             REGISTER_RAW_SIZE (fi->extra_info->framereg));
       fi->extra_info->framesize = 0;
       fi->extra_info->frameoffset = 0;
@@ -1162,10 +1162,9 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi)
        {
          /* not the innermost frame */
          /* If we have an FP, the callee saved it.  */
-         if (fi->next->saved_regs[fi->extra_info->framereg] != 0)
+         if (get_frame_saved_regs (get_next_frame (fi))[fi->extra_info->framereg] != 0)
            fi->frame =
-             read_memory_integer (fi->next
-                                  ->saved_regs[fi->extra_info->framereg], 4);
+             read_memory_integer (get_frame_saved_regs (get_next_frame (fi))[fi->extra_info->framereg], 4);
          else if (fromleaf)
            /* If we were called by a frameless fn.  then our frame is
               still in the frame pointer register on the board...  */
@@ -1175,9 +1174,9 @@ arm_init_extra_frame_info (int fromleaf, struct frame_info *fi)
       /* Calculate actual addresses of saved registers using offsets
          determined by arm_scan_prologue.  */
       for (reg = 0; reg < NUM_REGS; reg++)
-       if (fi->saved_regs[reg] != 0)
-         fi->saved_regs[reg] += (fi->frame + fi->extra_info->framesize
-                                 - fi->extra_info->frameoffset);
+       if (get_frame_saved_regs (fi)[reg] != 0)
+         get_frame_saved_regs (fi)[reg] += (fi->frame + fi->extra_info->framesize
+                                            - fi->extra_info->frameoffset);
     }
 }
 
@@ -1200,7 +1199,7 @@ arm_frame_saved_pc (struct frame_info *fi)
   if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (fi), fi->frame - fi->extra_info->frameoffset,
                        fi->frame))
     {
-      return read_memory_integer (fi->saved_regs[ARM_PC_REGNUM],
+      return read_memory_integer (get_frame_saved_regs (fi)[ARM_PC_REGNUM],
                                  REGISTER_RAW_SIZE (ARM_PC_REGNUM));
     }
   else
@@ -1232,7 +1231,7 @@ static void
 arm_frame_init_saved_regs (struct frame_info *fip)
 {
 
-  if (fip->saved_regs)
+  if (get_frame_saved_regs (fip))
     return;
 
   arm_init_extra_frame_info (0, fip);
@@ -1531,9 +1530,9 @@ arm_pop_frame (void)
     }
 
   for (regnum = 0; regnum < NUM_REGS; regnum++)
-    if (frame->saved_regs[regnum] != 0)
+    if (get_frame_saved_regs (frame)[regnum] != 0)
       write_register (regnum,
-                 read_memory_integer (frame->saved_regs[regnum],
+                 read_memory_integer (get_frame_saved_regs (frame)[regnum],
                                       REGISTER_RAW_SIZE (regnum)));
 
   write_register (ARM_PC_REGNUM, FRAME_SAVED_PC (frame));
@@ -3039,8 +3038,8 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   /* We can't use SIZEOF_FRAME_SAVED_REGS here, since that still
      references the old architecture vector, not the one we are
      building here.  */
-  if (prologue_cache.saved_regs != NULL)
-    xfree (prologue_cache.saved_regs);
+  if (get_frame_saved_regs (&prologue_cache) != NULL)
+    xfree (get_frame_saved_regs (&prologue_cache));
 
   /* We can't use NUM_REGS nor NUM_PSEUDO_REGS here, since that still
      references the old architecture vector, not the one we are
index 16488f5..d1b1416 100644 (file)
@@ -593,13 +593,13 @@ avr_scan_prologue (struct frame_info *fi)
       if (num_pushes)
        {
          int from;
-         fi->saved_regs[AVR_FP_REGNUM + 1] = num_pushes;
+         get_frame_saved_regs (fi)[AVR_FP_REGNUM + 1] = num_pushes;
          if (num_pushes >= 2)
-           fi->saved_regs[AVR_FP_REGNUM] = num_pushes - 1;
+           get_frame_saved_regs (fi)[AVR_FP_REGNUM] = num_pushes - 1;
          i = 0;
          for (from = AVR_LAST_PUSHED_REGNUM + 1 - (num_pushes - 2);
               from <= AVR_LAST_PUSHED_REGNUM; ++from)
-           fi->saved_regs[from] = ++i;
+           get_frame_saved_regs (fi)[from] = ++i;
        }
       fi->extra_info->locals_size = loc_size;
       fi->extra_info->framesize = loc_size + num_pushes;
@@ -622,15 +622,15 @@ avr_scan_prologue (struct frame_info *fi)
       if (memcmp (prologue, img, sizeof (img)) == 0)
        {
          vpc += sizeof (img);
-         fi->saved_regs[0] = 2;
-         fi->saved_regs[1] = 1;
+         get_frame_saved_regs (fi)[0] = 2;
+         get_frame_saved_regs (fi)[1] = 1;
          fi->extra_info->framesize += 3;
        }
       else if (memcmp (img + 1, prologue, sizeof (img) - 1) == 0)
        {
          vpc += sizeof (img) - 1;
-         fi->saved_regs[0] = 2;
-         fi->saved_regs[1] = 1;
+         get_frame_saved_regs (fi)[0] = 2;
+         get_frame_saved_regs (fi)[1] = 1;
          fi->extra_info->framesize += 3;
        }
     }
@@ -646,7 +646,7 @@ avr_scan_prologue (struct frame_info *fi)
          /* Bits 4-9 contain a mask for registers R0-R32. */
          regno = (insn & 0x1f0) >> 4;
          ++fi->extra_info->framesize;
-         fi->saved_regs[regno] = fi->extra_info->framesize;
+         get_frame_saved_regs (fi)[regno] = fi->extra_info->framesize;
          scan_stage = 1;
        }
       else
@@ -776,11 +776,11 @@ avr_init_extra_frame_info (int fromleaf, struct frame_info *fi)
          for (; next_fi; next_fi = next_fi->next)
            {
              /* look for saved AVR_FP_REGNUM */
-             if (next_fi->saved_regs[AVR_FP_REGNUM] && !fp)
-               fp = next_fi->saved_regs[AVR_FP_REGNUM];
+             if (get_frame_saved_regs (next_fi)[AVR_FP_REGNUM] && !fp)
+               fp = get_frame_saved_regs (next_fi)[AVR_FP_REGNUM];
              /* look for saved AVR_FP_REGNUM + 1 */
-             if (next_fi->saved_regs[AVR_FP_REGNUM + 1] && !fp1)
-               fp1 = next_fi->saved_regs[AVR_FP_REGNUM + 1];
+             if (get_frame_saved_regs (next_fi)[AVR_FP_REGNUM + 1] && !fp1)
+               fp1 = get_frame_saved_regs (next_fi)[AVR_FP_REGNUM + 1];
            }
          fp_low = (fp ? read_memory_unsigned_integer (avr_make_saddr (fp), 1)
                    : read_register (AVR_FP_REGNUM)) & 0xff;
@@ -815,8 +815,8 @@ avr_init_extra_frame_info (int fromleaf, struct frame_info *fi)
       /* Resolve a pushed registers addresses */
       for (i = 0; i < NUM_REGS; i++)
        {
-         if (fi->saved_regs[i])
-           fi->saved_regs[i] = addr - fi->saved_regs[i];
+         if (get_frame_saved_regs (fi)[i])
+           get_frame_saved_regs (fi)[i] = addr - get_frame_saved_regs (fi)[i];
        }
     }
 }
@@ -844,13 +844,13 @@ avr_pop_frame (void)
        {
          /* Don't forget AVR_SP_REGNUM in a frame_saved_regs struct is the
             actual value we want, not the address of the value we want.  */
-         if (frame->saved_regs[regnum] && regnum != AVR_SP_REGNUM)
+         if (get_frame_saved_regs (frame)[regnum] && regnum != AVR_SP_REGNUM)
            {
-             saddr = avr_make_saddr (frame->saved_regs[regnum]);
+             saddr = avr_make_saddr (get_frame_saved_regs (frame)[regnum]);
              write_register (regnum,
                              read_memory_unsigned_integer (saddr, 1));
            }
-         else if (frame->saved_regs[regnum] && regnum == AVR_SP_REGNUM)
+         else if (get_frame_saved_regs (frame)[regnum] && regnum == AVR_SP_REGNUM)
            write_register (regnum, frame->frame + 2);
        }
 
index 52f20bb..5301355 100644 (file)
@@ -501,10 +501,10 @@ cris_examine (CORE_ADDR ip, CORE_ADDR limit, struct frame_info *fi,
 
   /* We only want to know the end of the prologue when fi->saved_regs == 0.
      When the saved registers are allocated full information is required.  */
-  if (fi->saved_regs)
+  if (get_frame_saved_regs (fi))
     {
       for (regno = 0; regno < NUM_REGS; regno++)
-        fi->saved_regs[regno] = 0;
+        get_frame_saved_regs (fi)[regno] = 0;
     }
  
   /* Find the prologue instructions.  */
@@ -676,34 +676,34 @@ cris_examine (CORE_ADDR ip, CORE_ADDR limit, struct frame_info *fi,
 
   /* We only want to know the end of the prologue when
      fi->saved_regs == 0.  */ 
-  if (!fi->saved_regs)
+  if (!get_frame_saved_regs (fi))
     return ip;
 
   if (have_fp)
     {
-      fi->saved_regs[FP_REGNUM] = get_frame_base (fi);
+      get_frame_saved_regs (fi)[FP_REGNUM] = get_frame_base (fi);
       
       /* Calculate the addresses.  */
       for (regno = regsave; regno >= 0; regno--)
         {
-          fi->saved_regs[regno] = get_frame_base (fi) - val;
+          get_frame_saved_regs (fi)[regno] = get_frame_base (fi) - val;
           val -= 4;
         }
       if (fi->extra_info->leaf_function)
         {
           /* Set the register SP to contain the stack pointer of 
              the caller.  */
-          fi->saved_regs[SP_REGNUM] = get_frame_base (fi) + 4;
+          get_frame_saved_regs (fi)[SP_REGNUM] = get_frame_base (fi) + 4;
         }
       else
         {
           /* Set the register SP to contain the stack pointer of 
              the caller.  */
-          fi->saved_regs[SP_REGNUM] = get_frame_base (fi) + 8;
+          get_frame_saved_regs (fi)[SP_REGNUM] = get_frame_base (fi) + 8;
       
           /* Set the register SRP to contain the return address of 
              the caller.  */
-          fi->saved_regs[SRP_REGNUM] = get_frame_base (fi) + 4;
+          get_frame_saved_regs (fi)[SRP_REGNUM] = get_frame_base (fi) + 4;
         }
     }
   return ip;
@@ -743,7 +743,7 @@ cris_skip_prologue_main (CORE_ADDR pc, int frameless_p)
   /* frame_info now contains dynamic memory.  Since fi is a dummy here,
      I use static memory for extra_info, and don't bother allocating
      memory for saved_regs.  */
-  fi.saved_regs = 0;
+  memset (&fi, 0, sizeof (fi));
   fi.extra_info = &fei;
 
   /* If there is no symbol information then sal.end == 0, and we end up
@@ -1164,7 +1164,7 @@ cris_frame_init_saved_regs (struct frame_info *fi)
   register int frameless_p = 0; 
 
   /* Has this frame's registers already been initialized?  */
-  if (fi->saved_regs)
+  if (get_frame_saved_regs (fi))
     return;
 
   frame_saved_regs_zalloc (fi);
@@ -1231,11 +1231,11 @@ cris_init_extra_frame_info (int fromleaf, struct frame_info *fi)
 
       /* Check fromleaf/frameless_function_invocation.  (FIXME)  */
 
-      if (fi->saved_regs[SRP_REGNUM] != 0)
+      if (get_frame_saved_regs (fi)[SRP_REGNUM] != 0)
         {
           /* SRP was saved on the stack; non-leaf function.  */
           fi->extra_info->return_pc =
-            read_memory_integer (fi->saved_regs[SRP_REGNUM], 
+            read_memory_integer (get_frame_saved_regs (fi)[SRP_REGNUM], 
                                  REGISTER_RAW_SIZE (SRP_REGNUM));
         }
       else
@@ -1533,30 +1533,30 @@ cris_pop_frame (void)
          after SP was saved.  */
       for (regno = 0; regno < FP_REGNUM; regno++)
         {
-          if (fi->saved_regs[regno])
+          if (get_frame_saved_regs (fi)[regno])
             {
               write_register (regno, 
-                              read_memory_integer (fi->saved_regs[regno], 4));
+                              read_memory_integer (get_frame_saved_regs (fi)[regno], 4));
             }
         }
      
-      if (fi->saved_regs[FP_REGNUM])
+      if (get_frame_saved_regs (fi)[FP_REGNUM])
         {
           /* Pop the frame pointer (R8).  It was pushed before SP 
              was saved.  */
           write_register (FP_REGNUM, 
-                          read_memory_integer (fi->saved_regs[FP_REGNUM], 4));
+                          read_memory_integer (get_frame_saved_regs (fi)[FP_REGNUM], 4));
           stack_offset += 4;
 
           /* Not a leaf function.  */
-          if (fi->saved_regs[SRP_REGNUM])
+          if (get_frame_saved_regs (fi)[SRP_REGNUM])
             {     
               /* SRP was pushed before SP was saved.  */
               stack_offset += 4;
             }
       
           /* Restore the SP and adjust for R8 and (possibly) SRP.  */
-          write_register (SP_REGNUM, fi->saved_regs[FP_REGNUM] + stack_offset);
+          write_register (SP_REGNUM, get_frame_saved_regs (fi)[FP_REGNUM] + stack_offset);
         } 
       else
         {
index 24bb14a..2012cea 100644 (file)
@@ -555,23 +555,23 @@ do_d10v_pop_frame (struct frame_info *fi)
   /* now update the current registers with the old values */
   for (regnum = A0_REGNUM; regnum < A0_REGNUM + NR_A_REGS; regnum++)
     {
-      if (fi->saved_regs[regnum])
+      if (get_frame_saved_regs (fi)[regnum])
        {
-         read_memory (fi->saved_regs[regnum], raw_buffer, REGISTER_RAW_SIZE (regnum));
+         read_memory (get_frame_saved_regs (fi)[regnum], raw_buffer, REGISTER_RAW_SIZE (regnum));
          deprecated_write_register_bytes (REGISTER_BYTE (regnum), raw_buffer,
                                           REGISTER_RAW_SIZE (regnum));
        }
     }
   for (regnum = 0; regnum < SP_REGNUM; regnum++)
     {
-      if (fi->saved_regs[regnum])
+      if (get_frame_saved_regs (fi)[regnum])
        {
-         write_register (regnum, read_memory_unsigned_integer (fi->saved_regs[regnum], REGISTER_RAW_SIZE (regnum)));
+         write_register (regnum, read_memory_unsigned_integer (get_frame_saved_regs (fi)[regnum], REGISTER_RAW_SIZE (regnum)));
        }
     }
-  if (fi->saved_regs[PSW_REGNUM])
+  if (get_frame_saved_regs (fi)[PSW_REGNUM])
     {
-      write_register (PSW_REGNUM, read_memory_unsigned_integer (fi->saved_regs[PSW_REGNUM], REGISTER_RAW_SIZE (PSW_REGNUM)));
+      write_register (PSW_REGNUM, read_memory_unsigned_integer (get_frame_saved_regs (fi)[PSW_REGNUM], REGISTER_RAW_SIZE (PSW_REGNUM)));
     }
 
   write_register (PC_REGNUM, read_register (LR_REGNUM));
@@ -703,16 +703,16 @@ d10v_frame_chain (struct frame_info *fi)
        return (CORE_ADDR) 0;
     }
 
-  if (!fi->saved_regs[FP_REGNUM])
+  if (!get_frame_saved_regs (fi)[FP_REGNUM])
     {
-      if (!fi->saved_regs[SP_REGNUM]
-         || fi->saved_regs[SP_REGNUM] == STACK_START)
+      if (!get_frame_saved_regs (fi)[SP_REGNUM]
+         || get_frame_saved_regs (fi)[SP_REGNUM] == STACK_START)
        return (CORE_ADDR) 0;
 
-      return fi->saved_regs[SP_REGNUM];
+      return get_frame_saved_regs (fi)[SP_REGNUM];
     }
 
-  addr = read_memory_unsigned_integer (fi->saved_regs[FP_REGNUM],
+  addr = read_memory_unsigned_integer (get_frame_saved_regs (fi)[FP_REGNUM],
                                       REGISTER_RAW_SIZE (FP_REGNUM));
   if (addr == 0)
     return (CORE_ADDR) 0;
@@ -732,7 +732,7 @@ prologue_find_regs (unsigned short op, struct frame_info *fi, CORE_ADDR addr)
     {
       n = (op & 0x1E0) >> 5;
       next_addr -= 2;
-      fi->saved_regs[n] = next_addr;
+      get_frame_saved_regs (fi)[n] = next_addr;
       return 1;
     }
 
@@ -741,8 +741,8 @@ prologue_find_regs (unsigned short op, struct frame_info *fi, CORE_ADDR addr)
     {
       n = (op & 0x1E0) >> 5;
       next_addr -= 4;
-      fi->saved_regs[n] = next_addr;
-      fi->saved_regs[n + 1] = next_addr + 2;
+      get_frame_saved_regs (fi)[n] = next_addr;
+      get_frame_saved_regs (fi)[n + 1] = next_addr + 2;
       return 1;
     }
 
@@ -771,7 +771,7 @@ prologue_find_regs (unsigned short op, struct frame_info *fi, CORE_ADDR addr)
   if ((op & 0x7E1F) == 0x681E)
     {
       n = (op & 0x1E0) >> 5;
-      fi->saved_regs[n] = next_addr;
+      get_frame_saved_regs (fi)[n] = next_addr;
       return 1;
     }
 
@@ -779,8 +779,8 @@ prologue_find_regs (unsigned short op, struct frame_info *fi, CORE_ADDR addr)
   if ((op & 0x7E3F) == 0x3A1E)
     {
       n = (op & 0x1E0) >> 5;
-      fi->saved_regs[n] = next_addr;
-      fi->saved_regs[n + 1] = next_addr + 2;
+      get_frame_saved_regs (fi)[n] = next_addr;
+      get_frame_saved_regs (fi)[n + 1] = next_addr + 2;
       return 1;
     }
 
@@ -802,7 +802,7 @@ d10v_frame_init_saved_regs (struct frame_info *fi)
   int i;
 
   fp = fi->frame;
-  memset (fi->saved_regs, 0, SIZEOF_FRAME_SAVED_REGS);
+  memset (get_frame_saved_regs (fi), 0, SIZEOF_FRAME_SAVED_REGS);
   next_addr = 0;
 
   pc = get_pc_function_start (get_frame_pc (fi));
@@ -825,15 +825,15 @@ d10v_frame_init_saved_regs (struct frame_info *fi)
              /* st  rn, @(offset,sp) */
              short offset = op & 0xFFFF;
              short n = (op >> 20) & 0xF;
-             fi->saved_regs[n] = next_addr + offset;
+             get_frame_saved_regs (fi)[n] = next_addr + offset;
            }
          else if ((op & 0x3F1F0000) == 0x350F0000)
            {
              /* st2w  rn, @(offset,sp) */
              short offset = op & 0xFFFF;
              short n = (op >> 20) & 0xF;
-             fi->saved_regs[n] = next_addr + offset;
-             fi->saved_regs[n + 1] = next_addr + offset + 2;
+             get_frame_saved_regs (fi)[n] = next_addr + offset;
+             get_frame_saved_regs (fi)[n + 1] = next_addr + offset + 2;
            }
          else
            break;
@@ -864,15 +864,15 @@ d10v_frame_init_saved_regs (struct frame_info *fi)
     fp = d10v_read_sp ();
 
   for (i = 0; i < NUM_REGS - 1; i++)
-    if (fi->saved_regs[i])
+    if (get_frame_saved_regs (fi)[i])
       {
-       fi->saved_regs[i] = fp - (next_addr - fi->saved_regs[i]);
+       get_frame_saved_regs (fi)[i] = fp - (next_addr - get_frame_saved_regs (fi)[i]);
       }
 
-  if (fi->saved_regs[LR_REGNUM])
+  if (get_frame_saved_regs (fi)[LR_REGNUM])
     {
       CORE_ADDR return_pc 
-       = read_memory_unsigned_integer (fi->saved_regs[LR_REGNUM], 
+       = read_memory_unsigned_integer (get_frame_saved_regs (fi)[LR_REGNUM], 
                                        REGISTER_RAW_SIZE (LR_REGNUM));
       fi->extra_info->return_pc = d10v_make_iaddr (return_pc);
     }
@@ -882,18 +882,18 @@ d10v_frame_init_saved_regs (struct frame_info *fi)
     }
 
   /* The SP is not normally (ever?) saved, but check anyway */
-  if (!fi->saved_regs[SP_REGNUM])
+  if (!get_frame_saved_regs (fi)[SP_REGNUM])
     {
       /* if the FP was saved, that means the current FP is valid, */
       /* otherwise, it isn't being used, so we use the SP instead */
       if (uses_frame)
-       fi->saved_regs[SP_REGNUM] 
+       get_frame_saved_regs (fi)[SP_REGNUM] 
          = d10v_read_fp () + fi->extra_info->size;
       else
        {
-         fi->saved_regs[SP_REGNUM] = fp + fi->extra_info->size;
+         get_frame_saved_regs (fi)[SP_REGNUM] = fp + fi->extra_info->size;
          fi->extra_info->frameless = 1;
-         fi->saved_regs[FP_REGNUM] = 0;
+         get_frame_saved_regs (fi)[FP_REGNUM] = 0;
        }
     }
 }
index da500c6..4719095 100644 (file)
@@ -464,7 +464,7 @@ h8300_frame_init_saved_regs (struct frame_info *fi)
 {
   CORE_ADDR func_addr, func_end;
 
-  if (!fi->saved_regs)
+  if (!get_frame_saved_regs (fi))
     {
       frame_saved_regs_zalloc (fi);
 
@@ -475,7 +475,7 @@ h8300_frame_init_saved_regs (struct frame_info *fi)
          struct symtab_and_line sal = find_pc_line (func_addr, 0);
          CORE_ADDR limit = (sal.end && sal.end < get_frame_pc (fi)) ? sal.end : get_frame_pc (fi);
          /* This will fill in fields in fi. */
-         h8300_examine_prologue (func_addr, limit, fi->frame, fi->saved_regs, fi);
+         h8300_examine_prologue (func_addr, limit, fi->frame, get_frame_saved_regs (fi), fi);
        }
       /* Else we're out of luck (can't debug completely stripped code). 
         FIXME. */
@@ -500,7 +500,7 @@ h8300_frame_chain (struct frame_info *thisframe)
                                        E_PC_REGNUM);
       return thisframe->frame;
     }
-  return thisframe->saved_regs[E_SP_REGNUM];
+  return get_frame_saved_regs (thisframe)[E_SP_REGNUM];
 }
 
 /* Return the saved PC from this frame.
@@ -757,11 +757,11 @@ h8300_pop_frame (void)
        {
          /* Don't forget E_SP_REGNUM is a frame_saved_regs struct is the
             actual value we want, not the address of the value we want.  */
-         if (frame->saved_regs[regno] && regno != E_SP_REGNUM)
+         if (get_frame_saved_regs (frame)[regno] && regno != E_SP_REGNUM)
            write_register (regno,
-                           read_memory_integer (frame->saved_regs[regno],
+                           read_memory_integer (get_frame_saved_regs (frame)[regno],
                                                 BINWORD));
-         else if (frame->saved_regs[regno] && regno == E_SP_REGNUM)
+         else if (get_frame_saved_regs (frame)[regno] && regno == E_SP_REGNUM)
            write_register (regno, frame->frame + 2 * BINWORD);
        }
 
index e7b166f..2654396 100644 (file)
@@ -707,7 +707,7 @@ i386_frame_init_saved_regs (struct frame_info *fip)
   CORE_ADDR pc;
   int i;
 
-  if (fip->saved_regs)
+  if (get_frame_saved_regs (fip))
     return;
 
   frame_saved_regs_zalloc (fip);
@@ -726,16 +726,16 @@ i386_frame_init_saved_regs (struct frame_info *fip)
            break;
 #ifdef I386_REGNO_TO_SYMMETRY
          /* Dynix uses different internal numbering.  Ick.  */
-         fip->saved_regs[I386_REGNO_TO_SYMMETRY (op - 0x50)] = addr;
+         get_frame_saved_regs (fip)[I386_REGNO_TO_SYMMETRY (op - 0x50)] = addr;
 #else
-         fip->saved_regs[op - 0x50] = addr;
+         get_frame_saved_regs (fip)[op - 0x50] = addr;
 #endif
          addr -= 4;
        }
     }
 
-  fip->saved_regs[PC_REGNUM] = fip->frame + 4;
-  fip->saved_regs[FP_REGNUM] = fip->frame;
+  get_frame_saved_regs (fip)[PC_REGNUM] = fip->frame + 4;
+  get_frame_saved_regs (fip)[FP_REGNUM] = fip->frame;
 }
 
 /* Return PC of first real instruction.  */
@@ -867,7 +867,7 @@ i386_do_pop_frame (struct frame_info *frame)
   for (regnum = 0; regnum < NUM_REGS; regnum++)
     {
       CORE_ADDR addr;
-      addr = frame->saved_regs[regnum];
+      addr = get_frame_saved_regs (frame)[regnum];
       if (addr)
        {
          read_memory (addr, regbuf, REGISTER_RAW_SIZE (regnum));
index 454fd2d..d8f7db0 100644 (file)
@@ -710,8 +710,8 @@ ia64_frame_chain (struct frame_info *frame)
   else
     {
       FRAME_INIT_SAVED_REGS (frame);
-      if (frame->saved_regs[IA64_VFP_REGNUM])
-       return read_memory_integer (frame->saved_regs[IA64_VFP_REGNUM], 8);
+      if (get_frame_saved_regs (frame)[IA64_VFP_REGNUM])
+       return read_memory_integer (get_frame_saved_regs (frame)[IA64_VFP_REGNUM], 8);
       else
        return frame->frame + frame->extra_info->mem_stack_frame_size;
     }
@@ -728,8 +728,8 @@ ia64_frame_saved_pc (struct frame_info *frame)
     {
       FRAME_INIT_SAVED_REGS (frame);
 
-      if (frame->saved_regs[IA64_VRAP_REGNUM])
-       return read_memory_integer (frame->saved_regs[IA64_VRAP_REGNUM], 8);
+      if (get_frame_saved_regs (frame)[IA64_VRAP_REGNUM])
+       return read_memory_integer (get_frame_saved_regs (frame)[IA64_VRAP_REGNUM], 8);
       else if (frame->next && (get_frame_type (frame->next) == SIGTRAMP_FRAME))
        return read_sigcontext_register (frame->next, IA64_BR0_REGNUM);
       else     /* either frameless, or not far enough along in the prologue... */
@@ -832,7 +832,7 @@ examine_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct frame_info *frame)
   memset (instores, 0, sizeof instores);
   memset (infpstores, 0, sizeof infpstores);
 
-  if (frame && !frame->saved_regs)
+  if (frame && !get_frame_saved_regs (frame))
     {
       frame_saved_regs_zalloc (frame);
       do_fsr_stuff = 1;
@@ -960,7 +960,7 @@ examine_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct frame_info *frame)
              && ((2 <= fM && fM <= 5) || (16 <= fM && fM <= 31)))
            {
              if (do_fsr_stuff)
-               frame->saved_regs[IA64_FR0_REGNUM + fM] = spill_addr;
+               get_frame_saved_regs (frame)[IA64_FR0_REGNUM + fM] = spill_addr;
 
               if ((instr & 0x1efc0000000) == 0x0eec0000000)
                spill_addr += imm;
@@ -1019,14 +1019,14 @@ examine_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct frame_info *frame)
                {
                  /* Track UNAT register */
                  if (do_fsr_stuff)
-                   frame->saved_regs[IA64_UNAT_REGNUM] = spill_addr;
+                   get_frame_saved_regs (frame)[IA64_UNAT_REGNUM] = spill_addr;
                  unat_save_reg = 0;
                }
              else
                {
                  /* Track PR register */
                  if (do_fsr_stuff)
-                   frame->saved_regs[IA64_PR_REGNUM] = spill_addr;
+                   get_frame_saved_regs (frame)[IA64_PR_REGNUM] = spill_addr;
                  pr_save_reg = 0;
                }
              if ((instr & 0x1efc0000000LL) == 0x0acc0000000LL)
@@ -1095,7 +1095,7 @@ examine_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct frame_info *frame)
                 regs.  Record the spill address and advance the spill
                 register if appropriate. */
              if (do_fsr_stuff)
-               frame->saved_regs[IA64_GR0_REGNUM + rM] = spill_addr;
+               get_frame_saved_regs (frame)[IA64_GR0_REGNUM + rM] = spill_addr;
              if ((instr & 0x1efc0000000LL) == 0x0aec0000000LL)
                /* st8.spill [rN] = rM, imm9 */
                spill_addr += imm9(instr);
@@ -1128,17 +1128,17 @@ examine_prologue (CORE_ADDR pc, CORE_ADDR lim_pc, struct frame_info *frame)
            addr += 8;
          }
        if (i < sor)
-         frame->saved_regs[IA64_GR32_REGNUM + ((i + (sor - rrb_gr)) % sor)] 
+         get_frame_saved_regs (frame)[IA64_GR32_REGNUM + ((i + (sor - rrb_gr)) % sor)] 
            = addr;
        else
-         frame->saved_regs[IA64_GR32_REGNUM + i] = addr;
+         get_frame_saved_regs (frame)[IA64_GR32_REGNUM + i] = addr;
 
        if (i+32 == cfm_reg)
-         frame->saved_regs[IA64_CFM_REGNUM] = addr;
+         get_frame_saved_regs (frame)[IA64_CFM_REGNUM] = addr;
        if (i+32 == ret_reg)
-         frame->saved_regs[IA64_VRAP_REGNUM] = addr;
+         get_frame_saved_regs (frame)[IA64_VRAP_REGNUM] = addr;
        if (i+32 == fp_reg)
-         frame->saved_regs[IA64_VFP_REGNUM] = addr;
+         get_frame_saved_regs (frame)[IA64_VFP_REGNUM] = addr;
       }
   }
 
@@ -1160,7 +1160,7 @@ ia64_skip_prologue (CORE_ADDR pc)
 void
 ia64_frame_init_saved_regs (struct frame_info *frame)
 {
-  if (frame->saved_regs)
+  if (get_frame_saved_regs (frame))
     return;
 
   if ((get_frame_type (frame) == SIGTRAMP_FRAME) && SIGCONTEXT_REGISTER_ADDRESS)
@@ -1169,37 +1169,37 @@ ia64_frame_init_saved_regs (struct frame_info *frame)
 
       frame_saved_regs_zalloc (frame);
 
-      frame->saved_regs[IA64_VRAP_REGNUM] = 
+      get_frame_saved_regs (frame)[IA64_VRAP_REGNUM] = 
        SIGCONTEXT_REGISTER_ADDRESS (frame->frame, IA64_IP_REGNUM);
-      frame->saved_regs[IA64_CFM_REGNUM] = 
+      get_frame_saved_regs (frame)[IA64_CFM_REGNUM] = 
        SIGCONTEXT_REGISTER_ADDRESS (frame->frame, IA64_CFM_REGNUM);
-      frame->saved_regs[IA64_PSR_REGNUM] = 
+      get_frame_saved_regs (frame)[IA64_PSR_REGNUM] = 
        SIGCONTEXT_REGISTER_ADDRESS (frame->frame, IA64_PSR_REGNUM);
 #if 0
-      frame->saved_regs[IA64_BSP_REGNUM] = 
+      get_frame_saved_regs (frame)[IA64_BSP_REGNUM] = 
        SIGCONTEXT_REGISTER_ADDRESS (frame->frame, IA64_BSP_REGNUM);
 #endif
-      frame->saved_regs[IA64_RNAT_REGNUM] = 
+      get_frame_saved_regs (frame)[IA64_RNAT_REGNUM] = 
        SIGCONTEXT_REGISTER_ADDRESS (frame->frame, IA64_RNAT_REGNUM);
-      frame->saved_regs[IA64_CCV_REGNUM] = 
+      get_frame_saved_regs (frame)[IA64_CCV_REGNUM] = 
        SIGCONTEXT_REGISTER_ADDRESS (frame->frame, IA64_CCV_REGNUM);
-      frame->saved_regs[IA64_UNAT_REGNUM] = 
+      get_frame_saved_regs (frame)[IA64_UNAT_REGNUM] = 
        SIGCONTEXT_REGISTER_ADDRESS (frame->frame, IA64_UNAT_REGNUM);
-      frame->saved_regs[IA64_FPSR_REGNUM] = 
+      get_frame_saved_regs (frame)[IA64_FPSR_REGNUM] = 
        SIGCONTEXT_REGISTER_ADDRESS (frame->frame, IA64_FPSR_REGNUM);
-      frame->saved_regs[IA64_PFS_REGNUM] = 
+      get_frame_saved_regs (frame)[IA64_PFS_REGNUM] = 
        SIGCONTEXT_REGISTER_ADDRESS (frame->frame, IA64_PFS_REGNUM);
-      frame->saved_regs[IA64_LC_REGNUM] = 
+      get_frame_saved_regs (frame)[IA64_LC_REGNUM] = 
        SIGCONTEXT_REGISTER_ADDRESS (frame->frame, IA64_LC_REGNUM);
       for (regno = IA64_GR1_REGNUM; regno <= IA64_GR31_REGNUM; regno++)
        if (regno != sp_regnum)
-         frame->saved_regs[regno] =
+         get_frame_saved_regs (frame)[regno] =
            SIGCONTEXT_REGISTER_ADDRESS (frame->frame, regno);
       for (regno = IA64_BR0_REGNUM; regno <= IA64_BR7_REGNUM; regno++)
-       frame->saved_regs[regno] =
+       get_frame_saved_regs (frame)[regno] =
          SIGCONTEXT_REGISTER_ADDRESS (frame->frame, regno);
       for (regno = IA64_FR2_REGNUM; regno <= IA64_BR7_REGNUM; regno++)
-       frame->saved_regs[regno] =
+       get_frame_saved_regs (frame)[regno] =
          SIGCONTEXT_REGISTER_ADDRESS (frame->frame, regno);
     }
   else
@@ -1301,8 +1301,8 @@ ia64_get_saved_register (char *raw_buffer,
       if (!is_dummy_frame)
        {
          FRAME_INIT_SAVED_REGS (frame);
-         gr_addr = frame->saved_regs[ regnum - IA64_NAT0_REGNUM 
-                                             + IA64_GR0_REGNUM];
+         gr_addr = get_frame_saved_regs (frame)[ regnum - IA64_NAT0_REGNUM 
+                                               + IA64_GR0_REGNUM];
        }
       if (gr_addr)
        {
@@ -1343,7 +1343,7 @@ ia64_get_saved_register (char *raw_buffer,
       if (!is_dummy_frame)
        {
          FRAME_INIT_SAVED_REGS (frame);
-         addr = frame->saved_regs[regnum];
+         addr = get_frame_saved_regs (frame)[regnum];
        }
 
       if (addr != 0)
@@ -1513,8 +1513,8 @@ ia64_init_extra_frame_info (int fromleaf, struct frame_info *frame)
 
       FRAME_INIT_SAVED_REGS (frn);
 
-      if (frn->saved_regs[IA64_CFM_REGNUM] != 0)
-       cfm = read_memory_integer (frn->saved_regs[IA64_CFM_REGNUM], 8);
+      if (get_frame_saved_regs (frn)[IA64_CFM_REGNUM] != 0)
+       cfm = read_memory_integer (get_frame_saved_regs (frn)[IA64_CFM_REGNUM], 8);
       else if (frn->next && (get_frame_type (frn->next) == SIGTRAMP_FRAME))
        cfm = read_sigcontext_register (frn->next, IA64_PFS_REGNUM);
       else if (frn->next
@@ -1978,7 +1978,7 @@ ia64_pop_frame_regular (struct frame_info *frame)
 
   for (regno = 0; regno < ia64_num_regs; regno++)
     {
-      if (frame->saved_regs[regno]
+      if (get_frame_saved_regs (frame)[regno]
          && (!(IA64_GR32_REGNUM <= regno && regno <= IA64_GR127_REGNUM))
          && regno != pc_regnum
          && regno != sp_regnum
@@ -1988,7 +1988,7 @@ ia64_pop_frame_regular (struct frame_info *frame)
          && regno != IA64_BSPSTORE_REGNUM)
        {
          write_register (regno, 
-                         read_memory_integer (frame->saved_regs[regno],
+                         read_memory_integer (get_frame_saved_regs (frame)[regno],
                                               REGISTER_RAW_SIZE (regno)));
        }
     }
@@ -1998,9 +1998,9 @@ ia64_pop_frame_regular (struct frame_info *frame)
 
   cfm = read_register (IA64_CFM_REGNUM);
 
-  if (frame->saved_regs[IA64_PFS_REGNUM])
+  if (get_frame_saved_regs (frame)[IA64_PFS_REGNUM])
     {
-      pfs = read_memory_integer (frame->saved_regs[IA64_PFS_REGNUM],
+      pfs = read_memory_integer (get_frame_saved_regs (frame)[IA64_PFS_REGNUM],
                                 REGISTER_RAW_SIZE (IA64_PFS_REGNUM));
     }
   else
index 267951e..eda411c 100644 (file)
@@ -443,9 +443,9 @@ m68hc11_pop_frame (void)
 
       /* Copy regs from where they were saved in the frame.  */
       for (regnum = 0; regnum < M68HC11_ALL_REGS; regnum++)
-       if (frame->saved_regs[regnum])
+       if (get_frame_saved_regs (frame)[regnum])
          write_register (regnum,
-                          read_memory_integer (frame->saved_regs[regnum], 2));
+                          read_memory_integer (get_frame_saved_regs (frame)[regnum], 2));
 
       write_register (HARD_PC_REGNUM, frame->extra_info->return_pc);
       sp = (fp + frame->extra_info->size + 2) & 0x0ffff;
@@ -840,36 +840,36 @@ m68hc11_frame_init_saved_regs (struct frame_info *fi)
   CORE_ADDR pc;
   CORE_ADDR addr;
 
-  if (fi->saved_regs == NULL)
+  if (get_frame_saved_regs (fi) == NULL)
     frame_saved_regs_zalloc (fi);
   else
-    memset (fi->saved_regs, 0, sizeof (fi->saved_regs));
+    memset (get_frame_saved_regs (fi), 0, SIZEOF_FRAME_SAVED_REGS);
 
   pc = get_frame_pc (fi);
   fi->extra_info->return_kind = m68hc11_get_return_insn (pc);
   m68hc11_guess_from_prologue (pc, fi->frame, &pc, &fi->extra_info->size,
-                               fi->saved_regs);
+                               get_frame_saved_regs (fi));
 
   addr = fi->frame + fi->extra_info->size + STACK_CORRECTION;
   if (soft_regs[SOFT_FP_REGNUM].name)
-    fi->saved_regs[SOFT_FP_REGNUM] = addr - 2;
+    get_frame_saved_regs (fi)[SOFT_FP_REGNUM] = addr - 2;
 
   /* Take into account how the function was called/returns.  */
   if (fi->extra_info->return_kind == RETURN_RTC)
     {
-      fi->saved_regs[HARD_PAGE_REGNUM] = addr;
+      get_frame_saved_regs (fi)[HARD_PAGE_REGNUM] = addr;
       addr++;
     }
   else if (fi->extra_info->return_kind == RETURN_RTI)
     {
-      fi->saved_regs[HARD_CCR_REGNUM] = addr;
-      fi->saved_regs[HARD_D_REGNUM] = addr + 1;
-      fi->saved_regs[HARD_X_REGNUM] = addr + 3;
-      fi->saved_regs[HARD_Y_REGNUM] = addr + 5;
+      get_frame_saved_regs (fi)[HARD_CCR_REGNUM] = addr;
+      get_frame_saved_regs (fi)[HARD_D_REGNUM] = addr + 1;
+      get_frame_saved_regs (fi)[HARD_X_REGNUM] = addr + 3;
+      get_frame_saved_regs (fi)[HARD_Y_REGNUM] = addr + 5;
       addr += 7;
     }
-  fi->saved_regs[HARD_SP_REGNUM] = addr;
-  fi->saved_regs[HARD_PC_REGNUM] = fi->saved_regs[HARD_SP_REGNUM];
+  get_frame_saved_regs (fi)[HARD_SP_REGNUM] = addr;
+  get_frame_saved_regs (fi)[HARD_PC_REGNUM] = get_frame_saved_regs (fi)[HARD_SP_REGNUM];
 }
 
 static void
@@ -892,7 +892,7 @@ m68hc11_init_extra_frame_info (int fromleaf, struct frame_info *fi)
     }
   else
     {
-      addr = fi->saved_regs[HARD_PC_REGNUM];
+      addr = get_frame_saved_regs (fi)[HARD_PC_REGNUM];
       addr = read_memory_unsigned_integer (addr, 2) & 0x0ffff;
 
       /* Take into account the 68HC12 specific call (PC + page).  */
@@ -900,7 +900,7 @@ m68hc11_init_extra_frame_info (int fromleaf, struct frame_info *fi)
           && addr >= 0x08000 && addr < 0x0c000
           && USE_PAGE_REGISTER)
         {
-          CORE_ADDR page_addr = fi->saved_regs[HARD_PAGE_REGNUM];
+          CORE_ADDR page_addr = get_frame_saved_regs (fi)[HARD_PAGE_REGNUM];
 
           unsigned page = read_memory_unsigned_integer (page_addr, 1);
           addr -= 0x08000;
index c25a825..34cc0eb 100644 (file)
@@ -478,25 +478,25 @@ m68k_pop_frame (void)
   m68k_frame_init_saved_regs (frame);
   for (regnum = FP0_REGNUM + 7; regnum >= FP0_REGNUM; regnum--)
     {
-      if (frame->saved_regs[regnum])
+      if (get_frame_saved_regs (frame)[regnum])
        {
-         read_memory (frame->saved_regs[regnum], raw_buffer, 12);
+         read_memory (get_frame_saved_regs (frame)[regnum], raw_buffer, 12);
          deprecated_write_register_bytes (REGISTER_BYTE (regnum), raw_buffer,
                                           12);
        }
     }
   for (regnum = FP_REGNUM - 1; regnum >= 0; regnum--)
     {
-      if (frame->saved_regs[regnum])
+      if (get_frame_saved_regs (frame)[regnum])
        {
          write_register (regnum,
-                         read_memory_integer (frame->saved_regs[regnum], 4));
+                         read_memory_integer (get_frame_saved_regs (frame)[regnum], 4));
        }
     }
-  if (frame->saved_regs[PS_REGNUM])
+  if (get_frame_saved_regs (frame)[PS_REGNUM])
     {
       write_register (PS_REGNUM,
-                     read_memory_integer (frame->saved_regs[PS_REGNUM], 4));
+                     read_memory_integer (get_frame_saved_regs (frame)[PS_REGNUM], 4));
     }
   write_register (FP_REGNUM, read_memory_integer (fp, 4));
   write_register (PC_REGNUM, read_memory_integer (fp + 4, 4));
@@ -592,12 +592,12 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
 
   int nextinsn;
 
-  if (frame_info->saved_regs)
+  if (get_frame_saved_regs (frame_info))
     return;
 
   frame_saved_regs_zalloc (frame_info);
 
-  memset (frame_info->saved_regs, 0, SIZEOF_FRAME_SAVED_REGS);
+  memset (get_frame_saved_regs (frame_info), 0, SIZEOF_FRAME_SAVED_REGS);
 
   if (get_frame_pc (frame_info) >= possible_call_dummy_start
       && get_frame_pc (frame_info) <= frame_info->frame)
@@ -658,7 +658,7 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
          /* Regmask's low bit is for register fp7, the first pushed */
          for (regnum = FP0_REGNUM + 8; --regnum >= FP0_REGNUM; regmask >>= 1)
            if (regmask & 1)
-             frame_info->saved_regs[regnum] = (next_addr -= 12);
+             get_frame_saved_regs (frame_info)[regnum] = (next_addr -= 12);
          pc += 4;
        }
       /* fmovemx to (fp + displacement) */
@@ -671,7 +671,7 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
          for (regnum = FP0_REGNUM + 8; --regnum >= FP0_REGNUM; regmask >>= 1)
            if (regmask & 1)
              {
-               frame_info->saved_regs[regnum] = addr;
+               get_frame_saved_regs (frame_info)[regnum] = addr;
                addr += 12;
              }
          pc += 6;
@@ -683,7 +683,7 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
          for (regnum = 0; regnum < 16; regnum++, regmask >>= 1)
            if (regmask & 1)
              {
-               frame_info->saved_regs[regnum] = next_addr;
+               get_frame_saved_regs (frame_info)[regnum] = next_addr;
                next_addr += 4;
              }
          pc += 4;
@@ -698,7 +698,7 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
          for (regnum = 0; regnum < 16; regnum++, regmask >>= 1)
            if (regmask & 1)
              {
-               frame_info->saved_regs[regnum] = addr;
+               get_frame_saved_regs (frame_info)[regnum] = addr;
                addr += 4;
              }
          pc += 6;
@@ -709,14 +709,14 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
          /* Regmask's low bit is for register 15, the first pushed */
          for (regnum = 16; --regnum >= 0; regmask >>= 1)
            if (regmask & 1)
-             frame_info->saved_regs[regnum] = (next_addr -= 4);
+             get_frame_saved_regs (frame_info)[regnum] = (next_addr -= 4);
          pc += 4;
        }
       /* movl r,-(sp) */
       else if (0x2f00 == (0xfff0 & nextinsn))
        {
          regnum = 0xf & nextinsn;
-         frame_info->saved_regs[regnum] = (next_addr -= 4);
+         get_frame_saved_regs (frame_info)[regnum] = (next_addr -= 4);
          pc += 2;
        }
       /* fmovemx to index of sp */
@@ -726,7 +726,7 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
          for (regnum = FP0_REGNUM + 8; --regnum >= FP0_REGNUM; regmask >>= 1)
            if (regmask & 1)
              {
-               frame_info->saved_regs[regnum] = next_addr;
+               get_frame_saved_regs (frame_info)[regnum] = next_addr;
                next_addr += 12;
              }
          pc += 10;
@@ -734,16 +734,16 @@ m68k_frame_init_saved_regs (struct frame_info *frame_info)
       /* clrw -(sp); movw ccr,-(sp) */
       else if (0x4267 == nextinsn && 0x42e7 == regmask)
        {
-         frame_info->saved_regs[PS_REGNUM] = (next_addr -= 4);
+         get_frame_saved_regs (frame_info)[PS_REGNUM] = (next_addr -= 4);
          pc += 4;
        }
       else
        break;
     }
 lose:;
-  frame_info->saved_regs[SP_REGNUM] = (frame_info)->frame + 8;
-  frame_info->saved_regs[FP_REGNUM] = (frame_info)->frame;
-  frame_info->saved_regs[PC_REGNUM] = (frame_info)->frame + 4;
+  get_frame_saved_regs (frame_info)[SP_REGNUM] = (frame_info)->frame + 8;
+  get_frame_saved_regs (frame_info)[FP_REGNUM] = (frame_info)->frame;
+  get_frame_saved_regs (frame_info)[PC_REGNUM] = (frame_info)->frame + 4;
 #ifdef SIG_SP_FP_OFFSET
   /* Adjust saved SP_REGNUM for fake _sigtramp frames.  */
   if ((get_frame_type (frame_info) == SIGTRAMP_FRAME) && frame_info->next)
index d0cd302..708cf4c 100644 (file)
@@ -301,7 +301,7 @@ analyze_dummy_frame (CORE_ADDR pc, CORE_ADDR frame)
   deprecated_update_frame_base_hack (dummy, frame);
   dummy->extra_info->status = 0;
   dummy->extra_info->framesize = 0;
-  memset (dummy->saved_regs, '\000', SIZEOF_FRAME_SAVED_REGS);
+  memset (get_frame_saved_regs (dummy), '\000', SIZEOF_FRAME_SAVED_REGS);
   mcore_analyze_prologue (dummy, 0, 0);
   return dummy;
 }
@@ -626,7 +626,7 @@ mcore_analyze_prologue (struct frame_info *fi, CORE_ADDR pc, int skip_prologue)
        {
          if (register_offsets[rn] >= 0)
            {
-             fi->saved_regs[rn] = fi->frame - register_offsets[rn];
+             get_frame_saved_regs (fi)[rn] = fi->frame - register_offsets[rn];
              mcore_insn_debug (("Saved register %s stored at 0x%08x, value=0x%08x\n",
                               mcore_register_names[rn], fi->saved_regs[rn],
                              read_memory_integer (fi->saved_regs[rn], 4)));
@@ -675,11 +675,11 @@ mcore_frame_chain (struct frame_info * fi)
       int fp = dummy->extra_info->fp_regnum;
 
       /* Our caller has a frame pointer. */
-      if (fi->saved_regs[fp] != 0)
+      if (get_frame_saved_regs (fi)[fp] != 0)
        {
          /* The "FP" was saved on the stack.  Don't forget to adjust
             the "FP" with the framesize to get a real FP. */
-         callers_addr = read_memory_integer (fi->saved_regs[fp], REGISTER_SIZE)
+         callers_addr = read_memory_integer (get_frame_saved_regs (fi)[fp], REGISTER_SIZE)
            + dummy->extra_info->framesize;
        }
       else
@@ -759,8 +759,8 @@ mcore_find_callers_reg (struct frame_info *fi, int regnum)
     {
       if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (fi), fi->frame, fi->frame))
        return deprecated_read_register_dummy (get_frame_pc (fi), fi->frame, regnum);
-      else if (fi->saved_regs[regnum] != 0)
-       return read_memory_integer (fi->saved_regs[regnum],
+      else if (get_frame_saved_regs (fi)[regnum] != 0)
+       return read_memory_integer (get_frame_saved_regs (fi)[regnum],
                                    REGISTER_SIZE);
     }
 
@@ -800,11 +800,11 @@ mcore_pop_frame (void)
       /* Restore any saved registers. */
       for (rn = 0; rn < NUM_REGS; rn++)
        {
-         if (fi->saved_regs[rn] != 0)
+         if (get_frame_saved_regs (fi)[rn] != 0)
            {
              ULONGEST value;
 
-             value = read_memory_unsigned_integer (fi->saved_regs[rn],
+             value = read_memory_unsigned_integer (get_frame_saved_regs (fi)[rn],
                                                    REGISTER_SIZE);
              write_register (rn, value);
            }
index 1aa3696..e8bce38 100644 (file)
@@ -1424,15 +1424,15 @@ mips_find_saved_regs (struct frame_info *fci)
        {
          reg_position = fci->frame + SIGFRAME_REGSAVE_OFF
            + ireg * SIGFRAME_REG_SIZE;
-         fci->saved_regs[ireg] = reg_position;
+         get_frame_saved_regs (fci)[ireg] = reg_position;
        }
       for (ireg = 0; ireg < MIPS_NUMREGS; ireg++)
        {
          reg_position = fci->frame + SIGFRAME_FPREGSAVE_OFF
            + ireg * SIGFRAME_REG_SIZE;
-         fci->saved_regs[FP0_REGNUM + ireg] = reg_position;
+         get_frame_saved_regs (fci)[FP0_REGNUM + ireg] = reg_position;
        }
-      fci->saved_regs[PC_REGNUM] = fci->frame + SIGFRAME_PC_OFF;
+      get_frame_saved_regs (fci)[PC_REGNUM] = fci->frame + SIGFRAME_PC_OFF;
       return;
     }
 
@@ -1502,7 +1502,7 @@ mips_find_saved_regs (struct frame_info *fci)
   for (ireg = MIPS_NUMREGS - 1; gen_mask; --ireg, gen_mask <<= 1)
     if (gen_mask & 0x80000000)
       {
-       fci->saved_regs[ireg] = reg_position;
+       get_frame_saved_regs (fci)[ireg] = reg_position;
        reg_position -= MIPS_SAVED_REGSIZE;
       }
 
@@ -1526,7 +1526,7 @@ mips_find_saved_regs (struct frame_info *fci)
          /* Check if the s0 and s1 registers were pushed on the stack.  */
          for (reg = 16; reg < sreg_count + 16; reg++)
            {
-             fci->saved_regs[reg] = reg_position;
+             get_frame_saved_regs (fci)[reg] = reg_position;
              reg_position -= MIPS_SAVED_REGSIZE;
            }
        }
@@ -1557,11 +1557,11 @@ mips_find_saved_regs (struct frame_info *fci)
   for (ireg = MIPS_NUMREGS - 1; float_mask; --ireg, float_mask <<= 1)
     if (float_mask & 0x80000000)
       {
-       fci->saved_regs[FP0_REGNUM + ireg] = reg_position;
+       get_frame_saved_regs (fci)[FP0_REGNUM + ireg] = reg_position;
        reg_position -= MIPS_SAVED_REGSIZE;
       }
 
-  fci->saved_regs[PC_REGNUM] = fci->saved_regs[RA_REGNUM];
+  get_frame_saved_regs (fci)[PC_REGNUM] = get_frame_saved_regs (fci)[RA_REGNUM];
 }
 
 /* Set up the 'saved_regs' array.  This is a data structure containing
@@ -1574,11 +1574,11 @@ mips_find_saved_regs (struct frame_info *fci)
 static void
 mips_frame_init_saved_regs (struct frame_info *frame)
 {
-  if (frame->saved_regs == NULL)
+  if (get_frame_saved_regs (frame) == NULL)
     {
       mips_find_saved_regs (frame);
     }
-  frame->saved_regs[SP_REGNUM] = frame->frame;
+  get_frame_saved_regs (frame)[SP_REGNUM] = frame->frame;
 }
 
 static CORE_ADDR
@@ -2512,15 +2512,15 @@ mips_init_extra_frame_info (int fromleaf, struct frame_info *fci)
          if (!PC_IN_SIGTRAMP (get_frame_pc (fci), name))
            {
              frame_saved_regs_zalloc (fci);
-             memcpy (fci->saved_regs, temp_saved_regs, SIZEOF_FRAME_SAVED_REGS);
-             fci->saved_regs[PC_REGNUM]
-               = fci->saved_regs[RA_REGNUM];
+             memcpy (get_frame_saved_regs (fci), temp_saved_regs, SIZEOF_FRAME_SAVED_REGS);
+             get_frame_saved_regs (fci)[PC_REGNUM]
+               = get_frame_saved_regs (fci)[RA_REGNUM];
              /* Set value of previous frame's stack pointer.  Remember that
                 saved_regs[SP_REGNUM] is special in that it contains the
                 value of the stack pointer register.  The other saved_regs
                 values are addresses (in the inferior) at which a given
                 register's value may be found.  */
-             fci->saved_regs[SP_REGNUM] = fci->frame;
+             get_frame_saved_regs (fci)[SP_REGNUM] = fci->frame;
            }
        }
 
@@ -3823,22 +3823,22 @@ mips_pop_frame (void)
     }
 
   write_register (PC_REGNUM, FRAME_SAVED_PC (frame));
-  if (frame->saved_regs == NULL)
+  if (get_frame_saved_regs (frame) == NULL)
     FRAME_INIT_SAVED_REGS (frame);
   for (regnum = 0; regnum < NUM_REGS; regnum++)
     if (regnum != SP_REGNUM && regnum != PC_REGNUM
-       && frame->saved_regs[regnum])
+       && get_frame_saved_regs (frame)[regnum])
       {
        /* Floating point registers must not be sign extended, 
           in case MIPS_SAVED_REGSIZE = 4 but sizeof (FP0_REGNUM) == 8.  */
 
        if (FP0_REGNUM <= regnum && regnum < FP0_REGNUM + 32)
          write_register (regnum,
-                         read_memory_unsigned_integer (frame->saved_regs[regnum],
+                         read_memory_unsigned_integer (get_frame_saved_regs (frame)[regnum],
                                                        MIPS_SAVED_REGSIZE));
        else
          write_register (regnum,
-                         read_memory_integer (frame->saved_regs[regnum],
+                         read_memory_integer (get_frame_saved_regs (frame)[regnum],
                                               MIPS_SAVED_REGSIZE));
       }
 
index 75b7932..582e965 100644 (file)
@@ -163,7 +163,7 @@ analyze_dummy_frame (CORE_ADDR pc, CORE_ADDR frame)
   dummy->frame = frame;
   dummy->extra_info->status = 0;
   dummy->extra_info->stack_size = 0;
-  memset (dummy->saved_regs, '\000', SIZEOF_FRAME_SAVED_REGS);
+  memset (get_frame_saved_regs (dummy), '\000', SIZEOF_FRAME_SAVED_REGS);
   mn10300_analyze_prologue (dummy, 0);
   return dummy;
 }
@@ -231,59 +231,59 @@ set_movm_offsets (struct frame_info *fi, int movm_args)
       /* The `other' bit leaves a blank area of four bytes at the
          beginning of its block of saved registers, making it 32 bytes
          long in total.  */
-      fi->saved_regs[LAR_REGNUM]    = fi->frame + offset + 4;
-      fi->saved_regs[LIR_REGNUM]    = fi->frame + offset + 8;
-      fi->saved_regs[MDR_REGNUM]    = fi->frame + offset + 12;
-      fi->saved_regs[A0_REGNUM + 1] = fi->frame + offset + 16;
-      fi->saved_regs[A0_REGNUM]     = fi->frame + offset + 20;
-      fi->saved_regs[D0_REGNUM + 1] = fi->frame + offset + 24;
-      fi->saved_regs[D0_REGNUM]     = fi->frame + offset + 28;
+      get_frame_saved_regs (fi)[LAR_REGNUM]    = fi->frame + offset + 4;
+      get_frame_saved_regs (fi)[LIR_REGNUM]    = fi->frame + offset + 8;
+      get_frame_saved_regs (fi)[MDR_REGNUM]    = fi->frame + offset + 12;
+      get_frame_saved_regs (fi)[A0_REGNUM + 1] = fi->frame + offset + 16;
+      get_frame_saved_regs (fi)[A0_REGNUM]     = fi->frame + offset + 20;
+      get_frame_saved_regs (fi)[D0_REGNUM + 1] = fi->frame + offset + 24;
+      get_frame_saved_regs (fi)[D0_REGNUM]     = fi->frame + offset + 28;
       offset += 32;
     }
   if (movm_args & movm_a3_bit)
     {
-      fi->saved_regs[A3_REGNUM] = fi->frame + offset;
+      get_frame_saved_regs (fi)[A3_REGNUM] = fi->frame + offset;
       offset += 4;
     }
   if (movm_args & movm_a2_bit)
     {
-      fi->saved_regs[A2_REGNUM] = fi->frame + offset;
+      get_frame_saved_regs (fi)[A2_REGNUM] = fi->frame + offset;
       offset += 4;
     }
   if (movm_args & movm_d3_bit)
     {
-      fi->saved_regs[D3_REGNUM] = fi->frame + offset;
+      get_frame_saved_regs (fi)[D3_REGNUM] = fi->frame + offset;
       offset += 4;
     }
   if (movm_args & movm_d2_bit)
     {
-      fi->saved_regs[D2_REGNUM] = fi->frame + offset;
+      get_frame_saved_regs (fi)[D2_REGNUM] = fi->frame + offset;
       offset += 4;
     }
   if (AM33_MODE)
     {
       if (movm_args & movm_exother_bit)
         {
-          fi->saved_regs[MCVF_REGNUM]   = fi->frame + offset;
-          fi->saved_regs[MCRL_REGNUM]   = fi->frame + offset + 4;
-          fi->saved_regs[MCRH_REGNUM]   = fi->frame + offset + 8;
-          fi->saved_regs[MDRQ_REGNUM]   = fi->frame + offset + 12;
-          fi->saved_regs[E0_REGNUM + 1] = fi->frame + offset + 16;
-          fi->saved_regs[E0_REGNUM + 0] = fi->frame + offset + 20;
+          get_frame_saved_regs (fi)[MCVF_REGNUM]   = fi->frame + offset;
+          get_frame_saved_regs (fi)[MCRL_REGNUM]   = fi->frame + offset + 4;
+          get_frame_saved_regs (fi)[MCRH_REGNUM]   = fi->frame + offset + 8;
+          get_frame_saved_regs (fi)[MDRQ_REGNUM]   = fi->frame + offset + 12;
+          get_frame_saved_regs (fi)[E0_REGNUM + 1] = fi->frame + offset + 16;
+          get_frame_saved_regs (fi)[E0_REGNUM + 0] = fi->frame + offset + 20;
           offset += 24;
         }
       if (movm_args & movm_exreg1_bit)
         {
-          fi->saved_regs[E0_REGNUM + 7] = fi->frame + offset;
-          fi->saved_regs[E0_REGNUM + 6] = fi->frame + offset + 4;
-          fi->saved_regs[E0_REGNUM + 5] = fi->frame + offset + 8;
-          fi->saved_regs[E0_REGNUM + 4] = fi->frame + offset + 12;
+          get_frame_saved_regs (fi)[E0_REGNUM + 7] = fi->frame + offset;
+          get_frame_saved_regs (fi)[E0_REGNUM + 6] = fi->frame + offset + 4;
+          get_frame_saved_regs (fi)[E0_REGNUM + 5] = fi->frame + offset + 8;
+          get_frame_saved_regs (fi)[E0_REGNUM + 4] = fi->frame + offset + 12;
           offset += 16;
         }
       if (movm_args & movm_exreg0_bit)
         {
-          fi->saved_regs[E0_REGNUM + 3] = fi->frame + offset;
-          fi->saved_regs[E0_REGNUM + 2] = fi->frame + offset + 4;
+          get_frame_saved_regs (fi)[E0_REGNUM + 3] = fi->frame + offset;
+          get_frame_saved_regs (fi)[E0_REGNUM + 2] = fi->frame + offset + 4;
           offset += 8;
         }
     }
@@ -633,14 +633,14 @@ saved_regs_size (struct frame_info *fi)
 
   /* Reserve four bytes for every register saved.  */
   for (i = 0; i < NUM_REGS; i++)
-    if (fi->saved_regs[i])
+    if (get_frame_saved_regs (fi)[i])
       adjust += 4;
 
   /* If we saved LIR, then it's most likely we used a `movm'
      instruction with the `other' bit set, in which case the SP is
      decremented by an extra four bytes, "to simplify calculation
      of the transfer area", according to the processor manual.  */
-  if (fi->saved_regs[LIR_REGNUM])
+  if (get_frame_saved_regs (fi)[LIR_REGNUM])
     adjust += 4;
 
   return adjust;
@@ -690,8 +690,8 @@ mn10300_frame_chain (struct frame_info *fi)
     {
       /* Our caller has a frame pointer.  So find the frame in $a3 or
          in the stack.  */
-      if (fi->saved_regs[A3_REGNUM])
-       return (read_memory_integer (fi->saved_regs[A3_REGNUM], REGISTER_SIZE));
+      if (get_frame_saved_regs (fi)[A3_REGNUM])
+       return (read_memory_integer (get_frame_saved_regs (fi)[A3_REGNUM], REGISTER_SIZE));
       else
        return read_register (A3_REGNUM);
     }
@@ -728,11 +728,11 @@ mn10300_pop_frame_regular (struct frame_info *frame)
 
   /* Restore any saved registers.  */
   for (regnum = 0; regnum < NUM_REGS; regnum++)
-    if (frame->saved_regs[regnum] != 0)
+    if (get_frame_saved_regs (frame)[regnum] != 0)
       {
         ULONGEST value;
 
-        value = read_memory_unsigned_integer (frame->saved_regs[regnum],
+        value = read_memory_unsigned_integer (get_frame_saved_regs (frame)[regnum],
                                               REGISTER_RAW_SIZE (regnum));
         write_register (regnum, value);
       }
index f1d084f..8c2db2e 100644 (file)
@@ -375,7 +375,7 @@ ns32k_frame_init_saved_regs (struct frame_info *frame)
   int localcount;
   CORE_ADDR enter_addr, next_addr;
 
-  if (frame->saved_regs)
+  if (get_frame_saved_regs (frame))
     return;
 
   frame_saved_regs_zalloc (frame);
@@ -390,18 +390,18 @@ ns32k_frame_init_saved_regs (struct frame_info *frame)
       for (regnum = 0; regnum < 8; regnum++)
        {
           if (regmask & (1 << regnum))
-           frame->saved_regs[regnum] = next_addr -= 4;
+           get_frame_saved_regs (frame)[regnum] = next_addr -= 4;
        }
 
-      frame->saved_regs[SP_REGNUM] = frame->frame + 4;
-      frame->saved_regs[PC_REGNUM] = frame->frame + 4;
-      frame->saved_regs[FP_REGNUM] = read_memory_integer (frame->frame, 4);
+      get_frame_saved_regs (frame)[SP_REGNUM] = frame->frame + 4;
+      get_frame_saved_regs (frame)[PC_REGNUM] = frame->frame + 4;
+      get_frame_saved_regs (frame)[FP_REGNUM] = read_memory_integer (frame->frame, 4);
     }
   else if (enter_addr == 1)
     {
       CORE_ADDR sp = read_register (SP_REGNUM);
-      frame->saved_regs[PC_REGNUM] = sp;
-      frame->saved_regs[SP_REGNUM] = sp + 4;
+      get_frame_saved_regs (frame)[PC_REGNUM] = sp;
+      get_frame_saved_regs (frame)[SP_REGNUM] = sp + 4;
     }
 }
 
@@ -432,9 +432,9 @@ ns32k_pop_frame (void)
   FRAME_INIT_SAVED_REGS (frame);
 
   for (regnum = 0; regnum < 8; regnum++)
-    if (frame->saved_regs[regnum])
+    if (get_frame_saved_regs (frame)[regnum])
       write_register (regnum,
-                     read_memory_integer (frame->saved_regs[regnum], 4));
+                     read_memory_integer (get_frame_saved_regs (frame)[regnum], 4));
 
   write_register (FP_REGNUM, read_memory_integer (fp, 4));
   write_register (PC_REGNUM, read_memory_integer (fp + 4, 4));
index 572b30b..6f48b32 100644 (file)
@@ -290,7 +290,7 @@ s390_get_frame_info (CORE_ADDR pc, struct frame_extra_info *fextra_info,
           orig_sp = fi->frame;
           if (! init_extra_info && fextra_info->initialised)
             orig_sp += fextra_info->stack_bought;
-         saved_regs = fi->saved_regs;
+         saved_regs = get_frame_saved_regs (fi);
        }
       if (init_extra_info || !fextra_info->initialised)
        {
@@ -922,7 +922,7 @@ s390_frame_init_saved_regs (struct frame_info *fi)
 
   int quick;
 
-  if (fi->saved_regs == NULL)
+  if (get_frame_saved_regs (fi) == NULL)
     {
       /* zalloc memsets the saved regs */
       frame_saved_regs_zalloc (fi);
@@ -962,10 +962,10 @@ s390_frame_saved_pc_nofix (struct frame_info *fi)
     {
       fi->extra_info->saved_pc_valid = 1;
       if (fi->extra_info->good_prologue
-          && fi->saved_regs[S390_RETADDR_REGNUM])
+          && get_frame_saved_regs (fi)[S390_RETADDR_REGNUM])
         fi->extra_info->saved_pc
           = ADDR_BITS_REMOVE (read_memory_integer
-                              (fi->saved_regs[S390_RETADDR_REGNUM],
+                              (get_frame_saved_regs (fi)[S390_RETADDR_REGNUM],
                                S390_GPR_SIZE));
       else
         fi->extra_info->saved_pc
@@ -1046,24 +1046,24 @@ s390_frame_chain (struct frame_info *thisframe)
        }
       else
        {
-         if (thisframe->saved_regs)
+         if (get_frame_saved_regs (thisframe))
            {
              int regno;
 
               if (prev_fextra_info.frame_pointer_saved_pc
-                  && thisframe->saved_regs[S390_FRAME_REGNUM])
+                  && get_frame_saved_regs (thisframe)[S390_FRAME_REGNUM])
                 regno = S390_FRAME_REGNUM;
               else
                 regno = S390_SP_REGNUM;
 
-             if (thisframe->saved_regs[regno])
+             if (get_frame_saved_regs (thisframe)[regno])
                 {
                   /* The SP's entry of `saved_regs' is special.  */
                   if (regno == S390_SP_REGNUM)
-                    prev_fp = thisframe->saved_regs[regno];
+                    prev_fp = get_frame_saved_regs (thisframe)[regno];
                   else
                     prev_fp =
-                      read_memory_integer (thisframe->saved_regs[regno],
+                      read_memory_integer (get_frame_saved_regs (thisframe)[regno],
                                            S390_GPR_SIZE);
                 }
            }
@@ -1217,14 +1217,14 @@ s390_pop_frame_regular (struct frame_info *frame)
   write_register (S390_PC_REGNUM, FRAME_SAVED_PC (frame));
 
   /* Restore any saved registers.  */
-  if (frame->saved_regs)
+  if (get_frame_saved_regs (frame))
     {
       for (regnum = 0; regnum < NUM_REGS; regnum++)
-        if (frame->saved_regs[regnum] != 0)
+        if (get_frame_saved_regs (frame)[regnum] != 0)
           {
             ULONGEST value;
             
-            value = read_memory_unsigned_integer (frame->saved_regs[regnum],
+            value = read_memory_unsigned_integer (get_frame_saved_regs (frame)[regnum],
                                                   REGISTER_RAW_SIZE (regnum));
             write_register (regnum, value);
           }
@@ -1232,7 +1232,7 @@ s390_pop_frame_regular (struct frame_info *frame)
       /* Actually cut back the stack.  Remember that the SP's element of
          saved_regs is the old SP itself, not the address at which it is
          saved.  */
-      write_register (S390_SP_REGNUM, frame->saved_regs[S390_SP_REGNUM]);
+      write_register (S390_SP_REGNUM, get_frame_saved_regs (frame)[S390_SP_REGNUM]);
     }
 
   /* Throw away any cached frame information.  */
index 3b715a8..41c609e 100644 (file)
@@ -1000,8 +1000,8 @@ sh_find_callers_reg (struct frame_info *fi, int regnum)
        FRAME_INIT_SAVED_REGS (fi);
        if (!get_frame_pc (fi))
          return 0;
-       if (fi->saved_regs[regnum] != 0)
-         return read_memory_integer (fi->saved_regs[regnum],
+       if (get_frame_saved_regs (fi)[regnum] != 0)
+         return read_memory_integer (get_frame_saved_regs (fi)[regnum],
                                      REGISTER_RAW_SIZE (regnum));
       }
   return read_register (regnum);
@@ -1025,13 +1025,13 @@ sh64_get_saved_pr (struct frame_info *fi, int pr_regnum)
 
        media_mode = pc_is_isa32 (get_frame_pc (fi));
 
-       if (fi->saved_regs[pr_regnum] != 0)
+       if (get_frame_saved_regs (fi)[pr_regnum] != 0)
          {
            int gdb_reg_num = translate_insn_rn (pr_regnum, media_mode);
            int size = ((gdbarch_tdep (current_gdbarch)->sh_abi == SH_ABI_32)
                        ? 4
                        : REGISTER_RAW_SIZE (gdb_reg_num));
-           return read_memory_integer (fi->saved_regs[pr_regnum], size);
+           return read_memory_integer (get_frame_saved_regs (fi)[pr_regnum], size);
          }
       }
   return read_register (pr_regnum);
@@ -1055,10 +1055,10 @@ sh_nofp_frame_init_saved_regs (struct frame_info *fi)
   int r3_val = 0;
   char *dummy_regs = deprecated_generic_find_dummy_frame (get_frame_pc (fi), fi->frame);
   
-  if (fi->saved_regs == NULL)
+  if (get_frame_saved_regs (fi) == NULL)
     frame_saved_regs_zalloc (fi);
   else
-    memset (fi->saved_regs, 0, SIZEOF_FRAME_SAVED_REGS);
+    memset (get_frame_saved_regs (fi), 0, SIZEOF_FRAME_SAVED_REGS);
   
   if (dummy_regs)
     {
@@ -1140,21 +1140,21 @@ sh_nofp_frame_init_saved_regs (struct frame_info *fi)
          if (rn == FP_REGNUM)
            have_fp = 1;
 
-         fi->saved_regs[rn] = fi->frame - where[rn] + depth - 4;
+         get_frame_saved_regs (fi)[rn] = fi->frame - where[rn] + depth - 4;
        }
       else
        {
-         fi->saved_regs[rn] = 0;
+         get_frame_saved_regs (fi)[rn] = 0;
        }
     }
 
   if (have_fp)
     {
-      fi->saved_regs[SP_REGNUM] = read_memory_integer (fi->saved_regs[FP_REGNUM], 4);
+      get_frame_saved_regs (fi)[SP_REGNUM] = read_memory_integer (get_frame_saved_regs (fi)[FP_REGNUM], 4);
     }
   else
     {
-      fi->saved_regs[SP_REGNUM] = fi->frame - 4;
+      get_frame_saved_regs (fi)[SP_REGNUM] = fi->frame - 4;
     }
 
   fi->extra_info->f_offset = depth - where[FP_REGNUM] - 4;
@@ -1395,10 +1395,10 @@ sh64_nofp_frame_init_saved_regs (struct frame_info *fi)
   char *dummy_regs = deprecated_generic_find_dummy_frame (get_frame_pc (fi), fi->frame);
   struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); 
   
-  if (fi->saved_regs == NULL)
+  if (get_frame_saved_regs (fi) == NULL)
     frame_saved_regs_zalloc (fi);
   else
-    memset (fi->saved_regs, 0, SIZEOF_FRAME_SAVED_REGS);
+    memset (get_frame_saved_regs (fi), 0, SIZEOF_FRAME_SAVED_REGS);
   
   if (dummy_regs)
     {
@@ -1553,11 +1553,11 @@ sh64_nofp_frame_init_saved_regs (struct frame_info *fi)
 
          /* Watch out! saved_regs is only for the real registers, and
             doesn't include space for the pseudo registers. */
-         fi->saved_regs[register_number]= fi->frame - where[rn] + depth; 
+         get_frame_saved_regs (fi)[register_number]= fi->frame - where[rn] + depth; 
            
        } 
       else 
-       fi->saved_regs[register_number] = 0; 
+       get_frame_saved_regs (fi)[register_number] = 0; 
     }
 
   if (have_fp)
@@ -1574,10 +1574,10 @@ sh64_nofp_frame_init_saved_regs (struct frame_info *fi)
        size = 4;
       else
        size = REGISTER_RAW_SIZE (fp_regnum);
-      fi->saved_regs[sp_regnum] = read_memory_integer (fi->saved_regs[fp_regnum], size);
+      get_frame_saved_regs (fi)[sp_regnum] = read_memory_integer (get_frame_saved_regs (fi)[fp_regnum], size);
     }
   else
-    fi->saved_regs[sp_regnum] = fi->frame;
+    get_frame_saved_regs (fi)[sp_regnum] = fi->frame;
 
   fi->extra_info->f_offset = depth - where[fp_regnum]; 
 }
@@ -1596,10 +1596,10 @@ sh_fp_frame_init_saved_regs (struct frame_info *fi)
   char *dummy_regs = deprecated_generic_find_dummy_frame (get_frame_pc (fi), fi->frame);
   struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); 
   
-  if (fi->saved_regs == NULL)
+  if (get_frame_saved_regs (fi) == NULL)
     frame_saved_regs_zalloc (fi);
   else
-    memset (fi->saved_regs, 0, SIZEOF_FRAME_SAVED_REGS);
+    memset (get_frame_saved_regs (fi), 0, SIZEOF_FRAME_SAVED_REGS);
   
   if (dummy_regs)
     {
@@ -1692,22 +1692,22 @@ sh_fp_frame_init_saved_regs (struct frame_info *fi)
          if (rn == FP_REGNUM)
            have_fp = 1;
 
-         fi->saved_regs[rn] = fi->frame - where[rn] + depth - 4;
+         get_frame_saved_regs (fi)[rn] = fi->frame - where[rn] + depth - 4;
        }
       else
        {
-         fi->saved_regs[rn] = 0;
+         get_frame_saved_regs (fi)[rn] = 0;
        }
     }
 
   if (have_fp)
     {
-      fi->saved_regs[SP_REGNUM] =
-       read_memory_integer (fi->saved_regs[FP_REGNUM], 4);
+      get_frame_saved_regs (fi)[SP_REGNUM] =
+       read_memory_integer (get_frame_saved_regs (fi)[FP_REGNUM], 4);
     }
   else
     {
-      fi->saved_regs[SP_REGNUM] = fi->frame - 4;
+      get_frame_saved_regs (fi)[SP_REGNUM] = fi->frame - 4;
     }
 
   fi->extra_info->f_offset = depth - where[FP_REGNUM] - 4;
@@ -1828,8 +1828,8 @@ sh64_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp,
        }
 
       FRAME_INIT_SAVED_REGS (frame);
-      if (frame->saved_regs != NULL
-         && frame->saved_regs[regnum] != 0)
+      if (get_frame_saved_regs (frame) != NULL
+         && get_frame_saved_regs (frame)[regnum] != 0)
        {
          if (lval)             /* found it saved on the stack */
            *lval = lval_memory;
@@ -1837,13 +1837,13 @@ sh64_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp,
            {
              if (raw_buffer)   /* SP register treated specially */
                store_address (raw_buffer, REGISTER_RAW_SIZE (regnum),
-                              frame->saved_regs[regnum]);
+                              get_frame_saved_regs (frame)[regnum]);
            }
          else
            { /* any other register */
              
              if (addrp)
-               *addrp = frame->saved_regs[regnum];
+               *addrp = get_frame_saved_regs (frame)[regnum];
              if (raw_buffer)
                {
                  int size;
@@ -1854,9 +1854,9 @@ sh64_get_saved_register (char *raw_buffer, int *optimized, CORE_ADDR *addrp,
                  else
                    size = REGISTER_RAW_SIZE (live_regnum);
                  if (TARGET_BYTE_ORDER == BFD_ENDIAN_LITTLE)
-                   read_memory (frame->saved_regs[regnum], raw_buffer, size);
+                   read_memory (get_frame_saved_regs (frame)[regnum], raw_buffer, size);
                  else
-                   read_memory (frame->saved_regs[regnum],
+                   read_memory (get_frame_saved_regs (frame)[regnum],
                                 raw_buffer
                                 + REGISTER_RAW_SIZE (live_regnum)
                                 - size,
@@ -1918,9 +1918,9 @@ sh_pop_frame (void)
 
       /* Copy regs from where they were saved in the frame */
       for (regnum = 0; regnum < NUM_REGS + NUM_PSEUDO_REGS; regnum++)
-       if (frame->saved_regs[regnum])
+       if (get_frame_saved_regs (frame)[regnum])
          write_register (regnum,
-                         read_memory_integer (frame->saved_regs[regnum], 4));
+                         read_memory_integer (get_frame_saved_regs (frame)[regnum], 4));
 
       write_register (PC_REGNUM, frame->extra_info->return_pc);
       write_register (SP_REGNUM, fp + 4);
@@ -1948,7 +1948,7 @@ sh64_pop_frame (void)
 
       /* Copy regs from where they were saved in the frame */
       for (regnum = 0; regnum < NUM_REGS + NUM_PSEUDO_REGS; regnum++)
-       if (frame->saved_regs[regnum])
+       if (get_frame_saved_regs (frame)[regnum])
          {
            int size;
            if (tdep->sh_abi == SH_ABI_32
@@ -1959,7 +1959,7 @@ sh64_pop_frame (void)
              size = REGISTER_RAW_SIZE (translate_insn_rn (regnum,
                                                           media_mode));
            write_register (regnum,
-                           read_memory_integer (frame->saved_regs[regnum],
+                           read_memory_integer (get_frame_saved_regs (frame)[regnum],
                                                 size));
          }
 
index 13952d5..44b3a30 100644 (file)
@@ -802,8 +802,8 @@ v850_find_callers_reg (struct frame_info *fi, int regnum)
   for (; fi; fi = fi->next)
     if (DEPRECATED_PC_IN_CALL_DUMMY (get_frame_pc (fi), fi->frame, fi->frame))
       return deprecated_read_register_dummy (get_frame_pc (fi), fi->frame, regnum);
-    else if (fi->saved_regs[regnum] != 0)
-      return read_memory_unsigned_integer (fi->saved_regs[regnum],
+    else if (get_frame_saved_regs (fi)[regnum] != 0)
+      return read_memory_unsigned_integer (get_frame_saved_regs (fi)[regnum],
                                           v850_register_raw_size (regnum));
 
   return read_register (regnum);
@@ -890,9 +890,9 @@ v850_pop_frame (void)
       write_register (E_PC_REGNUM, FRAME_SAVED_PC (frame));
 
       for (regnum = 0; regnum < E_NUM_REGS; regnum++)
-       if (frame->saved_regs[regnum] != 0)
+       if (get_frame_saved_regs (frame)[regnum] != 0)
          write_register (regnum,
-                     read_memory_unsigned_integer (frame->saved_regs[regnum],
+                     read_memory_unsigned_integer (get_frame_saved_regs (frame)[regnum],
                                             v850_register_raw_size (regnum)));
 
       write_register (E_SP_REGNUM, get_frame_base (frame));
@@ -1105,7 +1105,7 @@ v850_frame_init_saved_regs (struct frame_info *fi)
   struct pifsr pifsrs[E_NUM_REGS + 1], *pifsr;
   CORE_ADDR func_addr, func_end;
 
-  if (!fi->saved_regs)
+  if (!get_frame_saved_regs (fi))
     {
       frame_saved_regs_zalloc (fi);
 
@@ -1127,10 +1127,10 @@ v850_frame_init_saved_regs (struct frame_info *fi)
 
          for (pifsr = pifsrs; pifsr->framereg; pifsr++)
            {
-             fi->saved_regs[pifsr->reg] = pifsr->offset + fi->frame;
+             get_frame_saved_regs (fi)[pifsr->reg] = pifsr->offset + fi->frame;
 
              if (pifsr->framereg == E_SP_REGNUM)
-               fi->saved_regs[pifsr->reg] += pi.frameoffset;
+               get_frame_saved_regs (fi)[pifsr->reg] += pi.frameoffset;
            }
        }
       /* Else we're out of luck (can't debug completely stripped code). 
index d3deda6..c467e13 100644 (file)
@@ -129,7 +129,7 @@ vax_frame_init_saved_regs (struct frame_info *frame)
   int regnum, regmask;
   CORE_ADDR next_addr;
 
-  if (frame->saved_regs)
+  if (get_frame_saved_regs (frame))
     return;
 
   frame_saved_regs_zalloc (frame);
@@ -143,18 +143,18 @@ vax_frame_init_saved_regs (struct frame_info *frame)
   for (regnum = 0; regnum < VAX_AP_REGNUM; regnum++)
     {
       if (regmask & (1 << regnum))
-        frame->saved_regs[regnum] = next_addr += 4;
+        get_frame_saved_regs (frame)[regnum] = next_addr += 4;
     }
 
-  frame->saved_regs[SP_REGNUM] = next_addr + 4;
+  get_frame_saved_regs (frame)[SP_REGNUM] = next_addr + 4;
   if (regmask & (1 << FP_REGNUM))
-    frame->saved_regs[SP_REGNUM] +=
+    get_frame_saved_regs (frame)[SP_REGNUM] +=
       4 + (4 * read_memory_integer (next_addr + 4, 4));
 
-  frame->saved_regs[PC_REGNUM] = frame->frame + 16;
-  frame->saved_regs[FP_REGNUM] = frame->frame + 12;
-  frame->saved_regs[VAX_AP_REGNUM] = frame->frame + 8;
-  frame->saved_regs[PS_REGNUM] = frame->frame + 4;
+  get_frame_saved_regs (frame)[PC_REGNUM] = frame->frame + 16;
+  get_frame_saved_regs (frame)[FP_REGNUM] = frame->frame + 12;
+  get_frame_saved_regs (frame)[VAX_AP_REGNUM] = frame->frame + 8;
+  get_frame_saved_regs (frame)[PS_REGNUM] = frame->frame + 4;
 }
 
 /* Get saved user PC for sigtramp from sigcontext for BSD style sigtramp.  */
index 580c0fe..4cf9794 100644 (file)
@@ -341,15 +341,15 @@ xstormy16_pop_frame (void)
     {
       /* Restore the saved regs. */
       for (i = 0; i < NUM_REGS; i++)
-       if (fi->saved_regs[i])
+       if (get_frame_saved_regs (fi)[i])
          {
            if (i == SP_REGNUM)
-             write_register (i, fi->saved_regs[i]);
+             write_register (i, get_frame_saved_regs (fi)[i]);
            else if (i == E_PC_REGNUM)
-             write_register (i, read_memory_integer (fi->saved_regs[i],
+             write_register (i, read_memory_integer (get_frame_saved_regs (fi)[i],
                                                      xstormy16_pc_size));
            else
-             write_register (i, read_memory_integer (fi->saved_regs[i],
+             write_register (i, read_memory_integer (get_frame_saved_regs (fi)[i],
                                                      xstormy16_reg_size));
          }
       /* Restore the PC */
@@ -490,7 +490,7 @@ xstormy16_scan_prologue (CORE_ADDR start_addr, CORE_ADDR end_addr,
          if (fi)
            {
              regnum = inst & 0x000f;
-             fi->saved_regs[regnum] = fi->extra_info->framesize;
+             get_frame_saved_regs (fi)[regnum] = fi->extra_info->framesize;
              fi->extra_info->framesize += xstormy16_reg_size;
            }
        }
@@ -546,7 +546,7 @@ xstormy16_scan_prologue (CORE_ADDR start_addr, CORE_ADDR end_addr,
              if (offset & 0x0800)
                offset -= 0x1000;
 
-             fi->saved_regs[regnum] = fi->extra_info->framesize + offset;
+             get_frame_saved_regs (fi)[regnum] = fi->extra_info->framesize + offset;
            }
          next_addr += xstormy16_inst_size;
        }
@@ -593,12 +593,12 @@ xstormy16_scan_prologue (CORE_ADDR start_addr, CORE_ADDR end_addr,
          previous value would have been pushed).  */
       if (fi->extra_info->frameless_p)
        {
-         fi->saved_regs[E_SP_REGNUM] = sp - fi->extra_info->framesize;
+         get_frame_saved_regs (fi)[E_SP_REGNUM] = sp - fi->extra_info->framesize;
          fi->frame = sp;
        }
       else
        {
-         fi->saved_regs[E_SP_REGNUM] = fp - fi->extra_info->framesize;
+         get_frame_saved_regs (fi)[E_SP_REGNUM] = fp - fi->extra_info->framesize;
          fi->frame = fp;
        }
 
@@ -607,11 +607,11 @@ xstormy16_scan_prologue (CORE_ADDR start_addr, CORE_ADDR end_addr,
          sp, fp and framesize. We know the beginning of the frame
          so we can translate the register offsets to real addresses. */
       for (regnum = 0; regnum < E_SP_REGNUM; ++regnum)
-       if (fi->saved_regs[regnum])
-         fi->saved_regs[regnum] += fi->saved_regs[E_SP_REGNUM];
+       if (get_frame_saved_regs (fi)[regnum])
+         get_frame_saved_regs (fi)[regnum] += get_frame_saved_regs (fi)[E_SP_REGNUM];
 
       /* Save address of PC on stack. */
-      fi->saved_regs[E_PC_REGNUM] = fi->saved_regs[E_SP_REGNUM];
+      get_frame_saved_regs (fi)[E_PC_REGNUM] = get_frame_saved_regs (fi)[E_SP_REGNUM];
     }
 
   return next_addr;
@@ -732,7 +732,7 @@ xstormy16_frame_init_saved_regs (struct frame_info *fi)
 {
   CORE_ADDR func_addr, func_end;
 
-  if (!fi->saved_regs)
+  if (!get_frame_saved_regs (fi))
     {
       frame_saved_regs_zalloc (fi);
 
@@ -763,7 +763,7 @@ xstormy16_frame_saved_pc (struct frame_info *fi)
     }
   else
     {
-      saved_pc = read_memory_unsigned_integer (fi->saved_regs[E_PC_REGNUM],
+      saved_pc = read_memory_unsigned_integer (get_frame_saved_regs (fi)[E_PC_REGNUM],
                                               xstormy16_pc_size);
     }