Add missing comments in rs6000-tdep.c, ppc64-tdep.c and ppc-linux-tdep.c.

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.
This commit is contained in:
Wei-cheng Wang 2015-01-19 23:34:07 +08:00
parent 6c1965f995
commit ddeca1dffb
4 changed files with 70 additions and 13 deletions

View 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)

View 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,

View 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)

View 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,