| Index: src/base/platform/platform-posix.cc
|
| diff --git a/src/base/platform/platform-posix.cc b/src/base/platform/platform-posix.cc
|
| index c2fa26a9ea9364b8009e7b5d4b2a0b290e06a64b..9f71c905d66d22d037bc8478c3bec20f6a5aa20c 100644
|
| --- a/src/base/platform/platform-posix.cc
|
| +++ b/src/base/platform/platform-posix.cc
|
| @@ -85,8 +85,8 @@ int OS::ActivationFrameAlignment() {
|
| // 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 and Solaris (64-bit) activation frames must be 16 byte-aligned;
|
| - // see "Mac OS X ABI Function Call Guide"
|
| + // - Mac OS X, PPC and Solaris (64-bit) activation frames must
|
| + // be 16 byte-aligned; see "Mac OS X ABI Function Call Guide"
|
| return 16;
|
| #endif
|
| }
|
| @@ -171,6 +171,14 @@ void* OS::GetRandomMmapAddr() {
|
| // the hint address to 46 bits to give the kernel a fighting chance of
|
| // fulfilling our placement request.
|
| raw_addr &= V8_UINT64_C(0x3ffffffff000);
|
| +#elif V8_TARGET_ARCH_PPC64
|
| +#if V8_TARGET_BIG_ENDIAN
|
| + // Big-endian Linux: 44 bits of virtual addressing.
|
| + raw_addr &= V8_UINT64_C(0x03fffffff000);
|
| +#else
|
| + // Little-endian Linux: 48 bits of virtual addressing.
|
| + raw_addr &= V8_UINT64_C(0x3ffffffff000);
|
| +#endif
|
| #else
|
| raw_addr &= 0x3ffff000;
|
|
|
| @@ -225,6 +233,8 @@ void OS::DebugBreak() {
|
| asm("break");
|
| #elif V8_HOST_ARCH_MIPS64
|
| asm("break");
|
| +#elif V8_HOST_ARCH_PPC
|
| + asm("twge 2,2");
|
| #elif V8_HOST_ARCH_IA32
|
| #if V8_OS_NACL
|
| asm("hlt");
|
|
|