susumu.yata
null+****@clear*****
Mon Jul 1 18:48:57 JST 2013
susumu.yata 2013-07-01 18:48:57 +0900 (Mon, 01 Jul 2013) New Revision: b7be4502e9400abe84dc26c98433926a80423b59 https://github.com/groonga/grnxx/commit/b7be4502e9400abe84dc26c98433926a80423b59 Message: Fix bugs of bit_scan_reverse/forward(). Modified files: lib/grnxx/intrinsic.hpp Modified: lib/grnxx/intrinsic.hpp (+5 -5) =================================================================== --- lib/grnxx/intrinsic.hpp 2013-07-01 18:35:04 +0900 (d9a4894) +++ lib/grnxx/intrinsic.hpp 2013-07-01 18:48:57 +0900 (3ce60ee) @@ -24,19 +24,19 @@ # include <intrin.h> # pragma intrinsic(_BitScanReverse) # pragma intrinsic(_BitScanForward) +# pragma intrinsic(_InterlockedCompareExchange) +# pragma intrinsic(_InterlockedCompareExchange64) # pragma intrinsic(_InterlockedExchangeAdd) # pragma intrinsic(_InterlockedOr) # pragma intrinsic(_InterlockedAnd) # pragma intrinsic(_InterlockedXor) -# pragma intrinsic(_InterlockedCompareExchange) -# pragma intrinsic(_InterlockedCompareExchange64) # ifdef GRNXX_MSC64 # pragma intrinsic(_BitScanReverse64) # pragma intrinsic(_BitScanForward64) +# pragma intrinsic(_InterlockedExchangeAdd64) # pragma intrinsic(_InterlockedOr64) # pragma intrinsic(_InterlockedAnd64) # pragma intrinsic(_InterlockedXor64) -# pragma intrinsic(_InterlockedExchangeAdd64) # endif // GRNXX_MSC64 #endif // GRNXX_MSC @@ -136,7 +136,7 @@ class BitScanReverse<8> { return static_cast<uint8_t>(index); # else // GRNXX_MSC64 if ((value >> 32) != 0) { - return static_cast<uint8_t>(BitScanReverse<4>((value >> 32) + 32)); + return static_cast<uint8_t>(BitScanReverse<4>(value >> 32) + 32); } return BitScanReverse<4>(value); # endif // GRNXX_MSC64 @@ -202,7 +202,7 @@ class BitScanForward<8> { return static_cast<uint8_t>(index); # else // GRNXX_MSC64 if ((value & 0xFFFFFFFFU) == 0) { - return static_cast<uint8_t>(BitScanForward<4>((value >> 32) + 32)); + return static_cast<uint8_t>(BitScanForward<4>(value >> 32) + 32); } return BitScanForward<4>(value); # endif // GRNXX_MSC64 -------------- next part -------------- HTML����������������������������... 下载