Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636).
* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement it.
This commit is contained in:
parent
fb742477b2
commit
84eebf4802
|
@ -1,3 +1,10 @@
|
||||||
|
2018-05-12 Arkady Shapkin <arkady.shapkin@gmail.com>
|
||||||
|
|
||||||
|
Use MS VC++'s _BitScanReverse to calculate MSB (patch #9636).
|
||||||
|
|
||||||
|
* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Implement
|
||||||
|
it.
|
||||||
|
|
||||||
2018-05-10 Alan Coopersmith <alan.coopersmith@oracle.com>
|
2018-05-10 Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
Fix DLL compilation on Solaris.
|
Fix DLL compilation on Solaris.
|
||||||
|
|
|
@ -341,6 +341,7 @@ FT_BEGIN_HEADER
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER
|
#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER
|
||||||
|
|
||||||
#if defined( __GNUC__ ) && \
|
#if defined( __GNUC__ ) && \
|
||||||
( __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 4 ) )
|
( __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 4 ) )
|
||||||
|
|
||||||
|
@ -354,7 +355,30 @@ FT_BEGIN_HEADER
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* __GNUC__ */
|
|
||||||
|
#elif defined( _MSC_VER )
|
||||||
|
|
||||||
|
#if FT_SIZEOF_INT == 4
|
||||||
|
|
||||||
|
#include <intrin.h>
|
||||||
|
|
||||||
|
static inline FT_Int32
|
||||||
|
FT_MSB_i386( FT_UInt32 x )
|
||||||
|
{
|
||||||
|
unsigned long where;
|
||||||
|
|
||||||
|
|
||||||
|
_BitScanReverse( &where, x );
|
||||||
|
|
||||||
|
return (FT_Int32)where;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define FT_MSB( x ) ( FT_MSB_i386( x ) )
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
|
#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */
|
||||||
|
|
||||||
#ifndef FT_MSB
|
#ifndef FT_MSB
|
||||||
|
|
Loading…
Reference in New Issue