public inbox for linux-m68k@lists.linux-m68k.org
 help / color / mirror / Atom feed
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

  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