diff options
author | Alexei Podtelezhnikov <apodtele@gmail.com> | 2021-10-01 11:50:12 -0400 |
---|---|---|
committer | Alexei Podtelezhnikov <apodtele@gmail.com> | 2021-10-01 11:50:12 -0400 |
commit | 311764fabbd9a1e2bcd2cf6a2f557cb3ff4e832b (patch) | |
tree | e2f16059262a1c9315729041b7858f7abcf8c8f9 /include | |
parent | 68fae526c447f646df0a4058fd5bc651eb38ce71 (diff) | |
download | freetype2-311764fabbd9a1e2bcd2cf6a2f557cb3ff4e832b.tar.gz |
Additional `FT_MSB` macro definitions.
* include/freetype/internal/ftcalc.h [__DECC,_CRAYC]: Use builtins
and intrinsics.
Diffstat (limited to 'include')
-rw-r--r-- | include/freetype/internal/ftcalc.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/include/freetype/internal/ftcalc.h b/include/freetype/internal/ftcalc.h index f24930792..a0f6890f8 100644 --- a/include/freetype/internal/ftcalc.h +++ b/include/freetype/internal/ftcalc.h @@ -370,8 +370,7 @@ FT_BEGIN_HEADER #define FT_MSB( x ) ( 31 - __builtin_clzl( x ) ) -#endif /* __GNUC__ */ - +#endif #elif defined( _MSC_VER ) && ( _MSC_VER >= 1400 ) @@ -395,11 +394,23 @@ FT_BEGIN_HEADER #endif -#endif /* _MSC_VER */ +#elif defined( __DECC ) || defined( __DECCXX ) + +#include <builtins.h> +#define FT_MSB( x ) (FT_Int)( 63 - _leadz( x ) ) + +#elif defined( _CRAYC ) + +#include <intrinsics.h> + +#define FT_MSB( x ) (FT_Int)( 31 - _leadz32( x ) ) + +#endif /* FT_MSB macro definitions */ #endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */ + #ifndef FT_MSB FT_BASE( FT_Int ) |