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