Why should I bother reimplementing the intrinsics yet another time for
different compilers in host headers? and what about compiling on a
non-x86 linux machine? This code is portable and serves it's pupose very
well.
Or are you seriously concerned about the performance?
Alex Ionescu schrieb:
> So? Use intrinsics anyways.
>
> Or __builtin_clz...
>
> On 2009-12-07, at 10:07 PM, Timo Kreuzer wrote:
>
>
>> Because this is a host module.
>>
>> Alex Ionescu wrote:
>>
>>> Well why this then? They should be intrinsics...
>>>
>>> On 2009-12-07, at 8:43 PM, Timo Kreuzer wrote:
>>>
>>>
>>>
>>>>>> +unsigned char BitScanForward(ULONG * Index, unsigned long Mask)
>>>>>> +{
>>>>>> + *Index = 0;
>>>>>> + while (Mask && ((Mask & 1) == 0))
>>>>>> + {
>>>>>> + Mask >>= 1;
>>>>>> + ++(*Index);
>>>>>> + }
>>>>>> + return Mask ? 1 : 0;
>>>>>> +}
>>>>>> +
>>>>>> +unsigned char BitScanReverse(ULONG * const Index, unsigned long Mask)
>>>>>> +{
>>>>>> + *Index = 0;
>>>>>> + while (Mask && ((Mask & (1 << 31)) == 0))
>>>>>> + {
>>>>>> + Mask <<= 1;
>>>>>> + ++(*Index);
>>>>>> + }
>>>>>> + return Mask ? 1 : 0;
>>>>>> +}
>>>>>>
>>>>>>
>>> Best regards,
>>> Alex Ionescu
>>>
>>>
>>> _______________________________________________
>>> Ros-dev mailing list
>>> [email protected]
>>> http://www.reactos.org/mailman/listinfo/ros-dev
>>>
>>>
>>>
>> _______________________________________________
>> Ros-dev mailing list
>> [email protected]
>> http://www.reactos.org/mailman/listinfo/ros-dev
>>
>
> Best regards,
> Alex Ionescu
>
>
> _______________________________________________
> Ros-dev mailing list
> [email protected]
> http://www.reactos.org/mailman/listinfo/ros-dev
>
>
_______________________________________________
Ros-dev mailing list
[email protected]
http://www.reactos.org/mailman/listinfo/ros-dev