freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freetype2] master 188c7d6: Additional `FT_MSB` macro definitions.


From: Werner Lemberg
Subject: [freetype2] master 188c7d6: Additional `FT_MSB` macro definitions.
Date: Tue, 9 Nov 2021 22:56:40 -0500 (EST)

branch: master
commit 188c7d6670fc69d01495ba791bd3d5c7d10c6824
Author: Alexei Podtelezhnikov <apodtele@gmail.com>
Commit: Alexei Podtelezhnikov <apodtele@gmail.com>

    Additional `FT_MSB` macro definitions.
    
    Better macros for Windoes CE and ARM in general, based on !109
    from metarutaiga.
    
    * include/freetype/internal/ftcalc.h [_MSC_VER] (FT_MSB): Updated.
---
 include/freetype/internal/ftcalc.h | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/include/freetype/internal/ftcalc.h 
b/include/freetype/internal/ftcalc.h
index a0f6890..b28d4bf 100644
--- a/include/freetype/internal/ftcalc.h
+++ b/include/freetype/internal/ftcalc.h
@@ -372,9 +372,23 @@ FT_BEGIN_HEADER
 
 #endif
 
-#elif defined( _MSC_VER ) && ( _MSC_VER >= 1400 )
+#elif defined( _MSC_VER ) && _MSC_VER >= 1400
 
-#if FT_SIZEOF_INT == 4
+#if defined( _WIN32_WCE )
+
+#include <cmnintrin.h>
+#pragma intrinsic( _CountLeadingZeros )
+
+#define FT_MSB( x )  ( 31 - _CountLeadingZeros( x ) )
+
+#elif defined( _M_ARM64 ) || defined( _M_ARM )
+
+#include <intrin.h>
+#pragma intrinsic( _CountLeadingZeros )
+
+#define FT_MSB( x )  ( 31 - _CountLeadingZeros( x ) )
+
+#elif defined( _M_IX86 ) || defined( _M_AMD64 ) || defined( _M_IA64 )
 
 #include <intrin.h>
 #pragma intrinsic( _BitScanReverse )
@@ -390,7 +404,7 @@ FT_BEGIN_HEADER
     return (FT_Int32)where;
   }
 
-#define FT_MSB( x )  ( FT_MSB_i386( x ) )
+#define FT_MSB( x )  FT_MSB_i386( x )
 
 #endif
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]