Reviewers: Sven Panne,

Description:
Don't duplicate OS::ActivationFrameAlignment() for every POSIX platform.

[email protected]

Please review this at https://codereview.chromium.org/20283002/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/platform-cygwin.cc
  M src/platform-freebsd.cc
  M src/platform-linux.cc
  M src/platform-macos.cc
  M src/platform-openbsd.cc
  M src/platform-posix.cc
  M src/platform-solaris.cc


Index: src/platform-cygwin.cc
diff --git a/src/platform-cygwin.cc b/src/platform-cygwin.cc
index 59cc1a2d50e3c3e73c8132ed25c0e4635692a0ed..4c7b01759231c74f8167773401e55a482e9923a5 100644
--- a/src/platform-cygwin.cc
+++ b/src/platform-cygwin.cc
@@ -55,13 +55,6 @@ namespace internal {
 static Mutex* limit_mutex = NULL;


-int OS::ActivationFrameAlignment() {
-  // With gcc 4.4 the tree vectorization optimizer can generate code
-  // that requires 16 byte alignment such as movdqa on x86.
-  return 16;
-}
-
-
 const char* OS::LocalTimezone(double time) {
   if (std::isnan(time)) return "";
   time_t tv = static_cast<time_t>(floor(time/msPerSecond));
Index: src/platform-freebsd.cc
diff --git a/src/platform-freebsd.cc b/src/platform-freebsd.cc
index 0bf23757475d31e1737499bf2c1abc6f695d4377..e0917fa567a029b0107d6dd564bd96e0b6712790 100644
--- a/src/platform-freebsd.cc
+++ b/src/platform-freebsd.cc
@@ -66,12 +66,6 @@ namespace internal {
 static Mutex* limit_mutex = NULL;


-int OS::ActivationFrameAlignment() {
-  // 16 byte alignment on FreeBSD
-  return 16;
-}
-
-
 const char* OS::LocalTimezone(double time) {
   if (std::isnan(time)) return "";
   time_t tv = static_cast<time_t>(floor(time/msPerSecond));
Index: src/platform-linux.cc
diff --git a/src/platform-linux.cc b/src/platform-linux.cc
index fb784d1f53d42c61cbaabd10e162b449ade5ec6e..5c252bbf884b9c176644fdbfd47214f96ed516db 100644
--- a/src/platform-linux.cc
+++ b/src/platform-linux.cc
@@ -308,20 +308,6 @@ bool OS::MipsCpuHasFeature(CpuFeature feature) {
 #endif  // def __mips__


-int OS::ActivationFrameAlignment() {
-#if V8_TARGET_ARCH_ARM
-  // On EABI ARM targets this is required for fp correctness in the
-  // runtime system.
-  return 8;
-#elif V8_TARGET_ARCH_MIPS
-  return 8;
-#endif
-  // With gcc 4.4 the tree vectorization optimizer can generate code
-  // that requires 16 byte alignment such as movdqa on x86.
-  return 16;
-}
-
-
 const char* OS::LocalTimezone(double time) {
   if (std::isnan(time)) return "";
   time_t tv = static_cast<time_t>(floor(time/msPerSecond));
Index: src/platform-macos.cc
diff --git a/src/platform-macos.cc b/src/platform-macos.cc
index 10aef80d9caa7317323e4b379acdc5fe68f7ca93..6135cd13740f03bb15f62ddfb26e4c80ae83bea8 100644
--- a/src/platform-macos.cc
+++ b/src/platform-macos.cc
@@ -231,13 +231,6 @@ void OS::SignalCodeMovingGC() {
 }


-int OS::ActivationFrameAlignment() {
-  // OS X activation frames must be 16 byte-aligned; see "Mac OS X ABI
-  // Function Call Guide".
-  return 16;
-}
-
-
 const char* OS::LocalTimezone(double time) {
   if (std::isnan(time)) return "";
   time_t tv = static_cast<time_t>(floor(time/msPerSecond));
Index: src/platform-openbsd.cc
diff --git a/src/platform-openbsd.cc b/src/platform-openbsd.cc
index 57b6d69d73fc3d4e3b58ef5f9d9a406d499ee0a5..e3df22ee8603c1b39c10e158bbe1c00fb7481cc8 100644
--- a/src/platform-openbsd.cc
+++ b/src/platform-openbsd.cc
@@ -91,13 +91,6 @@ static void* GetRandomMmapAddr() {
 }


-int OS::ActivationFrameAlignment() {
-  // With gcc 4.4 the tree vectorization optimizer can generate code
-  // that requires 16 byte alignment such as movdqa on x86.
-  return 16;
-}
-
-
 const char* OS::LocalTimezone(double time) {
   if (std::isnan(time)) return "";
   time_t tv = static_cast<time_t>(floor(time/msPerSecond));
Index: src/platform-posix.cc
diff --git a/src/platform-posix.cc b/src/platform-posix.cc
index cd2b9b9da4e3a34bd0cb80b5141b1258c1327ad8..9219f4f2411de7b8c73946b8ad0ae14c3ec1e335 100644
--- a/src/platform-posix.cc
+++ b/src/platform-posix.cc
@@ -101,6 +101,24 @@ intptr_t OS::MaxVirtualMemory() {
 }


+int OS::ActivationFrameAlignment() {
+#if V8_TARGET_ARCH_ARM
+  // On EABI ARM targets this is required for fp correctness in the
+  // runtime system.
+  return 8;
+#elif V8_TARGET_ARCH_MIPS
+  return 8;
+#else
+  // Otherwise we just assume 16 byte alignment, i.e.:
+  // - With gcc 4.4 the tree vectorization optimizer can generate code
+  //   that requires 16 byte alignment such as movdqa on x86.
+  // - Mac OS X activation frames must be 16 byte-aligned;
+  //   see "Mac OS X ABI Function Call Guide"
+  return 16;
+#endif
+}
+
+
 intptr_t OS::CommitPageSize() {
   static intptr_t page_size = getpagesize();
   return page_size;
Index: src/platform-solaris.cc
diff --git a/src/platform-solaris.cc b/src/platform-solaris.cc
index 46fff60e191466e72d0cb6e899556841ef58bf01..b1d88af2939de69b8a4fc31a18786318a24af346 100644
--- a/src/platform-solaris.cc
+++ b/src/platform-solaris.cc
@@ -84,12 +84,6 @@ namespace internal {
 static Mutex* limit_mutex = NULL;


-int OS::ActivationFrameAlignment() {
-  // GCC generates code that requires 16 byte alignment such as movdqa.
-  return Max(STACK_ALIGN, 16);
-}
-
-
 const char* OS::LocalTimezone(double time) {
   if (std::isnan(time)) return "";
   time_t tv = static_cast<time_t>(floor(time/msPerSecond));


--
--
v8-dev mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to