44b7c59eb5
On 32-bit the maps are now aligned on a 32-byte boundary in order to encode more maps during compacting GC. The actual size of a map on 32-bit is 28 bytes making this change waste 4 bytes per map. On 64-bit the encoding for compacting GC is now using more than 32-bits and the maps here are still pointer size aligned. The actual size of a map on 64-bit is 48 bytes and this change does not intruduce any waste. My choice of 16 bits for kMapPageIndexBits for 64-bit should give the same maximum number of pages (8K) for map space. As maps on 64-bit are larger than on 32-bit the total number of maps on 64-bit will be smaller than on 32-bit. We could consider raising this to 17 or 18. I moved the kPageSizeBits to globals.h as the calculation of the encoding really depended on this. There are still an #ifdef/#endif in objects.h and this constant could be moved to globaks.h as well, but I kept it together with the related constants. All the tests run in debug mode with additional options --gc-global --always-compact as well (except for a few tests on which also fails before this change when run with --gc-global --always-compact). BUG=http://code.google.com/p/v8/issues/detail?id=524 BUG=http://crbug.com/29428 TEST=test/mjsunit/regress/regress-524.js Review URL: http://codereview.chromium.org/504026 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
67 lines
2.7 KiB
Plaintext
67 lines
2.7 KiB
Plaintext
# Copyright 2008 the V8 project authors. All rights reserved.
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are
|
|
# met:
|
|
#
|
|
# * Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# * Redistributions in binary form must reproduce the above
|
|
# copyright notice, this list of conditions and the following
|
|
# disclaimer in the documentation and/or other materials provided
|
|
# with the distribution.
|
|
# * Neither the name of Google Inc. nor the names of its
|
|
# contributors may be used to endorse or promote products derived
|
|
# from this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
prefix mjsunit
|
|
|
|
# All tests in the bug directory are expected to fail.
|
|
bugs: FAIL
|
|
|
|
# This one uses a built-in that's only present in debug mode. It takes
|
|
# too long to run in debug mode on ARM.
|
|
fuzz-natives: PASS, SKIP if ($mode == release || $arch == arm)
|
|
|
|
# Issue 494: new snapshot code breaks mjsunit/apply on mac debug snapshot.
|
|
apply: PASS, FAIL if ($system == macos && $mode == debug)
|
|
|
|
big-object-literal: PASS, SKIP if ($arch == arm)
|
|
|
|
# Issue 488: this test sometimes times out.
|
|
array-constructor: PASS || TIMEOUT
|
|
|
|
# Very slow on ARM, contains no architecture dependent code.
|
|
unicode-case-overoptimization: PASS, TIMEOUT if ($arch == arm)
|
|
|
|
# Skip long running test in debug.
|
|
regress/regress-524: PASS, SKIP if $mode == debug
|
|
|
|
[ $arch == arm ]
|
|
|
|
# Slow tests which times out in debug mode.
|
|
try: PASS, SKIP if $mode == debug
|
|
debug-scripts-request: PASS, SKIP if $mode == debug
|
|
array-constructor: PASS, SKIP if $mode == debug
|
|
|
|
# Flaky test that can hit compilation-time stack overflow in debug mode.
|
|
unicode-test: PASS, (PASS || FAIL) if $mode == debug
|
|
|
|
# Times out often in release mode on ARM.
|
|
array-splice: PASS || TIMEOUT
|
|
|
|
# Skip long running test in debug mode on ARM.
|
|
string-indexof-2: PASS, SKIP if $mode == debug
|
|
|