summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexei Podtelezhnikov <apodtele@gmail.com>2021-10-01 11:50:12 -0400
committerAlexei Podtelezhnikov <apodtele@gmail.com>2021-10-01 11:50:12 -0400
commit311764fabbd9a1e2bcd2cf6a2f557cb3ff4e832b (patch)
treee2f16059262a1c9315729041b7858f7abcf8c8f9
parent68fae526c447f646df0a4058fd5bc651eb38ce71 (diff)
downloadfreetype2-311764fabbd9a1e2bcd2cf6a2f557cb3ff4e832b.tar.gz
Additional `FT_MSB` macro definitions.
* include/freetype/internal/ftcalc.h [__DECC,_CRAYC]: Use builtins and intrinsics.
-rw-r--r--include/freetype/internal/ftcalc.h17
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 )