PERFORCE change 32069 for review

Peter Wemm peter at FreeBSD.org
Thu May 29 15:55:11 PDT 2003


http://perforce.freebsd.org/chv.cgi?CH=32069

Change 32069 by peter at peter_hammer on 2003/05/29 15:55:04

	add setjmp/longjmp for ddb's benefit.

Affected files ...

.. //depot/projects/hammer/sys/amd64/amd64/support.S#8 edit

Differences ...

==== //depot/projects/hammer/sys/amd64/amd64/support.S#8 (text+ko) ====

@@ -33,6 +33,8 @@
  * $FreeBSD: src/sys/amd64/amd64/support.S,v 1.100 2003/05/14 03:38:13 peter Exp $
  */
 
+#include "opt_ddb.h"
+
 #include <machine/asmacros.h>
 #include <machine/pmap.h>
 
@@ -624,3 +626,36 @@
 	pushq	$KCSEL
 	pushq	%rax
 	lretq
+
+#ifdef DDB
+/*****************************************************************************/
+/* setjump, longjump                                                         */
+/*****************************************************************************/
+
+ENTRY(setjmp)
+	movq	%rbx,0(%rdi)			/* save rbx */
+	movq	%rsp,8(%rdi)			/* save rsp */
+	movq	%rbp,16(%rdi)			/* save rbp */
+	movq	%r12,24(%rdi)			/* save r12 */
+	movq	%r13,32(%rdi)			/* save r13 */
+	movq	%r14,40(%rdi)			/* save r14 */
+	movq	%r15,48(%rdi)			/* save r15 */
+	movq	0(%rsp),%rdx			/* get rta */
+	movq	%rdx,56(%rdi)			/* save rip */
+	xorl	%eax,%eax			/* return(0); */
+	ret
+
+ENTRY(longjmp)
+	movq	0(%rdi),%rbx			/* restore rbx */
+	movq	8(%rdi),%rsp			/* restore rsp */
+	movq	16(%rdi),%rbp			/* restore rbp */
+	movq	24(%rdi),%r12			/* restore r12 */
+	movq	32(%rdi),%r13			/* restore r13 */
+	movq	40(%rdi),%r14			/* restore r14 */
+	movq	48(%rdi),%r15			/* restore r15 */
+	movq	56(%rdi),%rdx			/* get rta */
+	movq	%rdx,0(%rsp)			/* put in return frame */
+	xorl	%eax,%eax			/* return(1); */
+	incl	%eax
+	ret
+#endif


More information about the p4-projects mailing list