aboutsummaryrefslogtreecommitdiff
path: root/target-i386/machine.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2015-09-15 11:45:08 -0700
committerEduardo Habkost <ehabkost@redhat.com>2015-10-23 12:59:27 -0200
commit93d00d0fbe4711061834730fb70525d167b6f908 (patch)
tree32e7d5e9545ff139ca92912129eae886cb28d438 /target-i386/machine.c
parente265e3e48049fbece9eaf536aa00ca41aa3c54d0 (diff)
target-i386: Introduce cpu_x86_update_dr7
This moves the last of the iteration over breakpoints into the bpt_helper.c file. This also allows us to make several breakpoint functions static. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'target-i386/machine.c')
-rw-r--r--target-i386/machine.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/target-i386/machine.c b/target-i386/machine.c
index 67373663d0..a18e16e0de 100644
--- a/target-i386/machine.c
+++ b/target-i386/machine.c
@@ -367,8 +367,12 @@ static int cpu_post_load(void *opaque, int version_id)
cpu_breakpoint_remove_all(cs, BP_CPU);
cpu_watchpoint_remove_all(cs, BP_CPU);
- for (i = 0; i < DR7_MAX_BP; i++) {
- hw_breakpoint_insert(env, i);
+ {
+ /* Indicate all breakpoints disabled, as they are, then
+ let the helper re-enable them. */
+ target_ulong dr7 = env->dr[7];
+ env->dr[7] = dr7 & ~(DR7_GLOBAL_BP_MASK | DR7_LOCAL_BP_MASK);
+ cpu_x86_update_dr7(env, dr7);
}
tlb_flush(cs, 1);