PPC: Set CodeRange constants correctly for PPC Linux

The OS page size for PPC linux is 64KB. The page size for
paged spaces on PPC linux is set to 4MB. kCodeRangeAreaAlignment
is set to OS page size(64KB) and kMinimumCodeRangeSize is set to the
size of 3 pages (12MB). This issue was exposed with testcase
test-spaces/Regress3540 which used kMinimumCodeRangeSize.

R=jochen@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2187833002
Cr-Commit-Position: refs/heads/master@{#38180}
This commit is contained in:
bjaideep 2016-07-29 07:25:40 -07:00 committed by Commit bot
parent 24451aa2d5
commit 9b4f8d1951

View File

@ -151,6 +151,9 @@ const bool kRequiresCodeRange = true;
// region. Used only for large object space.
const size_t kMaximalCodeRangeSize = 256 * MB;
const size_t kCodeRangeAreaAlignment = 256 * MB;
#elif V8_HOST_ARCH_PPC && V8_TARGET_ARCH_PPC && V8_OS_LINUX
const size_t kMaximalCodeRangeSize = 512 * MB;
const size_t kCodeRangeAreaAlignment = 64 * KB; // OS page on PPC Linux
#else
const size_t kMaximalCodeRangeSize = 512 * MB;
const size_t kCodeRangeAreaAlignment = 4 * KB; // OS page.
@ -158,6 +161,10 @@ const size_t kCodeRangeAreaAlignment = 4 * KB; // OS page.
#if V8_OS_WIN
const size_t kMinimumCodeRangeSize = 4 * MB;
const size_t kReservedCodeRangePages = 1;
// On PPC Linux PageSize is 4MB
#elif V8_HOST_ARCH_PPC && V8_TARGET_ARCH_PPC && V8_OS_LINUX
const size_t kMinimumCodeRangeSize = 12 * MB;
const size_t kReservedCodeRangePages = 0;
#else
const size_t kMinimumCodeRangeSize = 3 * MB;
const size_t kReservedCodeRangePages = 0;
@ -171,15 +178,19 @@ const uintptr_t kUintptrAllBitsSet = 0xFFFFFFFFu;
const bool kRequiresCodeRange = true;
const size_t kMaximalCodeRangeSize = 256 * MB;
const size_t kMinimumCodeRangeSize = 3 * MB;
const size_t kReservedCodeRangePages = 0;
const size_t kCodeRangeAreaAlignment = 4 * KB; // OS page.
#elif V8_HOST_ARCH_PPC && V8_TARGET_ARCH_PPC && V8_OS_LINUX
const bool kRequiresCodeRange = false;
const size_t kMaximalCodeRangeSize = 0 * MB;
const size_t kMinimumCodeRangeSize = 0 * MB;
const size_t kCodeRangeAreaAlignment = 64 * KB; // OS page on PPC Linux
#else
const bool kRequiresCodeRange = false;
const size_t kMaximalCodeRangeSize = 0 * MB;
const size_t kMinimumCodeRangeSize = 0 * MB;
const size_t kReservedCodeRangePages = 0;
const size_t kCodeRangeAreaAlignment = 4 * KB; // OS page.
#endif
const size_t kReservedCodeRangePages = 0;
#endif
// The external allocation limit should be below 256 MB on all architectures