diff options
Diffstat (limited to 'src/lj_strscan.c')
-rw-r--r-- | src/lj_strscan.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_strscan.c b/src/lj_strscan.c index 0e37a4f6..11abd526 100644 --- a/src/lj_strscan.c +++ b/src/lj_strscan.c | |||
@@ -79,7 +79,7 @@ static void strscan_double(uint64_t x, TValue *o, int32_t ex2, int32_t neg) | |||
79 | /* Avoid double rounding for denormals. */ | 79 | /* Avoid double rounding for denormals. */ |
80 | if (LJ_UNLIKELY(ex2 <= -1075 && x != 0)) { | 80 | if (LJ_UNLIKELY(ex2 <= -1075 && x != 0)) { |
81 | /* NYI: all of this generates way too much code on 32 bit CPUs. */ | 81 | /* NYI: all of this generates way too much code on 32 bit CPUs. */ |
82 | #if defined(__GNUC__) && LJ_64 | 82 | #if (defined(__GNUC__) || defined(__clang__)) && LJ_64 |
83 | int32_t b = (int32_t)(__builtin_clzll(x)^63); | 83 | int32_t b = (int32_t)(__builtin_clzll(x)^63); |
84 | #else | 84 | #else |
85 | int32_t b = (x>>32) ? 32+(int32_t)lj_fls((uint32_t)(x>>32)) : | 85 | int32_t b = (x>>32) ? 32+(int32_t)lj_fls((uint32_t)(x>>32)) : |