PERFORCE change 30564 for review
Marcel Moolenaar
marcel at FreeBSD.org
Sun May 4 17:10:17 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=30564
Change 30564 by marcel at marcel_nfs on 2003/05/04 17:09:56
Save and restore the preserved registers on signal
delivery. Note that this mostly works due to the
fact that the kernel does not modify these registers.
This of course needs to use unwinding, but for now
it's a quick stopgap for processes that call sigreturn()
other than implicitly by returning from the handler.
Affected files ...
.. //depot/projects/ia64_epc/sys/ia64/ia64/machdep.c#22 edit
Differences ...
==== //depot/projects/ia64_epc/sys/ia64/ia64/machdep.c#22 (text+ko) ====
@@ -889,6 +889,8 @@
* and write them in the context.
*/
}
+ save_callee_saved(&mc->mc_preserved);
+ save_callee_saved_fp(&mc->mc_preserved_fp);
/* Copy the frame out to userland. */
if (copyout(&sf, sfp, sizeof(sf)) != 0) {
@@ -978,6 +980,8 @@
tf->tf_scratch_fp = mc->mc_scratch_fp;
/* XXX high FP. */
}
+ restore_callee_saved(&mc->mc_preserved);
+ restore_callee_saved_fp(&mc->mc_preserved_fp);
PROC_LOCK(p);
#if defined(COMPAT_43) || defined(COMPAT_SUNOS)
More information about the p4-projects
mailing list