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