summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJoel Sing <jsing@cvs.openbsd.org>2011-04-05 12:56:03 +0000
committerJoel Sing <jsing@cvs.openbsd.org>2011-04-05 12:56:03 +0000
commitb5f0824109349c72649bc8f2582fe19f7060c99d (patch)
tree9cc1a6a98cf348b6230615f7e23a985b0ff2aa05 /sys
parentb2b6c7a9063c88d92da6ab79d2e1ffd7ac133576 (diff)
Save and restore the PSW value when making a PDC call, rather than blindly
reloading from kpsl. ok kettenis@
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/hppa64/hppa64/locore.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/arch/hppa64/hppa64/locore.S b/sys/arch/hppa64/hppa64/locore.S
index f9b91e387b8..8cfe90171ae 100644
--- a/sys/arch/hppa64/hppa64/locore.S
+++ b/sys/arch/hppa64/hppa64/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.12 2011/03/27 18:59:37 kettenis Exp $ */
+/* $OpenBSD: locore.S,v 1.13 2011/04/05 12:56:02 jsing Exp $ */
/*
* Copyright (c) 2005 Michael Shalayeff
@@ -321,6 +321,7 @@ ENTRY(pdc_call,160)
std %ret0, 11*8(%r3) /* old %sp */
ldi PSL_Q, %arg0
break HPPA_BREAK_KERNEL, HPPA_BREAK_SET_PSW
+ std %ret0, 27*8(%r3)
copy %ret1, %arg0
.call
@@ -346,8 +347,7 @@ ENTRY(pdc_call,160)
mtctl arg6, %cr30
mtctl arg7, %cr31
- ldil L%$kpsl, %r1
- ldw R%$kpsl(%r1), %arg0
+ ldd 27*8(%r3), %arg0
copy %ret0, %arg1
break HPPA_BREAK_KERNEL, HPPA_BREAK_SET_PSW
copy %arg1, %ret0