Index: nspr/pr/include/prbit.h |
=================================================================== |
--- nspr/pr/include/prbit.h (revision 233722) |
+++ nspr/pr/include/prbit.h (working copy) |
@@ -9,8 +9,12 @@ |
#include "prtypes.h" |
PR_BEGIN_EXTERN_C |
-/* replace compare/jump/add/shift sequence with x86 BSF/BSR instruction */ |
-#if defined(_WIN32) && (_MSC_VER >= 1300) && (defined(_M_IX86) || defined(_M_AMD64)) |
+/* |
+** Replace compare/jump/add/shift sequence with compiler built-in/intrinsic |
+** functions. |
+*/ |
+#if defined(_WIN32) && (_MSC_VER >= 1300) && \ |
+ (defined(_M_IX86) || defined(_M_AMD64) || defined(_M_ARM)) |
unsigned char _BitScanForward(unsigned long * Index, unsigned long Mask); |
unsigned char _BitScanReverse(unsigned long * Index, unsigned long Mask); |
# pragma intrinsic(_BitScanForward,_BitScanReverse) |
@@ -133,7 +137,7 @@ |
*/ |
#if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_AMD64) || \ |
- defined(_M_X64)) |
+ defined(_M_X64) || defined(_M_ARM)) |
#include <stdlib.h> |
#pragma intrinsic(_rotl, _rotr) |
#define PR_ROTATE_LEFT32(a, bits) _rotl(a, bits) |