From J.T.: Convert i386 to updated frame_saved_regs.
authorAndrew Cagney <cagney@redhat.com>
Tue, 29 Feb 2000 13:28:24 +0000 (13:28 +0000)
committerAndrew Cagney <cagney@redhat.com>
Tue, 29 Feb 2000 13:28:24 +0000 (13:28 +0000)
gdb/ChangeLog
gdb/config/i386/tm-i386.h
gdb/i386-tdep.c

index 907c3722c90234c66995bc23b7eeebd1358c2ebf..451cffa4462319ea8154e520740dc7c49f6dbb03 100644 (file)
@@ -1,3 +1,12 @@
+Wed Mar  1 00:06:19 2000  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       From 1999-08-13 J.T. Conklin <jtc@redback.com>:
+        * config/i386/tm-i386.h (FRAME_INIT_SAVED_REGS): Replace
+        FRAME_FIND_SAVED_REGS.
+        (i386_frame_init_saved_regs): Replace i386_frame_find_saved_regs.
+        * i386-tdep.c (i386_frame_init_saved_regs, i386_pop_frame):
+        Update.
+
 Tue Feb 29 23:56:41 2000  Andrew Cagney  <cagney@b1.cygnus.com>
 
        From 2000-02-23 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>:
index 51818453ad4a60a437e59120fc144844054c0f24..6e3207ef1157eca9cd4fc596759db8c61a80545f 100644 (file)
@@ -357,11 +357,9 @@ extern int i386_frame_num_args PARAMS ((struct frame_info *));
    ways in the stack frame.  sp is even more special:
    the address we return for it IS the sp for the next frame.  */
 
-#define FRAME_FIND_SAVED_REGS(frame_info, frame_saved_regs) \
-{ i386_frame_find_saved_regs ((frame_info), &(frame_saved_regs)); }
+extern void i386_frame_init_saved_regs PARAMS ((struct frame_info *));
+#define FRAME_INIT_SAVED_REGS(FI) i386_frame_init_saved_regs (FI)
 
-extern void i386_frame_find_saved_regs PARAMS ((struct frame_info *,
-                                               struct frame_saved_regs *));
 \f
 
 /* Things needed for making the inferior call functions.  */
index 4df478ebf43f5b991abb568497fd3beb51bcb5b7..c381961eeb23c869ff0b0c0839f519fead7f0c19 100644 (file)
@@ -475,9 +475,8 @@ i386_frame_num_args (fi)
  */
 
 void
-i386_frame_find_saved_regs (fip, fsrp)
+i386_frame_init_saved_regs (fip)
      struct frame_info *fip;
-     struct frame_saved_regs *fsrp;
 {
   long locals = -1;
   unsigned char op;
@@ -486,7 +485,10 @@ i386_frame_find_saved_regs (fip, fsrp)
   CORE_ADDR pc;
   int i;
 
-  memset (fsrp, 0, sizeof *fsrp);
+  if (fip->saved_regs)
+    return;
+
+  frame_saved_regs_zalloc (fip);
 
   /* if frame is the end of a dummy, compute where the
    * beginning would be
@@ -501,7 +503,7 @@ i386_frame_find_saved_regs (fip, fsrp)
       for (i = 0; i < NUM_REGS; i++)
        {
          adr -= REGISTER_RAW_SIZE (i);
-         fsrp->regs[i] = adr;
+         fip->saved_regs[i] = adr;
        }
       return;
     }
@@ -520,16 +522,16 @@ i386_frame_find_saved_regs (fip, fsrp)
            break;
 #ifdef I386_REGNO_TO_SYMMETRY
          /* Dynix uses different internal numbering.  Ick.  */
-         fsrp->regs[I386_REGNO_TO_SYMMETRY (op - 0x50)] = adr;
+         fip->saved_regs[I386_REGNO_TO_SYMMETRY (op - 0x50)] = adr;
 #else
-         fsrp->regs[op - 0x50] = adr;
+         fip->saved_regs[op - 0x50] = adr;
 #endif
          adr -= 4;
        }
     }
 
-  fsrp->regs[PC_REGNUM] = fip->frame + 4;
-  fsrp->regs[FP_REGNUM] = fip->frame;
+  fip->saved_regs[PC_REGNUM] = fip->frame + 4;
+  fip->saved_regs[FP_REGNUM] = fip->frame;
 }
 
 /* return pc of first real instruction */
@@ -640,15 +642,15 @@ i386_pop_frame ()
   struct frame_info *frame = get_current_frame ();
   CORE_ADDR fp;
   int regnum;
-  struct frame_saved_regs fsr;
   char regbuf[MAX_REGISTER_RAW_SIZE];
 
   fp = FRAME_FP (frame);
-  get_frame_saved_regs (frame, &fsr);
+  i386_frame_init_saved_regs (frame);
+
   for (regnum = 0; regnum < NUM_REGS; regnum++)
     {
       CORE_ADDR adr;
-      adr = fsr.regs[regnum];
+      adr = frame->saved_regs[regnum];
       if (adr)
        {
          read_memory (adr, regbuf, REGISTER_RAW_SIZE (regnum));