"Maciej W. Rozycki" <macro@xxxxxxxxxxxxxx> 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. Richard