From: Greg Ungerer <gerg@snapgear.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Greg Ungerer <gerg@uclinux.org>, linux-m68k@vger.kernel.org
Subject: Re: [PATCH 1/6] m68k: merge mmu and non-mmu versions of muldi3
Date: Thu, 31 Mar 2011 13:57:57 +1000 [thread overview]
Message-ID: <4D93FBC5.6060201@snapgear.com> (raw)
In-Reply-To: <AANLkTimSLM+nOiWa35vPYmiNWwoOnuO7XwtTWtXVoqnh@mail.gmail.com>
Hi Geert,
On 31/03/11 04:11, Geert Uytterhoeven wrote:
> On Wed, Mar 30, 2011 at 09:58, Greg Ungerer<gerg@uclinux.org> wrote:
>> The implementation of gcc's muldi3 support function differs only in
>> the use of the machine's 64 bit sized mul or not. (It isn't based
>> on using an MMU or not). Merge the current mmu and non-mmu versions
>> of arc/m68k/lib/muldi3 and use the appropriate pre-processor
>> conditionals to get the right version for all m68k processor types.
>>
>> Signed-off-by: Greg Ungerer<gerg@uclinux.org>
>> ---
>> áarch/m68k/lib/{muldi3_no.c => muldi3.c} | á 14 +++++++
>> áarch/m68k/lib/muldi3_mm.c á á á á á á á | á 63 -------------------------------
>> á2 files changed, 14 insertions(+), 63 deletions(-)
>> árename arch/m68k/lib/{muldi3_no.c => muldi3.c} (88%)
>> ádelete mode 100644 arch/m68k/lib/muldi3_mm.c
>>
>> diff --git a/arch/m68k/lib/muldi3_no.c b/arch/m68k/lib/muldi3.c
>> similarity index 88%
>> rename from arch/m68k/lib/muldi3_no.c
>> rename to arch/m68k/lib/muldi3.c
>> index 34af72c..6bc1c16 100644
>> --- a/arch/m68k/lib/muldi3_no.c
>> +++ b/arch/m68k/lib/muldi3.c
>> @@ -22,6 +22,18 @@ Boston, MA 02111-1307, USA. á*/
>> á#define BITS_PER_UNIT 8
>> á#define SI_TYPE_SIZE 32
>
> SI_TYPE_SIZE is used by the "nommu" (sic) case only.
>
> And BITS_PER_UNIT seems to be unused for both.
Indeed, well spotted. I'll remove BITS_PER_UNIT and move
SI_TYPE_SIZE into the "nommu" section.
Thanks
Greg
>> +#if defined(__mc68020__) || defined(__mc68030__) || \
>> + á ádefined(__mc68040__) || defined(__mc68060__)
>> +
>> +#define umul_ppmm(w1, w0, u, v) \
>> + á__asm__ ("mulu%.l %3,%1:%0" á á á á á á á á á á á á á á á á á á á á á\
>> + á á á á á : "=d" ((USItype)(w0)), á á á á á á á á á á á á á á á á á á \
>> + á á á á á á "=d" ((USItype)(w1)) á á á á á á á á á á á á á á á á á á á\
>> + á á á á á : "%0" ((USItype)(u)), á á á á á á á á á á á á á á á á á á á\
>> + á á á á á á "dmi" ((USItype)(v)))
>> +
>> +#else
>> +
>> á#define __BITS4 (SI_TYPE_SIZE / 4)
>> á#define __ll_B (1L<< (SI_TYPE_SIZE / 2))
>> á#define __ll_lowpart(t) ((USItype) (t) % __ll_B)
>> @@ -51,6 +63,8 @@ Boston, MA 02111-1307, USA. á*/
>> á á (w0) = __ll_lowpart (__x1) * __ll_B + __ll_lowpart (__x0); á á á á \
>> á } while (0)
>>
>> +#endif
>> +
>> á#define __umulsidi3(u, v) \
>> á ({DIunion __w; á á á á á á á á á á á á á á á á á á á á á á á á á á á \
>> á á umul_ppmm (__w.s.high, __w.s.low, u, v); á á á á á á á á á á á á á \
>> diff --git a/arch/m68k/lib/muldi3_mm.c b/arch/m68k/lib/muldi3_mm.c
>> deleted file mode 100644
>> index be4f275..0000000
>> --- a/arch/m68k/lib/muldi3_mm.c
>> +++ /dev/null
>> @@ -1,63 +0,0 @@
>> -/* muldi3.c extracted from gcc-2.7.2.3/libgcc2.c and
>> - á á á á á á á á á á á á ágcc-2.7.2.3/longlong.h which is: */
>> -/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
>> -
>> -This file is part of GNU CC.
>> -
>> -GNU CC is free software; you can redistribute it and/or modify
>> -it under the terms of the GNU General Public License as published by
>> -the Free Software Foundation; either version 2, or (at your option)
>> -any later version.
>> -
>> -GNU CC is distributed in the hope that it will be useful,
>> -but WITHOUT ANY WARRANTY; without even the implied warranty of
>> -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. áSee the
>> -GNU General Public License for more details.
>> -
>> -You should have received a copy of the GNU General Public License
>> -along with GNU CC; see the file COPYING. áIf not, write to
>> -the Free Software Foundation, 59 Temple Place - Suite 330,
>> -Boston, MA 02111-1307, USA. á*/
>> -
>> -#define BITS_PER_UNIT 8
>> -
>> -#define umul_ppmm(w1, w0, u, v) \
>> - á__asm__ ("mulu%.l %3,%1:%0" á á á á á á á á á á á á á á á á á á á á á\
>> - á á á á á : "=d" ((USItype)(w0)), á á á á á á á á á á á á á á á á á á \
>> - á á á á á á "=d" ((USItype)(w1)) á á á á á á á á á á á á á á á á á á á\
>> - á á á á á : "%0" ((USItype)(u)), á á á á á á á á á á á á á á á á á á á\
>> - á á á á á á "dmi" ((USItype)(v)))
>> -
>> -#define __umulsidi3(u, v) \
>> - á({DIunion __w; á á á á á á á á á á á á á á á á á á á á á á á á á á á \
>> - á áumul_ppmm (__w.s.high, __w.s.low, u, v); á á á á á á á á á á á á á \
>> - á á__w.ll; })
>> -
>> -typedef á á á á á á á á int SItype á á __attribute__ ((mode (SI)));
>> -typedef unsigned int USItype á __attribute__ ((mode (SI)));
>> -typedef á á á á á á á á int DItype á á __attribute__ ((mode (DI)));
>> -typedef int word_type __attribute__ ((mode (__word__)));
>> -
>> -struct DIstruct {SItype high, low;};
>> -
>> -typedef union
>> -{
>> - ástruct DIstruct s;
>> - áDItype ll;
>> -} DIunion;
>> -
>> -DItype
>> -__muldi3 (DItype u, DItype v)
>> -{
>> - áDIunion w;
>> - áDIunion uu, vv;
>> -
>> - áuu.ll = u,
>> - ávv.ll = v;
>> -
>> - áw.ll = __umulsidi3 (uu.s.low, vv.s.low);
>> - áw.s.high += ((USItype) uu.s.low * (USItype) vv.s.high
>> - á á á á á á á+ (USItype) uu.s.high * (USItype) vv.s.low);
>> -
>> - áreturn w.ll;
>> -}
>> --
>> 1.7.0.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at áhttp://vger.kernel.org/majordomo-info.html
>>
>
>
>
--
------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: gerg@snapgear.com
SnapGear Group, McAfee PHONE: +61 7 3435 2888
8 Gardner Close FAX: +61 7 3217 5323
Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com
next prev parent reply other threads:[~2011-03-31 3:58 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-30 7:58 [PATCH 0/6] m68k: merge and clean up files in m68k/lib Greg Ungerer
2011-03-30 7:58 ` [PATCH 1/6] m68k: merge mmu and non-mmu versions of muldi3 Greg Ungerer
2011-03-30 7:58 ` [PATCH 2/6] m68k: merge mmu and non-mmu versions of lib/Makefile Greg Ungerer
2011-03-30 7:58 ` [PATCH 3/6] m68k: remove duplicate memmove() implementation Greg Ungerer
2011-03-30 7:58 ` [PATCH 4/6] m68k: remove duplicate memset() implementation Greg Ungerer
2011-03-30 7:58 ` [PATCH 5/6] m68k: remove duplicate memcpy() implementation Greg Ungerer
2011-03-30 7:58 ` [PATCH 6/6] m68k: remove no longer used arch/m68k/lib/string.c Greg Ungerer
2011-03-30 18:26 ` Geert Uytterhoeven
2011-03-31 3:58 ` Greg Ungerer
2011-03-30 18:11 ` [PATCH 1/6] m68k: merge mmu and non-mmu versions of muldi3 Geert Uytterhoeven
2011-03-31 3:57 ` Greg Ungerer [this message]
2011-03-30 18:41 ` [PATCH 0/6] m68k: merge and clean up files in m68k/lib Geert Uytterhoeven
2011-03-31 4:01 ` Greg Ungerer
2011-04-06 19:36 ` Geert Uytterhoeven
2011-04-07 3:55 ` Greg Ungerer
2011-04-07 8:22 ` Andreas Schwab
2011-04-07 11:26 ` Greg Ungerer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D93FBC5.6060201@snapgear.com \
--to=gerg@snapgear.com \
--cc=geert@linux-m68k.org \
--cc=gerg@uclinux.org \
--cc=linux-m68k@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox