|
@@ -44,7 +44,6 @@ struct hwbp {
|
44
|
44
|
|
45
|
45
|
static struct hwbp hwbps [ 4 ];
|
46
|
46
|
static gdbreg_t dr7 = DR7_CLEAR;
|
47
|
|
-static gdbreg_t dr6;
|
48
|
47
|
|
49
|
48
|
static struct hwbp *gdbmach_find_hwbp ( int type, unsigned long addr, size_t len ) {
|
50
|
49
|
struct hwbp *available = NULL;
|
|
@@ -131,14 +130,14 @@ int gdbmach_set_breakpoint ( int type, unsigned long addr, size_t len, int enabl
|
131
|
130
|
}
|
132
|
131
|
|
133
|
132
|
static void gdbmach_disable_hwbps ( void ) {
|
134
|
|
- /* Store and clear breakpoint status register */
|
135
|
|
- __asm__ __volatile__ ( "movl %%dr6, %0\n" "movl %1, %%dr6\n" : "=r" ( dr6 ) : "r" ( DR6_CLEAR ) );
|
136
|
|
-
|
137
|
133
|
/* Store and clear hardware breakpoints */
|
138
|
134
|
__asm__ __volatile__ ( "movl %0, %%dr7\n" : : "r" ( DR7_CLEAR ) );
|
139
|
135
|
}
|
140
|
136
|
|
141
|
137
|
static void gdbmach_enable_hwbps ( void ) {
|
|
138
|
+ /* Clear breakpoint status register */
|
|
139
|
+ __asm__ __volatile__ ( "movl %0, %%dr6\n" : : "r" ( DR6_CLEAR ) );
|
|
140
|
+
|
142
|
141
|
/* Restore hardware breakpoints */
|
143
|
142
|
__asm__ __volatile__ ( "movl %0, %%dr7\n" : : "r" ( dr7 ) );
|
144
|
143
|
}
|