summaryrefslogtreecommitdiff
path: root/lib/libc/arch
diff options
context:
space:
mode:
authorpk <pk@NetBSD.org>1995-04-22 09:33:49 +0000
committerpk <pk@NetBSD.org>1995-04-22 09:33:49 +0000
commita3fa60161e4e928dddfd2cd6a7810fab6d07b679 (patch)
tree899066a68cdb740e6759b8d4a2b4ad16dca36c35 /lib/libc/arch
parenta432dc58b818c5fb4c1c2b39185d2c1a117c1b95 (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.m46
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