Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Apr 2003 16:31:33 -0700 (PDT)
From:      Peter Wemm <peter@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 29564 for review
Message-ID:  <200304232331.h3NNVXYu075624@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=29564

Change 29564 by peter@peter_daintree on 2003/04/23 16:31:00

	_setjmp and _longjmp

Affected files ...

.. //depot/projects/hammer/lib/libc/x86_64/gen/Makefile.inc#4 edit
.. //depot/projects/hammer/lib/libc/x86_64/gen/_setjmp.S#2 edit

Differences ...

==== //depot/projects/hammer/lib/libc/x86_64/gen/Makefile.inc#4 (text+ko) ====

@@ -1,4 +1,4 @@
 #	@(#)Makefile.inc	8.1 (Berkeley) 6/4/93
 # $FreeBSD: src/lib/libc/i386/gen/Makefile.inc,v 1.18 2002/11/16 06:39:11 deischen Exp $
 
-SRCS+=	setjmp.S frexp.c infinity.c isinf.c
+SRCS+=	_setjmp.S setjmp.S frexp.c infinity.c isinf.c

==== //depot/projects/hammer/lib/libc/x86_64/gen/_setjmp.S#2 (text+ko) ====

@@ -51,33 +51,37 @@
  */
 
 ENTRY(_setjmp)
-	movl	4(%esp),%eax
-	movl	0(%esp),%edx
-	movl	%edx, 0(%eax)		/* rta */
-	movl	%ebx, 4(%eax)
-	movl	%esp, 8(%eax)
-	movl	%ebp,12(%eax)
-	movl	%esi,16(%eax)
-	movl	%edi,20(%eax)
-	fnstcw	24(%eax)
-	xorl	%eax,%eax
+	movq	%rdi,%rax
+	movq	0(%rsp),%rdx		/* retval */
+	movq	%rdx, 0(%rax)		/* retval */
+	movq	%rbx, 8(%rax)
+	movq	%rsp,16(%rax)
+	movq	%rbp,24(%rax)
+	movq	%r12,32(%rax)
+	movq	%r13,40(%rax)
+	movq	%r14,48(%rax)
+	movq	%r15,56(%rax)
+	fnstcw	64(%rax)
+	xorq	%rax,%rax
 	ret
 
-	.weak	CNAME(_longjmp)
-	.set	CNAME(_longjmp),CNAME(___longjmp)
+	.weak CNAME(_longjmp)
+	.set CNAME(_longjmp),CNAME(___longjmp)
 ENTRY(___longjmp)
-	movl	4(%esp),%edx
-	movl	8(%esp),%eax
-	movl	0(%edx),%ecx
-	movl	4(%edx),%ebx
-	movl	8(%edx),%esp
-	movl	12(%edx),%ebp
-	movl	16(%edx),%esi
-	movl	20(%edx),%edi
+	movq	%rdi,%rdx
+	movq	%rsi,%rax		/* retval */
+	movq	0(%rdx),%rcx
+	movq	8(%rdx),%rbx
+	movq	16(%rdx),%rsp
+	movq	24(%rdx),%rbp
+	movq	32(%rdx),%r12
+	movq	40(%rdx),%r13
+	movq	48(%rdx),%r14
+	movq	56(%rdx),%r15
 	fninit
-	fldcw	24(%edx)
-	testl	%eax,%eax
+	fldcw	64(%rdx)
+	testq	%rax,%rax
 	jnz	1f
-	incl	%eax
-1:	movl	%ecx,0(%esp)
+	incq	%rax
+1:	movq	%rcx,0(%rsp)
 	ret



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304232331.h3NNVXYu075624>