diff options
| author | pk <pk@NetBSD.org> | 1995-04-22 09:33:49 +0000 |
|---|---|---|
| committer | pk <pk@NetBSD.org> | 1995-04-22 09:33:49 +0000 |
| commit | a3fa60161e4e928dddfd2cd6a7810fab6d07b679 (patch) | |
| tree | 899066a68cdb740e6759b8d4a2b4ad16dca36c35 /lib/libc/arch | |
| parent | a432dc58b818c5fb4c1c2b39185d2c1a117c1b95 (diff) | |
Preserve the equality "x == y*(x/y)+(x%y)" for negative y; from Lon Willett.
Diffstat (limited to 'lib/libc/arch')
| -rw-r--r-- | lib/libc/arch/sparc/gen/divrem.m4 | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/libc/arch/sparc/gen/divrem.m4 b/lib/libc/arch/sparc/gen/divrem.m4 index efc6ecb988e..c8b8157f8d8 100644 --- a/lib/libc/arch/sparc/gen/divrem.m4 +++ b/lib/libc/arch/sparc/gen/divrem.m4 @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * from: Header: divrem.m4,v 1.4 92/06/25 13:23:57 torek Exp - * $Id: divrem.m4,v 1.1 1993/10/07 00:21:28 cgd Exp $ + * $Id: divrem.m4,v 1.2 1995/04/22 09:33:49 pk Exp $ */ /* @@ -136,7 +136,9 @@ ifelse(S, `true', ` ! compute sign of result; if neither is negative, no problem orcc divisor, dividend, %g0 ! either negative? bge 2f ! no, go do the divide - xor divisor, dividend, SIGN ! compute sign in any case + ifelse(OP, `div', + `xor divisor, dividend, SIGN', + `mov dividend, SIGN') ! compute sign in any case tst divisor bge 1f tst dividend |
