aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2000-02-06 04:48:20 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2000-02-06 04:48:20 +0000
commit75874af96ca806332efbb658d150b4d4050c98f7 (patch)
treeea733eab595b05259abdeb131bb0c67730254d4e /gcc
parent5ca1627b6d3e939fafa64ffacb78db70a2a9e82f (diff)
downloadgcc-75874af96ca806332efbb658d150b4d4050c98f7.zip
gcc-75874af96ca806332efbb658d150b4d4050c98f7.tar.gz
gcc-75874af96ca806332efbb658d150b4d4050c98f7.tar.bz2
* longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
From-SVN: r31814
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/longlong.h24
2 files changed, 16 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3996009..cd8d98a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
+
+2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
* Makefile.in (c-common.o): Depend on $(EXPR_H).
* c-common.c: Include expr.h.
diff --git a/gcc/longlong.h b/gcc/longlong.h
index f561046..4671750 100644
--- a/gcc/longlong.h
+++ b/gcc/longlong.h
@@ -1024,13 +1024,13 @@ UDItype __umulsidi3 (USItype, USItype);
"=r" ((USItype) (w0)) \
: "r" ((USItype) (u)), \
"r" ((USItype) (v)))
-#define udiv_qrnnd(q, r, n1, n0, d) \
+#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \
__asm__ ("mov %2,%%y;nop;nop;nop;udiv %3,%4,%0;umul %0,%4,%1;sub %3,%1,%1"\
- : "=&r" ((USItype) (q)), \
- "=&r" ((USItype) (r)) \
- : "r" ((USItype) (n1)), \
- "r" ((USItype) (n0)), \
- "r" ((USItype) (d)))
+ : "=&r" ((USItype) (__q)), \
+ "=&r" ((USItype) (__r)) \
+ : "r" ((USItype) (__n1)), \
+ "r" ((USItype) (__n0)), \
+ "r" ((USItype) (__d)))
#else
#if defined (__sparclite__)
/* This has hardware multiply but not divide. It also has two additional
@@ -1149,7 +1149,7 @@ UDItype __umulsidi3 (USItype, USItype);
#define UMUL_TIME 39 /* 39 instructions */
/* It's quite necessary to add this much assembler for the sparc.
The default udiv_qrnnd (in C) is more than 10 times slower! */
-#define udiv_qrnnd(q, r, n1, n0, d) \
+#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \
__asm__ ("! Inlined udiv_qrnnd
mov 32,%%g1
subcc %1,%2,%%g0
@@ -1174,11 +1174,11 @@ UDItype __umulsidi3 (USItype, USItype);
sub %1,%2,%1
3: xnor %0,0,%0
! End of inline udiv_qrnnd" \
- : "=&r" ((USItype) (q)), \
- "=&r" ((USItype) (r)) \
- : "r" ((USItype) (d)), \
- "1" ((USItype) (n1)), \
- "0" ((USItype) (n0)) : "g1" __AND_CLOBBER_CC)
+ : "=&r" ((USItype) (__q)), \
+ "=&r" ((USItype) (__r)) \
+ : "r" ((USItype) (__d)), \
+ "1" ((USItype) (__n1)), \
+ "0" ((USItype) (__n0)) : "g1" __AND_CLOBBER_CC)
#define UDIV_TIME (3+7*32) /* 7 instructions/iteration. 32 iterations. */
#endif /* __sparclite__ */
#endif /* __sparc_v8__ */