diff options
author | aiju <devnull@localhost> | 2017-06-13 00:10:36 +0000 |
---|---|---|
committer | aiju <devnull@localhost> | 2017-06-13 00:10:36 +0000 |
commit | 13869bab113881f28ac72de7d8a68bb8bb5d9c38 (patch) | |
tree | 932d35a419a30348a02771509208c0b9292978a5 /sys/src/9/pc64/main.c | |
parent | e8082c1d1f09c04afb399ecdd63a79446e3bc390 (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.c | 8 |
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; |