[MPlayer-dev-eng] [PATCH] Make cpuinfo calculate correct frequency under x86-64

Zuxy Meng zuxy.meng at gmail.com
Sat Feb 27 13:16:34 CET 2010


2010/2/19 Zuxy Meng <zuxy.meng at gmail.com>:
> 2010/2/19 Reimar Döffinger <Reimar.Doeffinger at gmx.de>:
>> On Thu, Feb 18, 2010 at 11:12:23PM +0800, Zuxy Meng wrote:
>>> '=A' under x86-64 means %rdx:%rax instead of %edx:%eax so cpuinfo will
>>> produce wrong result. The attached patch makes this small program work
>>> well under both x86 and x86-64.
>>
>> But the type is wrong for x86, the registers are not 64 bit on x86.
>> And on x86-64 it's also eax:edx you want, so the type should be uint32_t
>> (of course you need a cast for the shift then).
>
> That was my original idea but when I checked the assembly I found that
> the compiler has no idea about the fact that rdtsc clears the upper
> half of %rax and %rdx and will generate extra mov to clear them.

Applied with correct types.

-- 
Zuxy
Beauty is truth,
While truth is beauty.
PGP KeyID: E8555ED6



More information about the MPlayer-dev-eng mailing list