View | Details | Raw Unified | Return to bug 251463 | Differences between
and this patch

Collapse All | Expand All

(-)sys/arm/include/gdb_machdep.h (+2 lines)
Lines 33-38 Link Here
33
33
34
#define	GDB_BUFSZ	400
34
#define	GDB_BUFSZ	400
35
#define	GDB_NREGS	26
35
#define	GDB_NREGS	26
36
#define GDB_REG_SP	13
37
#define GDB_REG_LR	14
36
#define	GDB_REG_PC	15
38
#define	GDB_REG_PC	15
37
39
38
static __inline size_t
40
static __inline size_t
(-)sys/arm/arm/gdb_machdep.c (-2 / +17 lines)
Lines 97-107 Link Here
97
void
97
void
98
gdb_cpu_setreg(int regnum, void *val)
98
gdb_cpu_setreg(int regnum, void *val)
99
{
99
{
100
	/* Quick return if the KDB thread doesn't match the current one. */
101
	if (kdb_thread != curthread)
102
		return;
100
103
101
	switch (regnum) {
104
	switch (regnum) {
102
	case GDB_REG_PC:
105
	case GDB_REG_PC:
103
		if (kdb_thread  == curthread)
106
		kdb_frame->tf_pc = *(register_t *)val;
104
			kdb_frame->tf_pc = *(register_t *)val;
107
		break;
108
	case GDB_REG_SP:
109
		kdb_frame->tf_svc_sp = *(register_t *)val;
110
		break;
111
	case GDB_REG_LR:
112
		kdb_frame->tf_svc_lr = *(register_t *)val;
113
		break;
114
	default:
115
		/* Write to the general purpose registers r0-r12. */
116
		if (regnum >= 0 && regnum <= 12) {
117
			*(&kdb_frame->tf_r0 + regnum) = *(register_t *)val;
118
		}
119
		break;
105
	}
120
	}
106
}
121
}
107
122

Return to bug 251463