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