Revision: 23123
Author: bmeu...@chromium.org
Date: Thu Aug 14 09:24:40 2014 UTC
Log: Fix MSVC build.
And while we are at it, use the stupid MSVC compiler intrinsics.
TEST=base-unittests/BitTest
TBR=ja...@chromium.org
Review URL: https://codereview.chromium.org/473773003
http://code.google.com/p/v8/source/detail?r=23123
Modified:
/branches/bleeding_edge/src/base/bits.h
/branches/bleeding_edge/src/base/win32-headers.h
=======================================
--- /branches/bleeding_edge/src/base/bits.h Thu Aug 14 09:07:58 2014 UTC
+++ /branches/bleeding_edge/src/base/bits.h Thu Aug 14 09:24:40 2014 UTC
@@ -6,21 +6,42 @@
#define V8_BASE_BITS_H_
#include "include/v8stdint.h"
+#if V8_OS_WIN32
+#include "src/base/win32-headers.h"
+#endif
namespace v8 {
namespace base {
namespace bits {
+#if V8_CC_MSVC
+
+#pragma intrinsic(_rotr)
+#pragma intrinsic(_rotr64)
+
+inline uint32_t RotateRight32(uint32_t value, uint32_t shift) {
+ return _rotr(value, shift);
+}
+
+
+inline uint64_t RotateRight64(uint64_t value, uint32_t shift) {
+ return _rotr64(value, shift);
+}
+
+#else // V8_CC_MSVC
+
inline uint32_t RotateRight32(uint32_t value, uint32_t shift) {
if (shift == 0) return value;
return (value >> shift) | (value << (32 - shift));
}
-inline uint64_t RotateRight64(uint64_t value, uint64_t shift) {
+inline uint64_t RotateRight64(uint64_t value, uint32_t shift) {
if (shift == 0) return value;
return (value >> shift) | (value << (64 - shift));
}
+
+#endif // V8_CC_MSVC
} // namespace bits
} // namespace base
=======================================
--- /branches/bleeding_edge/src/base/win32-headers.h Fri Jun 20 08:40:11
2014 UTC
+++ /branches/bleeding_edge/src/base/win32-headers.h Thu Aug 14 09:24:40
2014 UTC
@@ -75,5 +75,7 @@
#undef GetObject
#undef CreateSemaphore
#undef Yield
+#undef RotateRight32
+#undef RotateRight64
#endif // V8_BASE_WIN32_HEADERS_H_
--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.