[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] target-arm: use clz32() instead of a for loop
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH] target-arm: use clz32() instead of a for loop |
Date: |
Fri, 23 Oct 2009 09:04:53 +0200 |
User-agent: |
Mozilla-Thunderbird 2.0.0.22 (X11/20090707) |
Stuart Brady a écrit :
> On Thu, Oct 15, 2009 at 11:14:52PM +0200, Aurelien Jarno wrote:
>> @@ -394,10 +395,7 @@ uint32_t HELPER(uxtb16)(uint32_t x)
>>
>> uint32_t HELPER(clz)(uint32_t x)
>> {
>> - int count;
>> - for (count = 32; x; count--)
>> - x >>= 1;
>> - return count;
>> + return clz32(x);
>> }
>>
>> int32_t HELPER(sdiv)(int32_t num, int32_t den)
>
> Just a quick note that the implementation of clz, ctz and popcnt is
> still listed in the TCG TODO list. The last time I looked, I noticed
> that quite a few architectures have clz/ctz instructions:
>
> http://lkml.indiana.edu/hypermail/linux/kernel/0601.3/1683.html
OTOH, a dump shows that those instruction are not used than often, so I
am not sure it worth implementing it.
> For those that don't, I think a combination the following two hacks at
> http://graphics.stanford.edu/~seander/bithacks.html could be used:
The best is probably to use an helper in that case, calling clz32(x).
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net