Module Name:    src
Committed By:   plunky
Date:           Sun Jun 12 20:29:26 UTC 2011

Modified Files:
        src/lib/libc/arch/i386/stdlib: div.S ldiv.S

Log Message:
Functions that return a struct or union, must set %eax to the value
of the original address of the callers area before it returns.

(System V ABI, i386 supplement, fourth edition, page 3-14)


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libc/arch/i386/stdlib/div.S \
    src/lib/libc/arch/i386/stdlib/ldiv.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/lib/libc/arch/i386/stdlib/div.S
diff -u src/lib/libc/arch/i386/stdlib/div.S:1.8 src/lib/libc/arch/i386/stdlib/div.S:1.9
--- src/lib/libc/arch/i386/stdlib/div.S:1.8	Sat Jul 26 19:24:33 2003
+++ src/lib/libc/arch/i386/stdlib/div.S	Sun Jun 12 20:29:25 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: div.S,v 1.8 2003/07/26 19:24:33 salo Exp $	*/
+/*	$NetBSD: div.S,v 1.9 2011/06/12 20:29:25 plunky Exp $	*/
 /*
  * Written by J.T. Conklin <j...@netbsd.org>.
  * Public domain.
@@ -7,7 +7,7 @@
 #include <machine/asm.h>
 
 #if defined(LIBC_SCCS)
-RCSID("$NetBSD: div.S,v 1.8 2003/07/26 19:24:33 salo Exp $")
+RCSID("$NetBSD: div.S,v 1.9 2011/06/12 20:29:25 plunky Exp $")
 #endif
 
 ENTRY(div)
@@ -19,5 +19,6 @@
 	idiv	%ecx
 	movl	%eax,(%ebx)
 	movl	%edx,4(%ebx)
+	movl	%ebx,%eax
 	popl	%ebx
 	ret	$4
Index: src/lib/libc/arch/i386/stdlib/ldiv.S
diff -u src/lib/libc/arch/i386/stdlib/ldiv.S:1.8 src/lib/libc/arch/i386/stdlib/ldiv.S:1.9
--- src/lib/libc/arch/i386/stdlib/ldiv.S:1.8	Sat Jul 26 19:24:33 2003
+++ src/lib/libc/arch/i386/stdlib/ldiv.S	Sun Jun 12 20:29:25 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: ldiv.S,v 1.8 2003/07/26 19:24:33 salo Exp $	*/
+/*	$NetBSD: ldiv.S,v 1.9 2011/06/12 20:29:25 plunky Exp $	*/
 /*
  * Written by J.T. Conklin <j...@netbsd.org>.
  * Public domain.
@@ -7,7 +7,7 @@
 #include <machine/asm.h>
 
 #if defined(LIBC_SCCS)
-RCSID("$NetBSD: ldiv.S,v 1.8 2003/07/26 19:24:33 salo Exp $")
+RCSID("$NetBSD: ldiv.S,v 1.9 2011/06/12 20:29:25 plunky Exp $")
 #endif
 
 ENTRY(ldiv)
@@ -19,5 +19,6 @@
 	idiv	%ecx
 	movl	%eax,(%ebx)
 	movl	%edx,4(%ebx)
+	movl	%ebx,%eax
 	popl	%ebx
 	ret	$4

Reply via email to