Modify SizeOfFirstPage to take ool constant pool into account.

The OOL constant pool places constants in the old pointer space rather than the code space
which makes test-heap/ReleaseOverReservedPages fail. Modify SizeOfFirstPage to
increase the initial size of old-pointer space by the size of the constant pool and
decrease the code space by a corresponding amount.

R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/479553002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
rmcilroy@chromium.org 2014-08-20 14:40:53 +00:00
parent 16c2c72ade
commit d62b71e97c

View File

@ -990,10 +990,13 @@ bool PagedSpace::Expand() {
intptr_t PagedSpace::SizeOfFirstPage() {
// If using an ool constant pool then transfer the constant pool allowance
// from the code space to the old pointer space.
static const int constant_pool_delta = FLAG_enable_ool_constant_pool ? 48 : 0;
int size = 0;
switch (identity()) {
case OLD_POINTER_SPACE:
size = 112 * kPointerSize * KB;
size = (96 + constant_pool_delta) * kPointerSize * KB;
break;
case OLD_DATA_SPACE:
size = 192 * KB;
@ -1015,9 +1018,9 @@ intptr_t PagedSpace::SizeOfFirstPage() {
// upgraded to handle small pages.
size = AreaSize();
} else {
size =
RoundUp(480 * KB * FullCodeGenerator::kBootCodeSizeMultiplier / 100,
kPointerSize);
size = RoundUp((480 - constant_pool_delta) * KB *
FullCodeGenerator::kBootCodeSizeMultiplier / 100,
kPointerSize);
}
break;
}