Changeset View
Changeset View
Standalone View
Standalone View
head/sys/powerpc/include/gdb_machdep.h
Show All 30 Lines | |||||
#ifndef _MACHINE_GDB_MACHDEP_H_ | #ifndef _MACHINE_GDB_MACHDEP_H_ | ||||
#define _MACHINE_GDB_MACHDEP_H_ | #define _MACHINE_GDB_MACHDEP_H_ | ||||
#ifdef BOOKE | #ifdef BOOKE | ||||
#define PPC_GDB_NREGS0 1 | #define PPC_GDB_NREGS0 1 | ||||
#define PPC_GDB_NREGS4 (70 + 1) | #define PPC_GDB_NREGS4 (70 + 1) | ||||
#define PPC_GDB_NREGS8 (1 + 32) | #define PPC_GDB_NREGS8 (1 + 32) | ||||
#define PPC_GDB_NREGS16 0 | #define PPC_GDB_NREGS16 0 | ||||
#else | #else | ||||
/* | |||||
* 0 - 32*GPR(4/8) | |||||
* 32 - 32*FPR(8) | |||||
* 64 - PC, PS (4/8) | |||||
* 66 - CR (4) | |||||
* 67 - LR, CTR (4/8) | |||||
* 69 - XER, FPSCR (4) | |||||
* 71 - 32*VR(16) | |||||
* 103 - VSCR, VRSAVE (4) | |||||
*/ | |||||
#define PPC_REGNUM_R0 0 | |||||
#define PPC_REGNUM_R31 (PPC_REGNUM_R0 + 31) | |||||
#define PPC_REGNUM_FR0 32 | |||||
#define PPC_REGNUM_FR31 (PPC_REGNUM_FR0 + 31) | |||||
#define PPC_REGNUM_PC 64 | |||||
#define PPC_REGNUM_PS 65 | |||||
#define PPC_REGNUM_CR 66 | |||||
#define PPC_REGNUM_LR 67 | |||||
#define PPC_REGNUM_CTR 68 | |||||
#define PPC_REGNUM_XER 69 | |||||
#define PPC_REGNUM_FPSCR 70 | |||||
#define PPC_REGNUM_VR0 71 | |||||
#define PPC_REGNUM_VR31 (PPC_REGNUM_VR0 + 31) | |||||
#define PPC_GDB_NREGS0 0 | #define PPC_GDB_NREGS0 0 | ||||
#ifdef __powerpc64__ | |||||
#define PPC_GDB_NREGS4 5 | |||||
#define PPC_GDB_NREGS8 (64 + 4) | |||||
#else | |||||
#define PPC_GDB_NREGS4 (32 + 7 + 2) | #define PPC_GDB_NREGS4 (32 + 7 + 2) | ||||
#define PPC_GDB_NREGS8 32 | #define PPC_GDB_NREGS8 32 | ||||
#endif | |||||
#define PPC_GDB_NREGS16 32 | #define PPC_GDB_NREGS16 32 | ||||
#endif | #endif | ||||
#define GDB_NREGS (PPC_GDB_NREGS0 + PPC_GDB_NREGS4 + \ | #define GDB_NREGS (PPC_GDB_NREGS0 + PPC_GDB_NREGS4 + \ | ||||
PPC_GDB_NREGS8 + PPC_GDB_NREGS16) | PPC_GDB_NREGS8 + PPC_GDB_NREGS16) | ||||
#define GDB_REG_PC 64 | #define GDB_REG_PC 64 | ||||
#define GDB_BUFSZ (PPC_GDB_NREGS4 * 8 + \ | #define GDB_BUFSZ (PPC_GDB_NREGS4 * 8 + \ | ||||
PPC_GDB_NREGS8 * 16 + \ | PPC_GDB_NREGS8 * 16 + \ | ||||
PPC_GDB_NREGS16 * 32) | PPC_GDB_NREGS16 * 32) | ||||
static __inline size_t | static __inline size_t | ||||
gdb_cpu_regsz(int regnum) | gdb_cpu_regsz(int regnum) | ||||
{ | { | ||||
#ifdef BOOKE | #ifdef BOOKE | ||||
if (regnum == 70) | if (regnum == 70) | ||||
return (0); | return (0); | ||||
if (regnum == 71 || regnum >= 73) | if (regnum == 71 || regnum >= 73) | ||||
return (8); | return (8); | ||||
#else | #else | ||||
if (regnum >= 32 && regnum <= 63) | #ifdef __powerpc64__ | ||||
if ((regnum >= PPC_REGNUM_R0 && regnum <= PPC_REGNUM_PS) || | |||||
regnum == PPC_REGNUM_LR || regnum == PPC_REGNUM_CTR) | |||||
return (8); | return (8); | ||||
if (regnum >= 71 && regnum <= 102) | #else | ||||
if (regnum >= PPC_REGNUM_FR0 && regnum <= PPC_REGNUM_FR31) | |||||
return (8); | |||||
#endif | |||||
if (regnum >= PPC_REGNUM_VR0 && regnum <= PPC_REGNUM_VR31) | |||||
return (16); | return (16); | ||||
#endif | #endif | ||||
return (4); | return (4); | ||||
} | } | ||||
static __inline int | static __inline int | ||||
gdb_cpu_query(void) | gdb_cpu_query(void) | ||||
{ | { | ||||
Show All 22 Lines |