diff options
| author | Marcel Moolenaar <marcel@FreeBSD.org> | 2003-09-20 20:34:58 +0000 |
|---|---|---|
| committer | Marcel Moolenaar <marcel@FreeBSD.org> | 2003-09-20 20:34:58 +0000 |
| commit | 719325db8ed25677bdf619fbb7ee846e7bc71efb (patch) | |
| tree | 167c0739b0e5387895384a9492cc22f4d9cf9912 /sys | |
| parent | cf3153c9c9a732391dc1000e622a4a112da21dfd (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/ia64/ia64/machdep.c | 6 |
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) |
