summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/ia64/ia64/machdep.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c
index 45cd022..2925385 100644
--- a/sys/ia64/ia64/machdep.c
+++ b/sys/ia64/ia64/machdep.c
@@ -1305,7 +1305,10 @@ set_regs(struct thread *td, struct reg *regs)
struct trapframe *tf;
tf = td->td_frame;
+ ia64_flush_dirty(td, &tf->tf_special);
tf->tf_special = regs->r_special;
+ tf->tf_special.bspstore += tf->tf_special.ndirty;
+ tf->tf_special.ndirty = 0;
tf->tf_scratch = regs->r_scratch;
restore_callee_saved(&regs->r_preserved);
return (0);
OpenPOWER on IntegriCloud