Add missing comments in rs6000-tdep.c, ppc64-tdep.c and ppc-linux-tdep.c.
authorWei-cheng Wang <cole945@gmail.com>
Mon, 19 Jan 2015 15:34:07 +0000 (23:34 +0800)
committerWei-cheng Wang <cole945@gmail.com>
Wed, 21 Jan 2015 15:38:09 +0000 (23:38 +0800)
gdb/ChangeLog:

* ppc-linux-tdep.c (ppc_skip_trampoline_code,
ppc_canonicalize_syscall, ppc_linux_syscall_record,
ppc_linux_record_signal, ppc_init_linux_record_tdep): Add comments.
* ppc64-tdep.c (ppc64_skip_trampoline_code): Likewise.
* rs6000-tdep.c (rs6000_epilogue_frame_cache,
rs6000_epilogue_frame_this_id, rs6000_epilogue_frame_prev_register,
rs6000_epilogue_frame_sniffer, ppc_record_vsr, ppc_process_record_op4,
ppc_process_record_op19, ppc_process_record_op31,
ppc_process_record_op59, ppc_process_record_op60,
ppc_process_record_op63): Likewise.

gdb/ChangeLog
gdb/ppc-linux-tdep.c
gdb/ppc64-tdep.c
gdb/rs6000-tdep.c

index 8a7e1b08a395b67caf2800919ab38e52d07c9ba7..bdaa209e914c333190c3c69d78644adf243767e7 100644 (file)
@@ -1,3 +1,16 @@
+2015-01-21  Wei-cheng Wang  <cole945@gmail.com>
+
+       * ppc-linux-tdep.c (ppc_skip_trampoline_code,
+       ppc_canonicalize_syscall, ppc_linux_syscall_record,
+       ppc_linux_record_signal, ppc_init_linux_record_tdep): Add comments.
+       * ppc64-tdep.c (ppc64_skip_trampoline_code): Likewise.
+       * rs6000-tdep.c (rs6000_epilogue_frame_cache,
+       rs6000_epilogue_frame_this_id, rs6000_epilogue_frame_prev_register,
+       rs6000_epilogue_frame_sniffer, ppc_record_vsr, ppc_process_record_op4,
+       ppc_process_record_op19, ppc_process_record_op31,
+       ppc_process_record_op59, ppc_process_record_op60,
+       ppc_process_record_op63): Likewise.
+
 2015-01-20  Joel Brobecker  <brobecker@adacore.com>
 
        * nat/linux-ptrace.c (linux_ptrace_attach_fail_reason_string)
index 13bb479fe3a375b9d4ac830637fc4ae782579c20..a7b1163571642b4ad47bc880a2f8dae754e9e5a8 100644 (file)
@@ -305,7 +305,12 @@ powerpc_linux_in_dynsym_resolve_code (CORE_ADDR pc)
   return 0;
 }
 
-/* Follow PLT stub to actual routine.  */
+/* Follow PLT stub to actual routine.
+
+   When the execution direction is EXEC_REVERSE, scan backward to
+   check whether we are in the middle of a PLT stub.  Currently,
+   we only look-behind at most 4 instructions (the max length of PLT
+   stub sequence.  */
 
 static CORE_ADDR
 ppc_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
@@ -791,11 +796,16 @@ ppc_linux_get_syscall_number (struct gdbarch *gdbarch,
 static struct linux_record_tdep ppc_linux_record_tdep;
 static struct linux_record_tdep ppc64_linux_record_tdep;
 
+/* ppc_canonicalize_syscall maps from the native PowerPC Linux set of
+   syscall ids into a canonical set of syscall ids used by process
+   record.  (See arch/powerpc/include/uapi/asm/unistd.h in kernel tree.)
+   Return -1 if this system call is not supported by process record.
+   Otherwise, return the syscall number for preocess reocrd of given
+   SYSCALL.  */
+
 static enum gdb_syscall
 ppc_canonicalize_syscall (int syscall)
 {
-  /* See arch/powerpc/include/uapi/asm/unistd.h */
-
   if (syscall <= 165)
     return syscall;
   else if (syscall >= 167 && syscall <= 190)   /* Skip query_module 166 */
@@ -821,6 +831,9 @@ ppc_canonicalize_syscall (int syscall)
   return -1;
 }
 
+/* Record registers which might be clobbered during system call.
+   Return 0 if successful.  */
+
 static int
 ppc_linux_syscall_record (struct regcache *regcache)
 {
@@ -901,6 +914,9 @@ ppc_linux_syscall_record (struct regcache *regcache)
   return 0;
 }
 
+/* Record registers which might be clobbered during signal handling.
+   Return 0 if successful.  */
+
 static int
 ppc_linux_record_signal (struct gdbarch *gdbarch, struct regcache *regcache,
                         enum gdb_signal signal)
@@ -1417,7 +1433,9 @@ static const struct frame_unwind ppu2spu_unwind = {
   ppu2spu_prev_arch,
 };
 
-/* Initialize linux_record_tdep if not initialized yet.  */
+/* Initialize linux_record_tdep if not initialized yet.
+   WORDSIZE is 4 or 8 for 32- or 64-bit PowerPC Linux respectively.
+   Sizes of data structures are initialized accordingly.  */
 
 static void
 ppc_init_linux_record_tdep (struct linux_record_tdep *record_tdep,
index 66d7b2362e1487326ff139a2fe6f0ae1da941ddc..bb23b6a2ee3ece496bec7f35ee7969cdfddfa9c0 100644 (file)
@@ -449,7 +449,10 @@ ppc64_standard_linkage4_target (struct frame_info *frame,
 
 
 /* Given that we've begun executing a call trampoline at PC, return
-   the entry point of the function the trampoline will go to.  */
+   the entry point of the function the trampoline will go to.
+
+   When the execution direction is EXEC_REVERSE, scan backward to
+   check whether we are in the middle of a PLT stub.  */
 
 CORE_ADDR
 ppc64_skip_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
index 1dd6165331ef79d185d02bc76e0f1640a8ecaa2c..ef94bba58b26d420d4a53b41c945e7ec785d9780 100644 (file)
@@ -3349,6 +3349,9 @@ static const struct frame_unwind rs6000_frame_unwind =
   default_frame_sniffer
 };
 
+/* Allocate and initialize a frame cache for an epilogue frame.
+   SP is restored and prev-PC is stored in LR.  */
+
 static struct rs6000_frame_cache *
 rs6000_epilogue_frame_cache (struct frame_info *this_frame, void **this_cache)
 {
@@ -3385,6 +3388,9 @@ rs6000_epilogue_frame_cache (struct frame_info *this_frame, void **this_cache)
   return cache;
 }
 
+/* Implementation of frame_unwind.this_id, as defined in frame_unwind.h.
+   Return the frame ID of an epilogue frame.  */
+
 static void
 rs6000_epilogue_frame_this_id (struct frame_info *this_frame,
                               void **this_cache, struct frame_id *this_id)
@@ -3400,6 +3406,9 @@ rs6000_epilogue_frame_this_id (struct frame_info *this_frame,
     (*this_id) = frame_id_build (info->base, pc);
 }
 
+/* Implementation of frame_unwind.prev_register, as defined in frame_unwind.h.
+   Return the register value of REGNUM in previous frame.  */
+
 static struct value *
 rs6000_epilogue_frame_prev_register (struct frame_info *this_frame,
                                     void **this_cache, int regnum)
@@ -3409,6 +3418,9 @@ rs6000_epilogue_frame_prev_register (struct frame_info *this_frame,
   return trad_frame_get_prev_register (this_frame, info->saved_regs, regnum);
 }
 
+/* Implementation of frame_unwind.sniffer, as defined in frame_unwind.h.
+   Check whether this an epilogue frame.  */
+
 static int
 rs6000_epilogue_frame_sniffer (const struct frame_unwind *self,
                               struct frame_info *this_frame,
@@ -3422,6 +3434,9 @@ rs6000_epilogue_frame_sniffer (const struct frame_unwind *self,
     return 0;
 }
 
+/* Frame unwinder for epilogue frame.  This is required for reverse step-over
+   a function without debug information.  */
+
 static const struct frame_unwind rs6000_epilogue_frame_unwind =
 {
   NORMAL_FRAME,
@@ -3668,7 +3683,9 @@ bfd_uses_spe_extensions (bfd *abfd)
 #define PPC_XT(insn)   ((PPC_TX (insn) << 5) | PPC_T (insn))
 #define PPC_XER_NB(xer)        (xer & 0x7f)
 
-/* Record Vector-Scalar Registers.  */
+/* Record Vector-Scalar Registers.
+   For VSR less than 32, it's represented by an FPR and an VSR-upper register.
+   Otherwise, it's just a VR register.  Record them accordingly.  */
 
 static int
 ppc_record_vsr (struct regcache *regcache, struct gdbarch_tdep *tdep, int vsr)
@@ -3693,11 +3710,12 @@ ppc_record_vsr (struct regcache *regcache, struct gdbarch_tdep *tdep, int vsr)
   return 0;
 }
 
-/* Parse instructions of primary opcode-4.  */
+/* Parse and record instructions primary opcode-4 at ADDR.
+   Return 0 if successful.  */
 
 static int
 ppc_process_record_op4 (struct gdbarch *gdbarch, struct regcache *regcache,
-                          CORE_ADDR addr, uint32_t insn)
+                       CORE_ADDR addr, uint32_t insn)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
   int ext = PPC_FIELD (insn, 21, 11);
@@ -3961,7 +3979,8 @@ ppc_process_record_op4 (struct gdbarch *gdbarch, struct regcache *regcache,
   return -1;
 }
 
-/* Parse instructions of primary opcode-19.  */
+/* Parse and record instructions of primary opcode-19 at ADDR.
+   Return 0 if successful.  */
 
 static int
 ppc_process_record_op19 (struct gdbarch *gdbarch, struct regcache *regcache,
@@ -4004,7 +4023,8 @@ ppc_process_record_op19 (struct gdbarch *gdbarch, struct regcache *regcache,
   return -1;
 }
 
-/* Parse instructions of primary opcode-31.  */
+/* Parse and record instructions of primary opcode-31 at ADDR.
+   Return 0 if successful.  */
 
 static int
 ppc_process_record_op31 (struct gdbarch *gdbarch, struct regcache *regcache,
@@ -4482,7 +4502,8 @@ UNKNOWN_OP:
   return -1;
 }
 
-/* Parse instructions of primary opcode-59.  */
+/* Parse and record instructions of primary opcode-59 at ADDR.
+   Return 0 if successful.  */
 
 static int
 ppc_process_record_op59 (struct gdbarch *gdbarch, struct regcache *regcache,
@@ -4574,7 +4595,8 @@ ppc_process_record_op59 (struct gdbarch *gdbarch, struct regcache *regcache,
   return -1;
 }
 
-/* Parse instructions of primary opcode-60.  */
+/* Parse and record instructions of primary opcode-60 at ADDR.
+   Return 0 if successful.  */
 
 static int
 ppc_process_record_op60 (struct gdbarch *gdbarch, struct regcache *regcache,
@@ -4856,7 +4878,8 @@ ppc_process_record_op60 (struct gdbarch *gdbarch, struct regcache *regcache,
   return -1;
 }
 
-/* Parse instructions of primary opcode-63.  */
+/* Parse and record instructions of primary opcode-63 at ADDR.
+   Return 0 if successful.  */
 
 static int
 ppc_process_record_op63 (struct gdbarch *gdbarch, struct regcache *regcache,