linux-mips
[Top] [All Lists]

Re: [PATCH] MIPS: Handle removal of 'h' constraint in GCC 4.4

To: Ralf Baechle <ralf@linux-mips.org>
Subject: Re: [PATCH] MIPS: Handle removal of 'h' constraint in GCC 4.4
From: David Daney <ddaney@caviumnetworks.com>
Date: Thu, 28 May 2009 08:43:18 -0700
Cc: wuzhangjin@gmail.com, Florian Fainelli <florian@openwrt.org>, Richard Sandiford <rdsandiford@googlemail.com>, "Maciej W. Rozycki" <macro@linux-mips.org>, linux-mips@linux-mips.org
In-reply-to: <1243521105.5183.5.camel@falcon>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1229567048-19219-1-git-send-email-ddaney@caviumnetworks.com> <alpine.LFD.1.10.0812190041080.6463@ftp.linux-mips.org> <87wsdl63xv.fsf@firetop.home> <200905281331.41440.florian@openwrt.org> <1243521105.5183.5.camel@falcon>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Thunderbird 2.0.0.21 (X11/20090320)
Wu Zhangjin wrote:
Hi,
On Thu, 2009-05-28 at 13:31 +0200, Florian Fainelli wrote:
Le Saturday 27 December 2008 16:19:40 Richard Sandiford, vous avez écrit :
"Maciej W. Rozycki" <macro@linux-mips.org> writes:
On Wed, 17 Dec 2008, David Daney wrote:
This is an incomplete proof of concept that I applied to be able to
build a 64 bit kernel with GCC-4.4.  It doesn't handle the 32 bit case
or the R4000_WAR case.
 The R4000_WAR case can use the same C code -- GCC will adjust code
generated as necessary according to the -mfix-r4000 flag.  For the 32-bit
case I think the conclusion was the only way to get it working is to use
MFHI explicitly in the asm.
No, the same sort of cast, multiply and shift should work for 32-bit
code too.  I.e.:

                usecs = ((uint64_t)usecs * lpj) >> 32;

It should work for both -mfix-r4000 and -mno-fix-r4000.
Any updates on this ?

I have updated it to this PATCH, could you help to review it?




FWIW, Ralf also has a patch, that I have tested, that takes a slightly different approach.

In any event, it would be nice if one of the patches were merged to 2.6.30 before it is released. GCC-4.4 has been available for quite a while now. Not being able to build the kernel with it will become a larger issue as time goes by.

David Daney


<Prev in Thread] Current Thread [Next in Thread>