summary refs log tree commit diff stats
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)
downloadfocaccia-qemu-462f8ed1f1eac189ef50d9586eae8af90dbe426f.tar.gz
focaccia-qemu-462f8ed1f1eac189ef50d9586eae8af90dbe426f.zip
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) {