aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMarcel Moolenaar <marcel@FreeBSD.org>2003-09-20 20:34:58 +0000
committerMarcel Moolenaar <marcel@FreeBSD.org>2003-09-20 20:34:58 +0000
commit719325db8ed25677bdf619fbb7ee846e7bc71efb (patch)
tree167c0739b0e5387895384a9492cc22f4d9cf9912 /sys
parentcf3153c9c9a732391dc1000e622a4a112da21dfd (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/ia64/ia64/machdep.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c
index e08cea3e14bc3..064fe0fbd9095 100644
--- a/sys/ia64/ia64/machdep.c
+++ b/sys/ia64/ia64/machdep.c
@@ -1076,8 +1076,12 @@ get_mcontext(struct thread *td, mcontext_t *mc, int clear_ret)
if (bspst - td->td_kstack < s.ndirty)
__asm __volatile("flushrs;;");
__asm __volatile("mov ar.rsc=3");
- ustk = (uint64_t*)s.bspstore;
kstk = (uint64_t*)td->td_kstack;
+ ustk = (uint64_t*)s.bspstore;
+ if ((s.bspstore & 0x1ff) == 0x1f8) {
+ suword64(ustk++, s.rnat);
+ s.rnat = 0;
+ }
while (s.ndirty > 0) {
suword64(ustk++, *kstk++);
if (((uintptr_t)ustk & 0x1ff) == 0x1f8)