2002-01-23 Elena Zannoni <ezannoni@redhat.com>
authorElena Zannoni <ezannoni@kwikemart.cygnus.com>
Thu, 24 Jan 2002 02:58:24 +0000 (02:58 +0000)
committerElena Zannoni <ezannoni@kwikemart.cygnus.com>
Thu, 24 Jan 2002 02:58:24 +0000 (02:58 +0000)
* ppc-linux-nat.c (ppc_register_u_addr, supply_gregset,
fill_gregset): Call gdbarch_tdep() just once, assign result to
variable and use that, instead of calling the function several
times.

gdb/ChangeLog
gdb/ppc-linux-nat.c

index 7de690d0a3e5faabdf49efcb52ae52c2a42ead50..123aca287b9c9ecb9d1b756a3c8620c365b0d30f 100644 (file)
@@ -1,3 +1,10 @@
+2002-01-23  Elena Zannoni  <ezannoni@redhat.com>
+
+       * ppc-linux-nat.c (ppc_register_u_addr, supply_gregset,
+       fill_gregset): Call gdbarch_tdep() just once, assign result to
+       variable and use that, instead of calling the function several
+       times.
+
 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
 
        * configure.host: Accept sparcv9 as alias for sparc64.
index a967f486b6683c2f8133336f668824ce3d7ff173..dac59d417a49d461f38eca5dc8eb0d921eb7880d 100644 (file)
@@ -73,10 +73,10 @@ static int
 ppc_register_u_addr (int regno)
 {
   int u_addr = -1;
+  struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch);
 
   /* General purpose registers occupy 1 slot each in the buffer */
-  if (regno >= gdbarch_tdep (current_gdbarch)->ppc_gp0_regnum
-      && regno <= gdbarch_tdep (current_gdbarch)->ppc_gplast_regnum )
+  if (regno >= tdep->ppc_gp0_regnum && regno <= tdep->ppc_gplast_regnum )
     u_addr =  ((PT_R0 + regno) * 4);
 
   /* Floating point regs: 2 slots each */
@@ -86,17 +86,17 @@ ppc_register_u_addr (int regno)
   /* UISA special purpose registers: 1 slot each */
   if (regno == PC_REGNUM)
     u_addr = PT_NIP * 4;
-  if (regno == gdbarch_tdep (current_gdbarch)->ppc_lr_regnum)
+  if (regno == tdep->ppc_lr_regnum)
     u_addr = PT_LNK * 4;
-  if (regno == gdbarch_tdep (current_gdbarch)->ppc_cr_regnum)
+  if (regno == tdep->ppc_cr_regnum)
     u_addr = PT_CCR * 4;
-  if (regno == gdbarch_tdep (current_gdbarch)->ppc_xer_regnum)
+  if (regno == tdep->ppc_xer_regnum)
     u_addr = PT_XER * 4;
-  if (regno == gdbarch_tdep (current_gdbarch)->ppc_ctr_regnum)
+  if (regno == tdep->ppc_ctr_regnum)
     u_addr = PT_CTR * 4;
-  if (regno == gdbarch_tdep (current_gdbarch)->ppc_mq_regnum)
+  if (regno == tdep->ppc_mq_regnum)
     u_addr = PT_MQ * 4;
-  if (regno == gdbarch_tdep (current_gdbarch)->ppc_ps_regnum)
+  if (regno == tdep->ppc_ps_regnum)
     u_addr = PT_MSR * 4;
 
   return u_addr;
@@ -229,23 +229,18 @@ supply_gregset (gdb_gregset_t *gregsetp)
 {
   int regi;
   register elf_greg_t *regp = (elf_greg_t *) gregsetp;
+  struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); 
 
   for (regi = 0; regi < 32; regi++)
     supply_register (regi, (char *) (regp + regi));
 
   supply_register (PC_REGNUM, (char *) (regp + PT_NIP));
-  supply_register (gdbarch_tdep (current_gdbarch)->ppc_lr_regnum,
-                  (char *) (regp + PT_LNK));
-  supply_register (gdbarch_tdep (current_gdbarch)->ppc_cr_regnum,
-                  (char *) (regp + PT_CCR));
-  supply_register (gdbarch_tdep (current_gdbarch)->ppc_xer_regnum,
-                  (char *) (regp + PT_XER));
-  supply_register (gdbarch_tdep (current_gdbarch)->ppc_ctr_regnum,
-                  (char *) (regp + PT_CTR));
-  supply_register (gdbarch_tdep (current_gdbarch)->ppc_mq_regnum,
-                  (char *) (regp + PT_MQ));
-  supply_register (gdbarch_tdep (current_gdbarch)->ppc_ps_regnum,
-                  (char *) (regp + PT_MSR));
+  supply_register (tdep->ppc_lr_regnum, (char *) (regp + PT_LNK));
+  supply_register (tdep->ppc_cr_regnum, (char *) (regp + PT_CCR));
+  supply_register (tdep->ppc_xer_regnum, (char *) (regp + PT_XER));
+  supply_register (tdep->ppc_ctr_regnum, (char *) (regp + PT_CTR));
+  supply_register (tdep->ppc_mq_regnum, (char *) (regp + PT_MQ));
+  supply_register (tdep->ppc_ps_regnum, (char *) (regp + PT_MSR));
 }
 
 void
@@ -253,6 +248,7 @@ fill_gregset (gdb_gregset_t *gregsetp, int regno)
 {
   int regi;
   elf_greg_t *regp = (elf_greg_t *) gregsetp;
+  struct gdbarch_tdep *tdep = gdbarch_tdep (current_gdbarch); 
 
   for (regi = 0; regi < 32; regi++)
     {
@@ -263,29 +259,23 @@ fill_gregset (gdb_gregset_t *gregsetp, int regno)
   if ((regno == -1) || regno == PC_REGNUM)
     regcache_collect (PC_REGNUM, regp + PT_NIP);
   if ((regno == -1) 
-      || regno == gdbarch_tdep (current_gdbarch)->ppc_lr_regnum)
-    regcache_collect (gdbarch_tdep (current_gdbarch)->ppc_lr_regnum,
-                     regp + PT_LNK);
+      || regno == tdep->ppc_lr_regnum)
+    regcache_collect (tdep->ppc_lr_regnum, regp + PT_LNK);
   if ((regno == -1)
-      || regno == gdbarch_tdep (current_gdbarch)->ppc_cr_regnum)
-    regcache_collect (gdbarch_tdep (current_gdbarch)->ppc_cr_regnum,
-                     regp + PT_CCR);
+      || regno == tdep->ppc_cr_regnum)
+    regcache_collect (tdep->ppc_cr_regnum, regp + PT_CCR);
   if ((regno == -1)
-      || regno == gdbarch_tdep (current_gdbarch)->ppc_xer_regnum)
-    regcache_collect (gdbarch_tdep (current_gdbarch)->ppc_xer_regnum,
-                     regp + PT_XER);
+      || regno == tdep->ppc_xer_regnum)
+    regcache_collect (tdep->ppc_xer_regnum, regp + PT_XER);
   if ((regno == -1)
-      || regno == gdbarch_tdep (current_gdbarch)->ppc_ctr_regnum)
-    regcache_collect (gdbarch_tdep (current_gdbarch)->ppc_ctr_regnum,
-                     regp + PT_CTR);
+      || regno == tdep->ppc_ctr_regnum)
+    regcache_collect (tdep->ppc_ctr_regnum, regp + PT_CTR);
   if ((regno == -1)
-      || regno == gdbarch_tdep (current_gdbarch)->ppc_mq_regnum)
-    regcache_collect (gdbarch_tdep (current_gdbarch)->ppc_mq_regnum,
-                     regp + PT_MQ);
+      || regno == tdep->ppc_mq_regnum)
+    regcache_collect (tdep->ppc_mq_regnum, regp + PT_MQ);
   if ((regno == -1)
-      || regno == gdbarch_tdep (current_gdbarch)->ppc_ps_regnum)
-    regcache_collect (gdbarch_tdep (current_gdbarch)->ppc_ps_regnum,
-                     regp + PT_MSR);
+      || regno == tdep->ppc_ps_regnum)
+    regcache_collect (tdep->ppc_ps_regnum, regp + PT_MSR);
 }
 
 void