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.

Reply via email to