Dmitry V. Levin
5105d4ac96
Apparently, there are only two types of instruction pointer printers depending on the architecture: those that print a register that was fetched earlier, and those that fetch a register themselves using upeek. With this change, architectures of the first type have ARCH_PC_REG defined in their arch_regs.c file, architectures of the first type have ARCH_PC_PEEK_ADDR defined there, and the common code in syscall.c uses these macros to print the instruction pointer. * Makefile.am (EXTRA_DIST): Remove linux/*/print_pc.c. * linux/*/print_pc.c: Remove. * linux/aarch64/arch_regs.c(ARCH_PC_REG): Define macro. * linux/arc/arch_regs.c(ARCH_PC_REG): Likewise. * linux/arm/arch_regs.c(ARCH_PC_REG): Likewise. * linux/avr32/arch_regs.c(ARCH_PC_REG): Likewise. * linux/i386/arch_regs.c(ARCH_PC_REG): Likewise. * linux/ia64/arch_regs.c(ARCH_PC_REG): Likewise. * linux/metag/arch_regs.c(ARCH_PC_REG): Likewise. * linux/mips/arch_regs.c(ARCH_PC_REG): Likewise. * linux/nios2/arch_regs.c(ARCH_PC_REG): Likewise. * linux/or1k/arch_regs.c(ARCH_PC_REG): Likewise. * linux/powerpc64/arch_regs.c(ARCH_PC_REG): Likewise. * linux/powerpc/arch_regs.c(ARCH_PC_REG): Likewise. * linux/s390/arch_regs.c(ARCH_PC_REG): Likewise. * linux/s390x/arch_regs.c(ARCH_PC_REG): Likewise. * linux/sparc64/arch_regs.c(ARCH_PC_REG): Likewise. * linux/sparc/arch_regs.c(ARCH_PC_REG): Likewise. * linux/tile/arch_regs.c(ARCH_PC_REG): Likewise. * linux/x32/arch_regs.c(ARCH_PC_REG): Likewise. * linux/x86_64/arch_regs.c(ARCH_PC_REG): Likewise. * linux/alpha/arch_regs.c(ARCH_PC_PEEK_ADDR): Define macro. * linux/bfin/arch_regs.c(ARCH_PC_PEEK_ADDR): Likewise. * linux/crisv10/arch_regs.c(ARCH_PC_PEEK_ADDR): Likewise. * linux/crisv32/arch_regs.c(ARCH_PC_PEEK_ADDR): Likewise. * linux/hppa/arch_regs.c(ARCH_PC_PEEK_ADDR): Likewise. * linux/m68k/arch_regs.c(ARCH_PC_PEEK_ADDR): Likewise. * linux/microblaze/arch_regs.c(ARCH_PC_PEEK_ADDR): Likewise. * linux/sh64/arch_regs.c(ARCH_PC_PEEK_ADDR): Likewise. * linux/sh/arch_regs.c(ARCH_PC_PEEK_ADDR): Likewise. * linux/xtensa/arch_regs.c(ARCH_PC_PEEK_ADDR): Likewise. * syscall.c (print_pc): Stop including "print_pc.c". Use ARCH_PC_REG or ARCH_PC_PEEK_ADDR.
6 lines
255 B
C
6 lines
255 B
C
/* PTRACE_GETREGSET on S390 is available since linux v2.6.27. */
|
|
static struct user_regs_struct s390_regset;
|
|
unsigned long *const s390_frame_ptr = &s390_regset.gprs[15];
|
|
#define ARCH_REGS_FOR_GETREGSET s390_regset
|
|
#define ARCH_PC_REG s390_regset.psw.addr
|