summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2001-04-24 15:54:23 +0000
committerdfr <dfr@FreeBSD.org>2001-04-24 15:54:23 +0000
commit08ae27f316a5f87f524fe449cd506118c3dfef61 (patch)
tree775b81f32b64958ea1d3601b425cee21ce9d96e4 /sys/ia64
parent088368d68b69eeb36fdaa989f25a8160038b1de8 (diff)
downloadFreeBSD-src-08ae27f316a5f87f524fe449cd506118c3dfef61.zip
FreeBSD-src-08ae27f316a5f87f524fe449cd506118c3dfef61.tar.gz
Don't trash the user's pr on syscalls.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/exception.S3
-rw-r--r--sys/ia64/ia64/exception.s3
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/ia64/ia64/exception.S b/sys/ia64/ia64/exception.S
index 0a27a83..bec2ae1 100644
--- a/sys/ia64/ia64/exception.S
+++ b/sys/ia64/ia64/exception.S
@@ -1274,6 +1274,7 @@ ENTRY(do_syscall, 0)
;;
st8 [r30]=r20,16 // save cr.isr
add r31=16,r31 // skip cr.ifa
+ mov r16=pr
mov r18=ar.rsc
mov r19=ar.pfs
;;
@@ -1429,7 +1430,7 @@ ENTRY(do_syscall, 0)
ld8 r18=[r31],-16 // restore cr.ipsr
ld8 r19=[r30],-16 // restore cr.iip
mov ar.rsc=r16
- mov pr=r16,0x1ffff
+ mov pr=r17,0x1ffff
;;
mov cr.ipsr=r18
mov cr.iip=r19
diff --git a/sys/ia64/ia64/exception.s b/sys/ia64/ia64/exception.s
index 0a27a83..bec2ae1 100644
--- a/sys/ia64/ia64/exception.s
+++ b/sys/ia64/ia64/exception.s
@@ -1274,6 +1274,7 @@ ENTRY(do_syscall, 0)
;;
st8 [r30]=r20,16 // save cr.isr
add r31=16,r31 // skip cr.ifa
+ mov r16=pr
mov r18=ar.rsc
mov r19=ar.pfs
;;
@@ -1429,7 +1430,7 @@ ENTRY(do_syscall, 0)
ld8 r18=[r31],-16 // restore cr.ipsr
ld8 r19=[r30],-16 // restore cr.iip
mov ar.rsc=r16
- mov pr=r16,0x1ffff
+ mov pr=r17,0x1ffff
;;
mov cr.ipsr=r18
mov cr.iip=r19
OpenPOWER on IntegriCloud