From owner-p4-projects@FreeBSD.ORG Thu May 29 15:55:11 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C983237B407; Thu, 29 May 2003 15:55:10 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5D14337B401 for ; Thu, 29 May 2003 15:55:10 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8A37343FBD for ; Thu, 29 May 2003 15:55:09 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h4TMt90U069001 for ; Thu, 29 May 2003 15:55:09 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h4TMt90v068998 for perforce@freebsd.org; Thu, 29 May 2003 15:55:09 -0700 (PDT) Date: Thu, 29 May 2003 15:55:09 -0700 (PDT) Message-Id: <200305292255.h4TMt90v068998@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 32069 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 22:55:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=32069 Change 32069 by peter@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 #include @@ -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