This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] mc68060 code generation in libgcc
- From: Richard Zidlicky <rz at linux-m68k dot org>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sun, 28 Dec 2003 18:16:40 +0100
- Subject: [patch] mc68060 code generation in libgcc
Hello,
currently instructions supported on cpu32/68020-40
only are emitted even when targeting exclusively the
mc68060.
This results in extremely poor performance of some
programs on the 68060, notably ssh2 and ssl_mod.
"-D__mc68020__" traditionally means 68020 or better
cpu and is defined even when -m68060 is given. Changing
traditional behaviour would cause more trouble so I
have solved it this way:
Richard
--- gcc-3.4-20031210/gcc/longlong.h.rz 2003-08-21 03:11:41.000000000 +0200
+++ gcc-3.4-20031210/gcc/longlong.h 2003-12-25 20:02:06.000000000 +0100
@@ -415,10 +415,11 @@
"g" ((USItype) (bl)))
/* The '020, '030, '040 and CPU32 have 32x32->64 and 64/32->32q-32r. */
-#if defined (__mc68020__) || defined(mc68020) \
- || defined(__mc68030__) || defined(mc68030) \
- || defined(__mc68040__) || defined(mc68040) \
- || defined(__mcpu32__) || defined(mcpu32)
+#if !defined(__mc68060__) && !defined(mc68060) && \
+ (defined (__mc68020__) || defined(mc68020) \
+ || defined(__mc68030__) || defined(mc68030) \
+ || defined(__mc68040__) || defined(mc68040) \
+ || defined(__mcpu32__) || defined(mcpu32))
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("mulu%.l %3,%1:%0" \
: "=d" ((USItype) (w0)), \