diff options
Diffstat (limited to 'lib/clzdi2.c')
-rw-r--r-- | lib/clzdi2.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/clzdi2.c b/lib/clzdi2.c index 34d43625..ea953961 100644 --- a/lib/clzdi2.c +++ b/lib/clzdi2.c @@ -23,7 +23,7 @@ __clzdi2(di_int a) { dwords x; x.all = a; - const si_int f = -(x.high == 0); - return __builtin_clz((x.high & ~f) | (x.low & f)) + + const si_int f = -(x.s.high == 0); + return __builtin_clz((x.s.high & ~f) | (x.s.low & f)) + (f & ((si_int)(sizeof(si_int) * CHAR_BIT))); } |