PATCH [7/n]: Prepare x32: Use Use long long builtin for x86-64
H.J. Lu
hjl.tools@gmail.com
Sat Jun 18 19:04:00 GMT 2011
On Tue, Jun 14, 2011 at 10:37 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Tue, Jun 14, 2011 at 6:04 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>
>> long may be 32bit for x86-64. But long long is always 64bit. This
>> patch uses long long builtin for 64bit. OK for trunk?
>>
>> Thanks.
>>
>>
>> H.J.
>> ---
>> 2011-06-14 H.J. Lu <hongjiu.lu@intel.com>
>>
>> * longlong.h (count_leading_zeros): Use long long builtin for
>> x86-64.
>> (count_trailing_zeros): Likewise.
>>
>> diff --git a/gcc/longlong.h b/gcc/longlong.h
>> index 1bab76d..d5c0cd9 100644
>> --- a/gcc/longlong.h
>> +++ b/gcc/longlong.h
>> @@ -430,8 +430,8 @@ UDItype __umulsidi3 (USItype, USItype);
>> : "0" ((UDItype) (n0)), \
>> "1" ((UDItype) (n1)), \
>> "rm" ((UDItype) (dv)))
>> -#define count_leading_zeros(count, x) ((count) = __builtin_clzl (x))
>> -#define count_trailing_zeros(count, x) ((count) = __builtin_ctzl (x))
>> +#define count_leading_zeros(count, x) ((count) = __builtin_clzll (x))
>> +#define count_trailing_zeros(count, x) ((count) = __builtin_ctzll (x))
>> #define UMUL_TIME 40
>> #define UDIV_TIME 40
>> #endif /* x86_64 */
>
> Uh, this is also needed for MingW (LLP64 target).
>
> The patch is OK for SVN and release branches, but please also wait for
> approval from MingW maintainer.
>
I am checking it in. I will investigate if there is any issue.
--
H.J.
More information about the Gcc-patches
mailing list