aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Habkost <ehabkost@redhat.com>2015-10-07 17:19:18 -0300
committerEduardo Habkost <ehabkost@redhat.com>2015-10-23 12:59:27 -0200
commit462f8ed1f1eac189ef50d9586eae8af90dbe426f (patch)
treee0dead45fad46e231ed61e963ffddeb25c05ef35
parentd0052339236072bbf08c1d600c0906126b1ab258 (diff)
target-i386: Ensure always-1 bits on DR6 can't be cleared
Bits 4-11 and 16-31 on DR6 are documented as always 1, so ensure they can't be cleared by software. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
-rw-r--r--target-i386/bpt_helper.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target-i386/bpt_helper.c b/target-i386/bpt_helper.c
index 144cfd43fc..dac1b1a360 100644
--- a/target-i386/bpt_helper.c
+++ b/target-i386/bpt_helper.c
@@ -262,7 +262,7 @@ void helper_set_dr(CPUX86State *env, int reg, target_ulong t0)
}
/* fallthru */
case 6:
- env->dr[6] = t0;
+ env->dr[6] = t0 | DR6_FIXED_1;
return;
case 5:
if (env->cr[4] & CR4_DE_MASK) {