summaryrefslogtreecommitdiff
path: root/sys/src/9/pc64/main.c
diff options
context:
space:
mode:
authoraiju <devnull@localhost>2017-06-13 00:10:36 +0000
committeraiju <devnull@localhost>2017-06-13 00:10:36 +0000
commit13869bab113881f28ac72de7d8a68bb8bb5d9c38 (patch)
tree932d35a419a30348a02771509208c0b9292978a5 /sys/src/9/pc64/main.c
parente8082c1d1f09c04afb399ecdd63a79446e3bc390 (diff)
pc/pc64: keep shadow copy of DR7 in Mach and use that to check whether we need to reset DR7 in procsave(); remove superfluous reset of DR7 in mmurelease()
Diffstat (limited to 'sys/src/9/pc64/main.c')
-rw-r--r--sys/src/9/pc64/main.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/src/9/pc64/main.c b/sys/src/9/pc64/main.c
index ea920fe56..24bb0d073 100644
--- a/sys/src/9/pc64/main.c
+++ b/sys/src/9/pc64/main.c
@@ -798,8 +798,10 @@ procrestore(Proc *p)
{
uvlong t;
- if(p->dr[7] != 0)
+ if(p->dr[7] != 0){
+ m->dr7 = p->dr[7];
putdr(p->dr);
+ }
if(p->kp)
return;
@@ -814,8 +816,10 @@ procsave(Proc *p)
{
uvlong t;
- if(p->dr[7] != 0)
+ if(m->dr7 != 0){
+ m->dr7 = 0;
putdr7(0);
+ }
cycles(&t);
p->kentry -= t;