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.