| To: | Maxim Kuvyrkov <maxim@codesourcery.com> |
|---|---|
| Subject: | Re: Changing the treatment of the MIPS HI and LO registers |
| From: | Richard Sandiford <rdsandiford@googlemail.com> |
| Date: | Wed, 11 Jun 2008 19:54:17 +0100 |
| Cc: | "Maciej W. Rozycki" <macro@linux-mips.org>, Ralf Baechle <ralf@linux-mips.org>, gcc-patches@gcc.gnu.org, linux-mips@linux-mips.org |
| Dkim-signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:from:to:mail-followup-to:cc :subject:references:date:in-reply-to:message-id:user-agent :mime-version:content-type; bh=ywuunZExzVpom9xfe8qpV3W1kdM7gCA637PSAqoa9BQ=; b=nJueQ3pw3vRk3syPU1gLlTMQW1nupuvDk1aR1TtUaldE9rUMa3C21LSg0omlsc5J0g iYc4p/kLObnr1VGJe0xU94nU0c2c/VEZGpaDtBtPnggaqdaod9lhEaD1JihlXrVvgGFo 75oxpsFiep4/xLCdeounVEi/pL2MbItrlq1no= |
| Domainkey-signature: | a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=from:to:mail-followup-to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type; b=V3HZbpgtCqlGaH3Uf10uI48WgJku3dIrCcRaC2g7JVcZV+w2IiZZDKvIMfP/dlkIrw z+SI0tafZO6rpj/nYYAOs4p9d3FYAm5V05EviWOzbELPg0kWb3FDEyEEp8gcvKQAB2KV eLA1zv7BwFXtknHUvQ5haI/aCovs2mrqQJnCQ= |
| In-reply-to: | <48501C55.5060602@codesourcery.com> (Maxim Kuvyrkov's message of "Wed\, 11 Jun 2008 22\:41\:25 +0400") |
| Mail-followup-to: | Maxim Kuvyrkov <maxim@codesourcery.com>,"Maciej W. Rozycki" <macro@linux-mips.org>, Ralf Baechle <ralf@linux-mips.org>, gcc-patches@gcc.gnu.org, linux-mips@linux-mips.org, rdsandiford@googlemail.com |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| References: | <87tzgj4nh6.fsf@firetop.home> <Pine.LNX.4.55.0805272134540.18833@cliff.in.clinika.pl> <87abib4d9t.fsf@firetop.home> <Pine.LNX.4.55.0805272357020.18833@cliff.in.clinika.pl> <87r6bm1ebd.fsf@firetop.home> <Pine.LNX.4.55.0805290213140.29522@cliff.in.clinika.pl> <878wxtvarg.fsf@firetop.home> <8763stz2p3.fsf@firetop.home> <87zlpuxqfb.fsf@firetop.home> <48501C55.5060602@codesourcery.com> |
| Sender: | linux-mips-bounce@linux-mips.org |
| User-agent: | Gnus/5.110006 (No Gnus v0.6) Emacs/22.1 (gnu/linux) |
Maxim Kuvyrkov <maxim@codesourcery.com> writes:
> GLIBC contains the following code in stdlib/longlong.h:
> <snip>
> #if defined (__mips__) && W_TYPE_SIZE == 32
> #define umul_ppmm(w1, w0, u, v) \
> __asm__ ("multu %2,%3" \
> : "=l" ((USItype) (w0)), \
> "=h" ((USItype) (w1)) \
> : "d" ((USItype) (u)), \
> "d" ((USItype) (v)))
> #define UMUL_TIME 10
> #define UDIV_TIME 100
> #endif /* __mips__ */
> </snip>
>
> What would be a correct fix in this case? Something like this:
> <snip>
> #define umul_ppmm(w1, w0, u, v) \
> ({unsigned int __attribute__((mode(DI))) __xx; \
> __xx = (unsigned int __attribute__((mode(DI)))) u * v; \
> w0 = __xx & ((1 << 32) - 1); \
> w1 = __xx >> 32;})
> </snip>
>
> Or is there a better way?
All being well, you should just be able to do the same as I did for
GCC's copy of longlong.h (included in the patch you responded to).
Richard
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: Adding(?) XI support to MIPS-Linux?, Kevin D. Kissell |
|---|---|
| Next by Date: | kernel 2.4.16 patch for cmd64x ide controler driver on kernel 2.35.3, christopher |
| Previous by Thread: | Re: Changing the treatment of the MIPS HI and LO registers, Maxim Kuvyrkov |
| Next by Thread: | Re: Changing the treatment of the MIPS HI and LO registers, Paolo Bonzini |
| Indexes: | [Date] [Thread] [Top] [All Lists] |