On Tue, Nov 25, 2014 at 03:35:19PM -0000, Dmitry Shachnev wrote: > The patch from upstream bugzilla didn’t apply (I guess it is > against newer codebase), so we used the Fedora one.
Ok, since this hasn't been reviewed upstream yet and it only seems to affect PPC64 I'd include it with the changes for PPC64 only. Gustavo, Emilio, any comments? Berto
Index: webkitgtk/Source/JavaScriptCore/heap/CopiedBlock.h =================================================================== --- webkitgtk.orig/Source/JavaScriptCore/heap/CopiedBlock.h +++ webkitgtk/Source/JavaScriptCore/heap/CopiedBlock.h @@ -81,7 +81,11 @@ public: size_t size(); size_t capacity(); +#if CPU(PPC64) + static const size_t blockSize = 64 * KB; +#else static const size_t blockSize = 32 * KB; +#endif bool hasWorkList(); CopyWorkList& workList(); Index: webkitgtk/Source/JavaScriptCore/interpreter/JSStack.cpp =================================================================== --- webkitgtk.orig/Source/JavaScriptCore/interpreter/JSStack.cpp +++ webkitgtk/Source/JavaScriptCore/interpreter/JSStack.cpp @@ -49,7 +49,11 @@ JSStack::JSStack(VM& vm, size_t capacity { ASSERT(capacity && isPageAligned(capacity)); +#if CPU(PPC64) + m_reservation = PageReservation::reserve(roundUpAllocationSize(capacity * sizeof(Register), pageSize()), OSAllocator::JSVMStackPages); +#else m_reservation = PageReservation::reserve(roundUpAllocationSize(capacity * sizeof(Register), commitSize), OSAllocator::JSVMStackPages); +#endif updateStackLimit(highAddress()); m_commitEnd = highAddress(); @@ -78,7 +82,11 @@ bool JSStack::growSlowCase(Register* new // Compute the chunk size of additional memory to commit, and see if we // have it is still within our budget. If not, we'll fail to grow and // return false. +#if CPU(PPC64) + long delta = roundUpAllocationSize(reinterpret_cast<char*>(m_commitEnd) - reinterpret_cast<char*>(newEnd), pageSize()); +#else long delta = roundUpAllocationSize(reinterpret_cast<char*>(m_commitEnd) - reinterpret_cast<char*>(newEnd), commitSize); +#endif if (reinterpret_cast<char*>(m_commitEnd) - delta <= reinterpret_cast<char*>(m_useableEnd)) return false; @@ -134,7 +142,11 @@ void JSStack::enableErrorStackReserve() void JSStack::disableErrorStackReserve() { +#if CPU(PPC64) + char* useableEnd = reinterpret_cast<char*>(reservationEnd()) + pageSize(); +#else char* useableEnd = reinterpret_cast<char*>(reservationEnd()) + commitSize; +#endif m_useableEnd = reinterpret_cast_ptr<Register*>(useableEnd); // By the time we get here, we are guaranteed to be destructing the last