Commit Graph

13655 Commits

Author SHA1 Message Date
jochen@chromium.org
53aa5b63a9 Clean up ICU data tables on shutdown.
This is only used by d8 if compiled with external data tables, or an
embedder that uses external data tables and v8's version of ICU.

BUG=none
R=svenpanne@chromium.org
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 15:46:05 +00:00
ulan@chromium.org
a7d1b658fc Reland r19897 "Fix memory leak caused by treating Code::next_code_link as strong in marker.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 15:14:51 +00:00
jarin@chromium.org
10606aa756 Fix missing representation for the result of HIsSmiAndBranch.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 13:14:08 +00:00
dslomov@chromium.org
76b8f25edb This implements allocating small typed arrays in heap.
R=mvstanton@chromium.org, verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 12:50:13 +00:00
haitao.feng@intel.com
6130206c2f Introduce andp, notp, orp and xorp for x64 port
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 12:15:35 +00:00
haitao.feng@intel.com
687e524983 Introduce leap, movzxbp, movzxwp, repmovsp and xchgp for x64 port
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 11:17:53 +00:00
m.m.capewell@googlemail.com
252c3a890d ARM64: fix DoDeferredTaggedToI
BUG=

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 10:36:52 +00:00
svenpanne@chromium.org
ccef98ec0d Only assign environments when they are actually needed. (x64 only)
Twin of https://code.google.com/p/v8/source/detail?r=20231.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 10:35:31 +00:00
rossberg@chromium.org
95908dbb09 Promise constructor should not be enumerable.
Promise should not be enumerable in the global object.

BUG=352597
R=rossberg@chromium.org
LOG=Y

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

Patch from Yutaka Hirano <yhirano@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 10:14:04 +00:00
alexandre.rames@arm.com
f921ef399c Reland "ARM64: Add overflow checking support for multiplications by constant powers of 2."
This includes fixes for the overflow case spotted in mjsunit/mul-exhaustive-part4.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 10:11:01 +00:00
jkummerow@chromium.org
c6bff48f09 ASan support for the Zone
R=jarin@chromium.org, kcc@google.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 10:01:53 +00:00
baptiste.afsa@arm.com
46a9c7a350 ARM64: Check size of code generated in ProfileEntryHookStub::MaybeCallEntryHook.
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 09:39:09 +00:00
yangguo@chromium.org
9297e8b4b5 Fix interpreted regexp build.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 08:55:19 +00:00
hpayer@chromium.org
b90beee7f5 Always initialize elements pointer in fast literals.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 08:01:20 +00:00
haitao.feng@intel.com
479248f3d8 Introduce cmpp, decp, incp, negp, sbbp and testp for x64 port
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 01:13:09 +00:00
plind44@gmail.com
590707184d MIPS: Refactor optimized in hydrogen only runtime functions.
Port r20252 (d0f806b)

Original commit message:
This splits all runtime function into 3 categories:
1) RUNTIME: implemented in runtime and called from both full and optimized code.
2) RUNTIME_HIDDEN: implemented in runtime, never called directly from JS builtins.
3) INLINE: inlined in both full and optimized code
4) INLINE_OPTIMIZED: inlined in optimized code, implemented in runtime for full code.

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 17:40:36 +00:00
mvstanton@chromium.org
839588d411 HInnerAllocatedObject hydrogen trace printed offset incorrectly.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 16:32:23 +00:00
ulan@chromium.org
d334c09bf4 ARM64: block veneer pool in InstructionAccurateScope.
TEST=mozilla/ecma_3/RegExp/regress-169497
TBR=alexandre.rames@arm.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 16:14:46 +00:00
ulan@chromium.org
d0fe2952f3 Revert r20246 "ARM64: Add overflow checking support for multiplications by constant powers of 2."
Reason: mjsunit/mul-exhaustive-part4 fails in no snaphot debug.

TBR=alexandre.rames@arm.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 16:09:29 +00:00
ishell@chromium.org
f306341b46 TransitionElementsKind() and its recursive call chain handlified.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 15:33:22 +00:00
dslomov@chromium.org
f66af4feb4 Refactor optimized in hydrogen only runtime functions.
This splits all runtime function into 3 categories:
1) RUNTIME: implemented in runtime and called from both full and optimized code.
2) RUNTIME_HIDDEN: implemented in runtime, never called directly from JS builtins.
3) INLINE: inlined in both full and optimized code
4) INLINE_OPTIMIZED: inlined in optimized code, implemented in runtime for full code.

R=yangguo@chromium.org, yannguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 14:26:55 +00:00
verwaest@chromium.org
c432f7166c Don't convert dictionary sloppy arguments to fast double mode.
BUG=
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 14:14:58 +00:00
dslomov@chromium.org
cdc9812756 Revert "This implements allocating small typed arrays in heap."
This reverts commit r20244 for breaking Win64 build and webkit tests.

TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 14:12:58 +00:00
baptiste.afsa@arm.com
9ae45df65c ARM64: Minor improvement in LCodeGen::DoCheckInstanceType.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 13:45:17 +00:00
alexandre.rames@arm.com
d021973747 ARM64: Add overflow checking support for multiplications by constant powers of 2.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 13:35:19 +00:00
ulan@chromium.org
cb0f49c18a Add index check in DoAccessArgumentsAt.
BUG=355523
LOG=N
TEST=mjsunit/regress/regress-355523
R=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 13:26:41 +00:00
dslomov@chromium.org
654b6a27d1 This implements allocating small typed arrays in heap.
R=mvstanton@chromium.org, verwaest@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=20240

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 13:21:58 +00:00
yangguo@chromium.org
95dfa17c34 Handlify Runtime::GetElementOrCharAt.
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 13:02:03 +00:00
dslomov@chromium.org
727bc2153e Revert "This implements allocating small typed arrays in heap."
This reverts commit r20240 for breaking Windows build.

TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 12:58:22 +00:00
dslomov@chromium.org
de690b656f Allow to neuter array buffer twice in tests.
R=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 12:55:10 +00:00
dslomov@chromium.org
322a474bf2 This implements allocating small typed arrays in heap.
R=mvstanton@chromium.org, verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 12:51:49 +00:00
jochen@chromium.org
04eefb86f4 Roll ICU 239289:258359 and add support for external ICU data tables
The only binary that supports ICU data tables is d8. The location of the
data table file has to be passed via a command line switch:

  $ out/x64.optdebug/d8 --icu-data-file=out/x64.optdebug/icudtl.dat

BUG=72633,v8:3142
R=danno@chromium.org
LOG=y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 12:05:33 +00:00
hpayer@chromium.org
51571d8ff9 Do not left-trim arrays when concurrent sweeping is active.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 11:57:26 +00:00
ishell@chromium.org
a883bc72cc Fix for GCMole issue.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 11:26:42 +00:00
rossberg@chromium.org
2e1b16de2a Revert "Ship promises and weak collections"
Reason: breaks Blink layout tests.

R=machenbach@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 10:57:52 +00:00
alexandre.rames@arm.com
25fd28827d ARM64: Optimize RegList::IsValid() to speed up simulation in (opt)debug mode.
On my machine this improves the simulation speed noticeably.
| test               | base  | patched |
|--------------------|-------|---------|
| optdebug           | 15:37 | 11:07   |
| debug --quickcheck | 33:53 | 26:14   |

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 10:33:50 +00:00
svenpanne@chromium.org
09753b4a81 Only assign environments when they are actually needed. (ia32 only)
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 10:17:02 +00:00
yangguo@chromium.org
4ca46f3c3f Handlify GetElementWithReceiver and GetElementWithInterceptor.
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 10:15:12 +00:00
ishell@chromium.org
0d7bdc0fd6 Callers of ElementsAccessor::SetCapacityAndLength() handlified.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 09:51:13 +00:00
yangguo@chromium.org
793d4cb0b6 Fix issues when changing FLAG_concurrent_recompilation after init.
R=jarin@chromium.org
BUG=356053
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 09:38:48 +00:00
ishell@chromium.org
1ad4e2cc35 Reland of "FastElementsAccessor::SetLengthWithoutNormalize() handlified."
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 09:29:48 +00:00
yangguo@chromium.org
82f630a9f7 Reland "No longer OOM on invalid string length."
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 09:09:24 +00:00
titzer@chromium.org
3c31102025 First implementation of store elimination.
BUG=
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 09:06:16 +00:00
jarin@chromium.org
b765d3cdb9 Revert the (wrong) fix of the argument index check asserion.
R=ishell@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 21:32:19 +00:00
jarin@chromium.org
56f2006605 Fix to get around an assertion that triggers when generating code that happens to be dead because the assertion is checked a bit earlier at runtime.
R=ishell@chromium.org
BUG=355486
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 20:51:36 +00:00
ishell@chromium.org
f888aa19ae Revert "FastElementsAccessor::SetLengthWithoutNormalize() handlified."
This reverts commit r20214 for breaking debug tests on various platforms.

R=vogelheim@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 19:12:43 +00:00
plind44@gmail.com
3f21803844 MIPS: Replaced unreachable code in DoStoreNamedField by an assertion.
Port r20194 (2dfda0f)

Original commit message:
This is part of the effort to assign an environment if and only if we can deopt.

Removed some related dead code on the way.

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 18:17:14 +00:00
ishell@chromium.org
5e892f7f50 FastElementsAccessor::SetLengthWithoutNormalize() handlified.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 18:15:44 +00:00
baptiste.afsa@arm.com
688d07d11b ARM64: Prevent compilers to optimize away NaN negation in tests.
BUG=v8:3226
R=ulan@chromium.org, jochen@chromium.org
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 17:43:56 +00:00
alexandre.rames@arm.com
e577a18bd8 ARM64: Fix Register and FPRegister copy constructors.
This issue was introduced in r19156.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 17:41:37 +00:00
rossberg@chromium.org
33be68c2fa Ship promises and weak collections
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 16:59:04 +00:00
m.m.capewell@googlemail.com
86f5302002 ARM64: push/pop registers in stubs for safepoints
BUG=

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 16:41:37 +00:00
rossberg@chromium.org
ff1186c834 Add support for per-isolate private symbols
R=mstarzinger@chromium.org
BUG=
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 16:34:06 +00:00
verwaest@chromium.org
e18e650582 Ensure the constant operand for heap-object store-named-field is not a smi.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 16:25:48 +00:00
m.m.capewell@googlemail.com
1da7cb61ca ARM64: optimize call immediate
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 16:11:28 +00:00
ulan@chromium.org
0e0624c0b6 Enable x64 build for Android
BUG=
R=ulan@chromium.org

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

Patch from Yang Gu <yang.gu@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 15:56:35 +00:00
rossberg@chromium.org
6704bbce82 Spec adjustments for well-known symbols
R=arv@chromium.org, mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 15:45:52 +00:00
yangguo@chromium.org
72932ae417 Revert "No longer OOM on invalid string length."
This reverts r20202.

TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 15:36:15 +00:00
yangguo@chromium.org
531217502c No longer OOM on invalid string length.
R=ishell@chromium.org
BUG=v8:3060
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 15:01:17 +00:00
marja@chromium.org
b4d617e48d Parser fix: check allow_harmony_scoping() instead of FLAG_harmony_scoping.
Without this fix, ParserBase::set_allow_harmony_scoping() and the
kAllowHarmonyScoping in test-parsing.cc don't have any effect, and we end up not
running the tests with harmony scoping allowed.

R=rossberg@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 14:41:55 +00:00
dslomov@chromium.org
5fd9ddbcbb Use HType::Tagged when allocating elements.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 14:41:01 +00:00
baptiste.afsa@arm.com
f8c29ff0df ARM64: Use a double register to break cycle involving double values.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 14:18:06 +00:00
yangguo@chromium.org
9c0f5be8d1 Correctly convert micro-sign to its upper case.
R=dcarney@chromium.org
BUG=355485
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 14:16:14 +00:00
plind44@gmail.com
2c8229f609 MIPS: Do stack checks while pushing locals.
Port r20176 (a1bfd83)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 14:11:26 +00:00
yangguo@chromium.org
f1bacf8fff Fix DebugEvaluate for generators.
R=mstarzinger@chromium.org
BUG=v8:3225
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 14:10:57 +00:00
svenpanne@chromium.org
3081e1b730 Replaced unreachable code in DoStoreNamedField by an assertion.
This is part of the effort to assign an environment if and only if we can deopt.

Removed some related dead code on the way.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 13:16:23 +00:00
rossberg@chromium.org
0ed1317be0 Fix debuggersupport=off build after r17184 and r18149.
R=rossberg@chromium.org
BUG=

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

Patch from Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 13:04:20 +00:00
titzer@chromium.org
df25d21dee IA32: Rename MacroAssembler::Set() and MacroAssembler::SafeSet() to Move() and SafeMove().
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20192 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 13:00:05 +00:00
marja@chromium.org
25260c2b9a PreParser cleanup: no need to track with-ness of scopes.
Historically, we used to track the "with-ness" of a scope differently; not
creating a with scope, but setting a property on the scope (see
https://codereview.chromium.org/5166006 ). For laziness decisions, checking the
with-ness should be unnecessary: the current scope is function scope, and if the
outer scope is global scope, there's surely no with scope in between.

R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 12:16:09 +00:00
marja@chromium.org
e5f5cc951a Fix component build some more.
Not V8_EXPORTing ScriptCompiler::Source got rid of the last errors. This fixes
the new ones created by it. V8_INLINEing these funcs makes sense anyway.

In addition, added declared-private-and-unimplemented assignment operators
which were accidentally omitted.

R=dcarney@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 12:13:58 +00:00
svenpanne@chromium.org
49a7de4545 Revert "A64: Now that we have veneers, fix a couple of branches to directly jump to their target."
This reverts commit r20169, it heavily regresses a Mozilla test:

make -j32 arm64.release.check TESTFLAGS=--time TESTJOBS=mozilla/js1_5/Regress/regress-280769-2

Before:
--- Total time: 00:01.928 ---
   1 (00:01.911) mozilla/js1_5/Regress/regress-280769-2
   2 (00:01.910) mozilla/js1_5/Regress/regress-280769-2
   3 (00:01.910) mozilla/js1_5/Regress/regress-280769-2

After:
--- Total time: 01:36.025 ---
   1 (01:36.004) mozilla/js1_5/Regress/regress-280769-2
   2 (01:35.403) mozilla/js1_5/Regress/regress-280769-2
   3 (01:32.098) mozilla/js1_5/Regress/regress-280769-2

TBR=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 10:41:33 +00:00
jkummerow@chromium.org
b7c3cd5e37 [ia32/x64] Smaller instruction to check NaN
substract 1 and test for overflow

BUG=
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 10:18:27 +00:00
yangguo@chromium.org
8b8fb30e7f Reland "Remove Failure::OutOfMemory propagation and V8::IgnoreOutOfMemoryException."
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 10:07:15 +00:00
yangguo@chromium.org
03866841aa Revert "Remove Failure::OutOfMemory propagation and V8::IgnoreOutOfMemoryException."
This reverts r20179.

TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 09:17:18 +00:00
rmcilroy@chromium.org
1c90c9513b Remove an unused isolate_ field from BacktrackStack.
Found by Nico Weber with -Wunused-private-field

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 09:09:49 +00:00
ishell@chromium.org
cd5cc705a1 Use V8_FINAL and V8_OVERRIDE in ElementsAccessor classses.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 09:06:04 +00:00
ishell@chromium.org
89732db69e Builtin helper function EnsureJSArrayWithWritableFastElements() handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 08:48:36 +00:00
yangguo@chromium.org
62f65d8697 Remove Failure::OutOfMemory propagation and V8::IgnoreOutOfMemoryException.
R=dcarney@chromium.org
BUG=v8:3060
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 08:47:45 +00:00
dcarney@chromium.org
3ab0622b96 add setaccessorproperty to object
R=svenpanne@chromium.org

LOG=N
BUG=v8:2964

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 08:41:59 +00:00
yangguo@chromium.org
15951521cc Refactor inlined typed array runtime functions.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 08:22:24 +00:00
dcarney@chromium.org
493c6b3543 Do stack checks while pushing locals
R=yangguo@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 08:17:06 +00:00
yangguo@chromium.org
479bb2ffbf Disable concurrent OSR.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 07:44:50 +00:00
rodolph.perfetta@arm.com
d5753f27d9 ARM: fix assertions for uxtb and co.
Allow operands with ROR #0. Behind the scene they are mapped to LSL #0.

BUG=v8:3209
LOG=N
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 15:59:45 +00:00
alexandre.rames@arm.com
759bf42858 A64: Now that we have veneers, fix a couple of branches to directly jump to their target.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 15:08:50 +00:00
ulan@chromium.org
2aaaeb7822 Add special check for topmost optimized code in deoptimizer verification.
BUG=354843
LOG=N
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 15:03:40 +00:00
ishell@chromium.org
deca3f3677 JSObject::EnsureCanContainElements() handlified.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 14:29:27 +00:00
yangguo@chromium.org
265ae63173 Enable concurrent OSR.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 14:05:49 +00:00
m.m.capewell@googlemail.com
7eb99dbef1 ARM64: Fix some stub-cache TODOs
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 13:11:50 +00:00
m.m.capewell@googlemail.com
6c4178330d ARM: Fix Q register encoding
Fix Q register encoding for registers other than Q0. Also, fix value in NeonSize
enumeration.

BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 13:04:20 +00:00
ulan@chromium.org
50ca2eb9f6 Add option to run ScopeIterator faster giving up nested scope chain.
We'd like to be able to trade nested scope chain info (consisting of with, block and catch scopes) in favor of speed in some cases.

BUG=chromium:340285
LOG=N
R=ulan@chromium.org, pfeldman, ulan, yangguo

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

Patch from Andrey Adaykin <aandrey@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 12:30:58 +00:00
ishell@chromium.org
90b1077e31 Reland of r20146 "JSObject::NormalizeElements() handlified."
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 12:23:39 +00:00
titzer@chromium.org
a428b0d588 Add a utility method to the ia32 macro assembler to move a double immediate into an XMM register.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 12:16:37 +00:00
ulan@chromium.org
fc2563f108 Visit return statement of inlined function in value context.
BUG=354357
LOG=N
TEST=mjsunit/regress/regress-354357.js
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 12:14:44 +00:00
ishell@chromium.org
0b0b6f65a9 ArraySplice builtin handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 11:22:16 +00:00
ulan@chromium.org
f20a9473f3 Ensure that lazy deopt sequence does not override calls.
BUG=354433
LOG=N
TEST=mjsunit/regress/regress-354433.js
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 11:02:15 +00:00
ishell@chromium.org
309bf937a0 Revert "JSObject::NormalizeElements() handlified."
This reverts commit r20146 which broke V8 GC Stress, Mjsunit tests.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 10:42:19 +00:00
marja@chromium.org
e79ff8275c Move new expression parsing funcs to ParserBase.
Functions moved: ParseMemberWithNewPrefixesExpression, ParseMemberExpression,
ParseMemberExpressionContinuation.

Now all Parse*Expression functions are in ParserBase.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 10:34:51 +00:00
marja@chromium.org
7708d4a22d Move ParseLeftHandSideExpression to ParserBase.
Includes cleanups:
- Reorganized functions in PreParserFactory to be in the logical order.
- De-hackified things PreParser doesn't need to track, such as IsCall & IsCallNew.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 09:51:33 +00:00
marja@chromium.org
8452030817 Move ParsePostfixExpression into ParserBase.
+ enable a test which checks that Parser and PreParser produce the "invalid left
hand side" errors consistently.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 09:46:18 +00:00
jochen@chromium.org
2ce0bebba1 Rename A64 port to ARM64 port
BUG=354405
R=ulan@chromium.org, rodolph.perfetta@arm.com
LOG=y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 09:28:26 +00:00
ishell@chromium.org
bd2f81397c JSObject::NormalizeElements() handlified.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 08:44:40 +00:00
ishell@chromium.org
e9a315c978 JSArray::SetContent() handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 08:30:42 +00:00
jochen@chromium.org
ca871bf098 Remove unused color declarations in the a64 simulator
They're now all defined globally

BUG=none
R=svenpanne@chromium.org
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 08:23:16 +00:00
ishell@chromium.org
863b5d30cd ArrayUnshift builtin handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 08:12:16 +00:00
svenpanne@chromium.org
586f64e1f3 Revert "Use constant length for memcpy on A64 simulator."
This reverts commit r20141 which broke the build with some GCC versions. The
reason behind that is GCC emits a warning about code which can never be reached,
but GCC can't figure that out.

The right approach would be using template specialization instead of these
runtime if/then/else cascades, which would be nicer from a SW engineering
perspective, too.

TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 08:03:26 +00:00
svenpanne@chromium.org
bfb3532249 Use constant length for memcpy on A64 simulator.
Compiler can't optimize away variable length memcpy.
About a 18% boost.

Before - 5:40

Richards: 75.2
DeltaBlue: 105
Crypto: 64.0
RayTrace: 188
EarleyBoyer: 146
RegExp: 23.8
Splay: 96.2
NavierStokes: 91.9
----
Score (version 7): 85.7

After - 4:39

Richards: 90.8
DeltaBlue: 134
Crypto: 81.7
RayTrace: 227
EarleyBoyer: 177
RegExp: 29.7
Splay: 126
NavierStokes: 108
----
Score (version 7): 106

R=rodolph.perfetta@gmail.com, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 07:08:08 +00:00
haitao.feng@intel.com
c867df5181 Introduce addp, idivp, imulp and subp for x64 port
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 02:42:10 +00:00
plind44@gmail.com
03b435ee92 MIPS: Fix register usage of r20076.
BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 19:12:08 +00:00
mstarzinger@chromium.org
c27758bcc7 Fix missing access check in Runtime_SetPrototype.
R=rossberg@chromium.org
BUG=chromium:354123
TEST=cctest/test-api/Regress354123
LOG=y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 18:14:33 +00:00
jkummerow@chromium.org
2b722b663e Fix polymorphic hydrogen handling of SLOPPY_ARGUMENTS_ELEMENTS
BUG=chromium:354391
LOG=y
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 16:25:24 +00:00
rossberg@chromium.org
b3b6987b27 Reland "Implement ES6 symbol registry and predefined symbols"
Only change relative to original CL is the updated assertion condition at objects-inl.h:2119

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 16:13:09 +00:00
plind44@gmail.com
2aadbc8f2c MIPS: Implement flooring division by a constant via truncating division by a constant.
Port r20123 (31ab416)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 16:04:51 +00:00
alexandre.rames@arm.com
bd69f65394 A64: Restore the stack limit protection to 1KB.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 15:25:27 +00:00
yangguo@chromium.org
c9d391d87f Fix assertions wrt concurrent OSR.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 15:23:31 +00:00
ishell@chromium.org
9f6be9c514 Callers of JSArray::SetContent() handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 13:40:08 +00:00
mvstanton@chromium.org
c92de5d189 Fix for performance issue 353661 - 23% regression in dromaeo.
The issue was that a previous fix to avoid a logic error was not
targeted enough: it allowed non-transitioning stores to fall
into a code path meant to preserve monomorphic state in the
case of a transitioning store.

BUG=353661
LOG=N
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 13:38:08 +00:00
marja@chromium.org
e9358fa9ce Increase the "local variables in a function" limit.
The limit was originally added to avoid having large user-controlled constants
(variable indexes) in the code generated by full-codegen.

History behind this change:

The original CL for adding the limit was https://codereview.chromium.org/7003030
and at that time, the limit was 32767.

Reason for adding the limit (in CL comments): "The motivation behind this change
is to avoid large user controlled constants in the code. The slot_operand used
in the IA32 full code generator uses a relative load where the local index is an
(negative) immediate."

The limit was then bumped to 65535 by https://codereview.chromium.org/10965063
and to 131071 by https://codereview.chromium.org/11099063.

R=dcarney@chromium.org, svenpanne@chromium.org, jkummerow@chromium.org, rossberg@chromium.org
BUG=v8:3205
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 13:37:26 +00:00
marja@chromium.org
d017e6ce54 Make PreParser track valid left hand sides.
Notes:
- This makes PreParser produce invalid_lhs_in_assignment and
invalid_lhs_in_prefix_op. Other errors will follow as the corresponding funcs
move to ParserBase.
- PreParserExpression::IsStrictFunction and StrictFunction() are not needed any
more -> removed them.

R=rossberg@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 13:18:15 +00:00
ishell@chromium.org
68c91ea301 ArrayShift builtin handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 13:16:19 +00:00
svenpanne@chromium.org
68237f6590 Implement flooring division by a constant via truncating division by a constant.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 13:10:23 +00:00
ishell@chromium.org
8e10eea993 ArrayPush builtin handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 13:01:08 +00:00
rossberg@chromium.org
1088fbd1e7 Revert "Implement ES6 symbol registry and predefined symbols"
TBR=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 12:56:41 +00:00
yangguo@chromium.org
00170e434b Use HBoundsCheck to check string length.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 12:34:44 +00:00
yangguo@chromium.org
000be4d033 Reland "Throw exception on invalid string length instead of OOM."
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 12:27:36 +00:00
rossberg@chromium.org
0f71f61799 Implement ES6 symbol registry and predefined symbols
R=mstarzinger@chromium.org, arv@chromium.org
BUG=
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 12:26:27 +00:00
yangguo@chromium.org
77a28b731d Handlify callers to GetElementNoException.
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 12:22:13 +00:00
alexandre.rames@arm.com
5036031520 A64: Minor cleaning in StoreStubCompiler::GenerateStoreField.
Abstract a register to simplify code generation.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 11:35:05 +00:00
yangguo@chromium.org
a5a82ef123 Revert "Throw exception on invalid string length instead of OOM."
This reverts r20112.

TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 11:11:28 +00:00
ishell@chromium.org
107ea152a4 ElementsAccessor::Delete() handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 10:52:22 +00:00
yangguo@chromium.org
9ba80269ee Throw exception on invalid string length instead of OOM.
R=bmeurer@chromium.org
BUG=349329
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 10:49:33 +00:00
alexandre.rames@arm.com
bfcc117f4c A64: Remove Operand constructors where an implicit constructor can be used.
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 10:37:19 +00:00
alexandre.rames@arm.com
0768479e74 A64: Improve the deoptimization exit code for LMathRound.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 10:12:49 +00:00
alexandre.rames@arm.com
c8a6fd017d A64: In the Simulator, corrupt caller-saved registers after runtime printf call.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 10:03:17 +00:00
alexandre.rames@arm.com
948d8621bc A64: Abstract simulation of runtime calls in a separate function.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 09:51:19 +00:00
alexandre.rames@arm.com
9755b90778 A64: Abstract colour definitions for the Simulator tracing.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 09:45:17 +00:00
machenbach@chromium.org
d7d4452e1c Deprecate prepare push commit when pushing to trunk.
- This also deprecates using version.cc on bleeding edge.
- The deprecated push-to-trunk.sh is deleted.
- The script now commits bleeding edge HEAD by default. Committing different revisions will be added in a follow up CL.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 09:23:44 +00:00
ulan@chromium.org
f7dc76af6d A64: clean up pending reloc info if code generation was aborted.
This fixes assertion failure in destructor of Assembler.

BUG=352659
LOG=N
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 09:10:15 +00:00
yangguo@chromium.org
238f12e618 Make max size and max length of strings consistent.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 08:33:06 +00:00
ulan@chromium.org
41eab25615 A64: Fix write barrier input in KeyedStoreIC::GenerateSloppyArguments.
This fixes flaky crashes in gc-stress bot:
> Fatal error in ../src/incremental-marking.cc, line 84
> CHECK(obj->IsHeapObject()) failed

BUG=353551
LOG=N
TEST=test/mjsunit/regress/regress-353551.js
R=m.m.capewell@googlemail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 08:32:58 +00:00
yangguo@chromium.org
eb34943cfb Revert "Enable Concurrent OSR" due to A64 failures.
This reverts r20096.

TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 08:19:25 +00:00
yangguo@chromium.org
65d0d384c7 Enable concurrent OSR.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 08:04:28 +00:00
machenbach@chromium.org
62e7063706 Prepare push to trunk. Now working on version 3.25.21.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 01:04:38 +00:00
rafaelw@chromium.org
c84ac51922 Cleanup following MicrotaskQueue abstraction
https://code.google.com/p/v8/source/detail?r=19344 failed to remove the promiseEvents InternalArray.

R=rossberg@chromium.org, rossberg
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 21:48:30 +00:00
plind44@gmail.com
a03e80c3a5 MIPS: Pretenure call new support.
Port r20076 (b7b1372)

Original commit message:
When FLAG_pretenure_call_new is on, we emit mementos on new object creation
in full code, and consume the feedback in crankshaft. A key difference in the
generated code for stubs is the allocation of an additional type vector slot for the
CallNew AST node, which simplifies the CallConstructStub and CallFunctionStub
considerably.

Some performance tuning still needs to be addressed, therefore the flag is off at
this moment, though fully functional. The goal is to remove the flag as soon as
possible, which allows much code deletion (yay).

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 20:00:29 +00:00
ishell@chromium.org
158269c132 ElementsAccessor::SetLength() handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 16:29:19 +00:00
rodolph.perfetta@arm.com
bdea3e9a8f ARM: clean-up some stub call sequences.
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 16:27:09 +00:00
jkummerow@chromium.org
da6e5ebcdf Add FLAG_trace_bce
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 16:03:56 +00:00
jkummerow@chromium.org
d9b6b6439d Fix polymorphic keyed loads for SLOPPY_ARGUMENTS_ELEMENTS
BUG=chromium:350867
LOG=y
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 15:49:29 +00:00
plind44@gmail.com
21e09fa8dd MIPS: Array constructor expects AllocationSite or undefined as feedback.
Port r20064 (d2ccdc6)

Original commit message:
Redefine Array constructor to expect an AllocationSite in the feedback
register or undefined. This will make code simpler as we support
pretenuring feedback for all constructed objects.

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 15:46:24 +00:00
ulan@chromium.org
79ab5448ab Removed obsolete and dead includes.
BUG=353954
LOG=N
R=ulan@chromium.org

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

Patch from Dmitry Zvorygin <zvorygin@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 15:40:38 +00:00
plind44@gmail.com
3d77e7eb07 MIPS: Reland "Add out-of-line constant pool support to Arm."
Port r20053 (df27abf)

Original commit message:
This CL adds out-of-line constant pool support to Arm. A ConstantPoolBuilder
object is introduced to manage building of the ConstantPoolArray for a given
code object.

This CL depends on the following CLs landing first:
https://codereview.chromium.org/138503002/
https://codereview.chromium.org/179813005/
https://codereview.chromium.org/183553003/
https://codereview.chromium.org/183803022/
https://codereview.chromium.org/183883011/
https://codereview.chromium.org/186733006/
https://codereview.chromium.org/188063002/
https://codereview.chromium.org/190793002/
https://codereview.chromium.org/190823002/
https://codereview.chromium.org/190833002/
https://codereview.chromium.org/190883002/

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 15:34:17 +00:00
plind44@gmail.com
b2b2799d5c MIPS: Tweaked FlooringDiv back to TruncatingDiv again.
Port r20048 (8953785)

Original commit message:
This is a first step towards getting the flooring division by a
constant working again (which will be a separate CL).

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 15:27:38 +00:00
ishell@chromium.org
f09f99fd09 ArrayPop builtin handlified.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 15:25:04 +00:00
ishell@chromium.org
368a2e78c0 Handlification of JSArray::SetElementsLength().
R=verwaest@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 14:09:50 +00:00
marja@chromium.org
e9717833f9 Move ParseUnaryExpression into ParserBase and add tests.
This also makes PreParser produce the strict_delete error the same way as
Parser (see test).

R=rossberg@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 14:08:47 +00:00
marja@chromium.org
c04dd3fb7f Revert "Move ParseUnaryExpression into ParserBase and add tests."
This reverts revision 20077.

Reason: build fail on some compilers.

BUG=
TBR=marja@chromium.org,rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 13:58:15 +00:00
marja@chromium.org
f4ef82309a Move ParseUnaryExpression into ParserBase and add tests.
This also makes PreParser produce the strict_delete error the same way as
Parser (see test).

R=rossberg@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 13:42:41 +00:00
mvstanton@chromium.org
535f3427ca Pretenure call new support.
When FLAG_pretenure_call_new is on, we emit mementos on new object creation
in full code, and consume the feedback in crankshaft. A key difference in the
generated code for stubs is the allocation of an additional type vector slot for the
CallNew AST node, which simplifies the CallConstructStub and CallFunctionStub
considerably.

Some performance tuning still needs to be addressed, therefore the flag is off at
this moment, though fully functional. The goal is to remove the flag as soon as
possible, which allows much code deletion (yay).

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 13:39:09 +00:00
marja@chromium.org
932a29a66a New compilation API, part 2.
This CL makes the Parser produce the data PreParser used to produce. This
enables us to get rid of the unnecessary preparsing phase.

The first part is here: https://codereview.chromium.org/199063003/

BUG=
R=dcarney@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 13:24:13 +00:00
machenbach@chromium.org
a6f9993569 Prepare push to trunk. Now working on version 3.25.20.
R=yangguo@chromium.org
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 13:13:23 +00:00
yangguo@chromium.org
d8c3c5ef0a Introduce API to trigger exception on JS execution.
R=jochen@chromium.org, pmarch@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 13:06:53 +00:00
hpayer@chromium.org
9be17fb30e Temporarily disable evacuation verification for parallel-concurrently swept pages.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 11:56:11 +00:00
mvstanton@chromium.org
5e4febb06e Array constructor expects AllocationSite or undefined as feedback.
Redefine Array constructor to expect an AllocationSite in the feedback
register or undefined. This will make code simpler as we support
pretenuring feedback for all constructed objects.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 11:51:30 +00:00
hpayer@chromium.org
42de2044a9 Account for right object size when left trimming arrays.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 11:37:56 +00:00
yangguo@chromium.org
0bc684a794 Introduce per-isolate assert scopes and API to guard JS execution.
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 11:31:43 +00:00
hpayer@chromium.org
0f1f071751 Access old space marking bits from runtime only when incremental marking is in MARKING state.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 10:48:54 +00:00
machenbach@chromium.org
a20d5731e8 Prepare push to trunk. Now working on version 3.25.19.
R=yangguo@chromium.org
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 10:48:20 +00:00
rmcilroy@chromium.org
0acbcf9876 Reland "Add out-of-line constant pool support to Arm."
This CL adds out-of-line constant pool support to Arm.  A ConstantPoolBuilder
object is introduced to manage building of the ConstantPoolArray for a given
code object.

This CL depends on the following CLs landing first:
  https://codereview.chromium.org/138503002/
  https://codereview.chromium.org/179813005/
  https://codereview.chromium.org/183553003/
  https://codereview.chromium.org/183803022/
  https://codereview.chromium.org/183883011/
  https://codereview.chromium.org/186733006/
  https://codereview.chromium.org/188063002/
  https://codereview.chromium.org/190793002/
  https://codereview.chromium.org/190823002/
  https://codereview.chromium.org/190833002/
  https://codereview.chromium.org/190883002/

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 10:32:12 +00:00
yangguo@chromium.org
bd2397c90c Revert "Add out-of-line constant pool support to Arm."
This reverts commit r20051.

TBR=rmcilroy@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 09:53:58 +00:00
rmcilroy@chromium.org
9415863c97 Add out-of-line constant pool support to Arm.
This CL adds out-of-line constant pool support to Arm.  A ConstantPoolBuilder
object is introduced to manage building of the ConstantPoolArray for a given
code object.

This CL depends on the following CLs landing first:
  https://codereview.chromium.org/138503002/
  https://codereview.chromium.org/179813005/
  https://codereview.chromium.org/183553003/
  https://codereview.chromium.org/183803022/
  https://codereview.chromium.org/183883011/
  https://codereview.chromium.org/186733006/
  https://codereview.chromium.org/188063002/
  https://codereview.chromium.org/190793002/
  https://codereview.chromium.org/190823002/
  https://codereview.chromium.org/190833002/
  https://codereview.chromium.org/190883002/

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 09:38:20 +00:00
hpayer@chromium.org
8e749aaafd Added sweeping time measurement for old space sweeping.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 09:27:42 +00:00
haitao.feng@intel.com
e812aca6b3 Introduce Push and Pop macro instructions for x64
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 08:59:04 +00:00
svenpanne@chromium.org
1a6f977d6a Tweaked FlooringDiv back to TruncatingDiv again.
This is a first step towards getting the flooring division by a
constant working again (which will be a separate CL).

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 07:01:08 +00:00
machenbach@chromium.org
34f70c7dea Prepare push to trunk. Now working on version 3.25.18.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 01:04:33 +00:00
marja@chromium.org
934e58d3a3 (Pre)Parser unification: use shorter type names.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 17:05:38 +00:00
alexandre.rames@arm.com
1330326830 A64: Use appropriate return types for the simulator fpcr and nzcv members.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 16:44:07 +00:00
mvstanton@chromium.org
d30490008a Increase pretenure ratio from 60% to 85%
As pretenure-call-new comes online, this is a better performing ratio
overall.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 15:19:35 +00:00
rossberg@chromium.org
b7b40e2b84 Remove Promise.cast
...as per January meeting. Renames 'cast' to 'resolve'. We rename the prior 'resolve' to 'accept', to keep the chain API usable.

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 15:03:35 +00:00
m.m.capewell@googlemail.com
2e555d2887 A64: ElementsKind TODOs
Replace LoadElementsKind with LoadElementsKindFromMap, remove unneeded TODO in
DoStringCharFromCode, improve constraints for DoCheckValue and improve code for
ElementsKind checking in StoreArrayLiteralElementStub.

BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 15:01:55 +00:00
rossberg@chromium.org
aa250ea41a Promises: make null a legal argument for .then
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 14:55:43 +00:00
alexandre.rames@arm.com
88eba5e388 A64: Force emission of the veneer pool emission when required.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 14:26:26 +00:00
ulan@chromium.org
18104111f4 Refactor GetCodeCopyFromTemplate to get a single point where objects are replaced in code.
BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 14:15:09 +00:00
alexandre.rames@arm.com
611ea747ef A64: Handle a few TODOs.
Below are notes about some of the TODOs handled.

* In Simulator::Debug:
    We haven't had issues with printing in the debugger for a while. If the
    feature turns out to be still lacking an issue can be raised.

* In SubStringStub::Generate:
    There is no need to jump there. The StringCharAtGenerator is asked to set
    the result in x0, and the return sequence following only uses two instructions.
    Also, we would need to jump after the native counter increment instead of the
    return_x0 label.

* In ArrayPushStub::Generate:
    Raised an internal issue to check and update the ARM code.

* In MacroAssembler::CopyBytes:
    The new code should be faster for bulk copies. Raised an internal issue to
    investigate and improve this function.

* In MacroAssembler::EnterExitFrame:
    Unless we actually find something is wrong, this is working and looks ok.
    Also fixed the comments about the FP registers.

* Comment for BumpSystemStackPointer:
    Removed the comment at the declaration site and updated the TODO in the
    implementation.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 14:00:21 +00:00
ulan@chromium.org
487ca9e384 Fix TransitionElementsKindStub to handle non-JSArray objects correctly.
BUG=352982
LOG=N
TEST=mjsunit/regress/regress-352982.js
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 13:29:29 +00:00
machenbach@chromium.org
bd48e40ad1 Prepare push to trunk. Now working on version 3.25.17.
R=yangguo@chromium.org
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 13:02:41 +00:00
yangguo@chromium.org
c76a97159f Handlify callers of Object::GetElement.
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 12:34:02 +00:00
yangguo@chromium.org
5bca14a33e Fix race between VisitSmiRoots and SetStackLimit.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 12:21:07 +00:00
rossberg@chromium.org
9b28aed3f6 Introduce representation types
Also:
- improve type pretty-printing,
- update doc comments,
- some renamings for consistency.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 11:50:18 +00:00
ishell@chromium.org
acf695e37a Handlification of ArrayConstructorCommon().
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 11:38:27 +00:00
rmcilroy@chromium.org
be0bc25bbb Add support for movw/movt immediate loads to BackEdgeTable on ARM to enable ool constant pool.
R=rodolph.perfetta@arm.com, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 11:36:19 +00:00
dslomov@chromium.org
6c01c3fd56 Apply numeric casts correctly in typed arrays and related code.
R=jkummerow@chromium.org
BUG=353004
LOG=Y

Committed: https://code.google.com/p/v8/source/detail?r=20020

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 10:55:29 +00:00
dslomov@chromium.org
a6224272fd Revert "Apply numeric casts correctly in typed arrays and related code."
This reverts commit r20020 for breaking Win64 build.

TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 10:50:00 +00:00
dslomov@chromium.org
849187eab0 Apply numeric casts correctly in typed arrays and related code.
R=jkummerow@chromium.org
BUG=353004
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 10:23:50 +00:00
rossberg@chromium.org
58d623f228 Stage ES6 promises and weak collections
Split collections flag into weak and non-weak.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 09:57:14 +00:00
svenpanne@chromium.org
d7844ec8cc Robustified address calculations on A64.
We no longer rely on the (adventurous) assumption that the class
Instruction is empty, implying sizeof(Instruction) == 1. This will
greatly simplify upcoming refactorings.

R=rodolph.perfetta@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 07:13:55 +00:00
machenbach@chromium.org
4b01e032c0 Prepare push to trunk. Now working on version 3.25.16.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 01:04:55 +00:00
plind44@gmail.com
9337a45ab3 MIPS: Utility functions for pretenure call new.
Port r19998 (6b07a42)

Original commit message:
These functions aren't yet called in the tree but will be in the next days. AssertUndefinedOrAllocationSite is to be used in several places where AllocationSite feedback is optional.

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 18:27:44 +00:00
plind44@gmail.com
037e981939 MIPS: Fixed spec violation of storing to length of a frozen object.
Port r20005 (d647ec2)

BUG=chromium:350890
LOG=N
R=ishell@chromium.org

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 18:16:19 +00:00
rmcilroy@chromium.org
4268685a3b Update constant pool correctly when resuming a generator
This CL depends on the following CLs landing first:
  https://codereview.chromium.org/188063002/
  https://codereview.chromium.org/190793002/

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 17:29:03 +00:00
verwaest@chromium.org
5aaa513630 Don't generate keyed store ICs for global proxies.
BUG=352983
LOG=y
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 17:19:39 +00:00
alexandre.rames@arm.com
d83e87aeea A64: Introduce a DeoptimizeIfMinusZero() helper.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 17:18:31 +00:00
ulan@chromium.org
e1e4071cbc Fix date cache in strict mode.
BUG=v8:3220
LOG=N
TEST=mjsunit/regress/regress-3220.js
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 15:47:58 +00:00
ishell@chromium.org
3b257c35e5 Fixed spec violation of storing to length of a frozen object.
BUG=chromium:350890
LOG=N
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 15:43:33 +00:00
plind44@gmail.com
7692811fbf MIPS: Make invalid LHSs a parse-time (reference) error
Port r19976 (73bbd7a)

Original commit message:
This is required by the spec. It also prevents crashes resulting from the attempt to read type feedback for the RHS of an invalid assignment which full codegen never actually allocated info for.

To do: check properly in preparser already.

BUG=351658
LOG=Y
R=rossberg@chromium.org

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 15:11:04 +00:00
ishell@chromium.org
9a340d1fff Handlification of ArrayConstructorCommon().
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 15:01:45 +00:00
jkummerow@chromium.org
e4a18df7d1 Fix ASSERT violation when BinaryOpIC::Transition recurses into itself
BUG=chromium:352586
LOG=n
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 14:51:31 +00:00
mvstanton@chromium.org
6a4a934d8d Utility functions for pretenure call new. These functions aren't yet called in the tree but will be in the next days. AssertUndefinedOrAllocationSite is to be used in several places where AllocationSite feedback is optional.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 13:55:22 +00:00
marja@chromium.org
9b94d12fd7 Move ParseBinaryExpression to ParserBase.
R=mstarzinger@chromium.org
BUG=v8:3126
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 13:54:42 +00:00
mvstanton@chromium.org
3daaba09b6 Pretenure code generation corner case with new space COW arrays.
When advised to pretenure in crankshaft, and the boilerplate is a cow
array, move the elements to old space if it's not already there to avoid
overflowing the store buffer.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 13:42:37 +00:00
marja@chromium.org
6cf32b134a Move ParseConditionalExpression to ParserBase.
R=mstarzinger@chromium.org
BUG=v8:3126
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 13:36:39 +00:00
marja@chromium.org
f5f67ca58e Expose DumpBacktrace for debugging purposes.
After this change, you can just call DumpBacktrace in any function. Previously
the only function printing stack traces was V8_Fatal, but that also terminated
the program, so not very useful for debugging.

Note that DumpBacktrace is roughly equivalent to base::debug::StackTrace
functionality in Chromium, except less fancy, but it's enough for us.

R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 13:33:19 +00:00
svenpanne@chromium.org
47aa3c65dc Better handling of constant-pool-like parts of the instruction stream.
This avoids e.g. trying to disassemble those parts, which could result
in failed assertions.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 13:32:39 +00:00
yangguo@chromium.org
3550e9364a Delete socket connection after debugger input loop ends.
R=svenpanne@chromium.org
BUG=v8:3193
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 13:32:02 +00:00
hpayer@chromium.org
4c20e76b4b heap: allow allocation in gc prologue/epilogue
BUG=
R=hpayer@chromium.org, danno@chromium.org

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

Patch from Fedor Indutny <fedor.indutny@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 10:38:45 +00:00
rossberg@chromium.org
1174e9233d Fix C++ compilation issue
TBR=marja@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 10:28:53 +00:00
rossberg@chromium.org
c3c185c173 Make invalid LHSs a parse-time (reference) error
This is required by the spec. It also prevents crashes resulting from the attempt to read type feedback for the RHS of an invalid assignment which full codegen never actually allocated info for.

To do: check properly in preparser already.

R=marja@chromium.org, mstarzinger@chromium.org
BUG=351658
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 10:21:01 +00:00
rossberg@chromium.org
0a2f4c86bd Split Promise API into Promise/Resolver
R=svenpanne@chromium.org
BUG=
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 09:57:25 +00:00
jkummerow@chromium.org
dc458525ad Fix typo in r19923 (bounds check offset propagation)
BUG=chromium:352929
LOG=n
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 09:38:01 +00:00
machenbach@chromium.org
8280481cc9 Prepare push to trunk. Now working on version 3.25.15.
R=yangguo@chromium.org
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 09:27:45 +00:00
ishell@chromium.org
f77c51b0a6 Check elimination now sets known successor branch of HCompareObjectEqAndBranch (correctness fix).
BUG=chromium:352058
LOG=N
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 09:11:38 +00:00
mvstanton@chromium.org
e3f3f6d98b Revert "Continued fix for 351257. Reusing the feedback vector is too complex."
This reverts commit r19919.

TBR=bmeuer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 08:31:21 +00:00
machenbach@chromium.org
1438b71ff5 Prepare push to trunk. Now working on version 3.25.14.
R=yangguo@chromium.org
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 08:13:17 +00:00
yurys@chromium.org
587b54482f Move profiler callback interfaces from v8.h to v8-profiler.h
OutputStream and ActivityControl are used only by heap profiler so I moved their definition in v8-profiler.h to not clutter v8.h

Drive-by: removed OutputStream::GetOutputEncoding which is unused.

BUG=None
LOG=Y
R=alph@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 07:02:39 +00:00
jarin@chromium.org
7b3d235263 Cleanup: Remove unused 'non_object_property_call' message.
R=jarin@chromium.org

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

Patch from Mike West <mkwst@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-15 20:37:13 +00:00
plind44@gmail.com
2970f43330 MIPS: Fix Lithium div, mod and floor.
BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 19:03:10 +00:00
plind44@gmail.com
50aea86002 MIPS: Fix deoptimization for out-of-line constant pool.
Port r19940 (db96c25)

Original commit message:
Ensure that the stack contains the correct constant pool pointer when a
function deopts.

This CL depends on https://codereview.chromium.org/183803022/ landing first.

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19948 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 18:26:31 +00:00
ulan@chromium.org
940dc679bb A64: fix restoring of registers in deopt_every_n_times.
BUG=352656
LOG=N
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 18:11:27 +00:00
dslomov@chromium.org
0fa1ebbb7b Prepare push to trunk. Now working on version 3.25.13.
R=machenbach@chromium.org
TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 16:14:35 +00:00
ulan@chromium.org
b927af8848 Fix a race in initialization of timezone cache in platform-win32.
This allocates a timezone cache per isolate.

BUG=
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 15:19:54 +00:00
alexandre.rames@arm.com
17d040e21e A64: Improve the code sequence generated for deoptimization exits.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 15:17:34 +00:00
alexandre.rames@arm.com
f9f37dbaa6 A64: Fixes for the veneers emission.
This patch includes 3 fixes for veneers emission.

1) Block veneer pools emission in the PatchingAssembler.
2) Fix the check for veneer pool emission just before a constant pool.
3) Forbid copy of labels. The list of JumpTableEntry used to track the
   deoptimization table entries would make copies of the labels when growing.
   Doing so, it would confuse the Assembler that was tracking the labels via
   pointers.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 15:14:42 +00:00
rmcilroy@chromium.org
f1f6d3095a Fix deoptimization for out-of-line constant pool.
Ensure that the stack contains the correct constant pool pointer when a
function deopts.

This CL depends on https://codereview.chromium.org/183803022/ landing first.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 15:11:58 +00:00
yurys@chromium.org
6e2d853b63 Expose FrameDetails and ScopeDetails from its Mirrors.
We in fact already access these via the private property "details_".
Make it into the API.

R=ulan@chromium.org, yurys@chromium.org, ulan, yangguo, yurys

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

Patch from Andrey Adaykin <aandrey@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 15:10:01 +00:00
yangguo@chromium.org
e69a9ef8d9 Clean up some isolate macros.
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 15:06:17 +00:00
verwaest@chromium.org
0f2a324c8a Fix generalization with callbacks.
BUG=352588
LOG=n
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 14:17:49 +00:00
yangguo@chromium.org
dc24a17226 Remove unused irregexp cache.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 13:22:14 +00:00
hpayer@chromium.org
e617c101b9 Make thread_creation_mutex a Thread::PlatformData member.
BUG=
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 12:46:30 +00:00
bmeurer@chromium.org
62054826d8 Revert "Really skip dead blocks in GVN"
This reverts commit r19779 for breaking the GVN algorithm.

BUG=352149
LOG=y
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 12:05:01 +00:00
rossberg@chromium.org
a7a1e4e772 More precise result types for contructor calls
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 11:40:03 +00:00
hpayer@chromium.org
5f251d19d0 Synchronize thread creation on posix platforms.
BUG=
R=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 10:51:16 +00:00
svenpanne@chromium.org
c45043881c Speed up A64 simulator by removing useless memcpy.
The addresses involved should always be aligned, so we can simply use
a cast, just like the ARM simulator. Even if the alignment assumption
did not hold and the platform we are running on couldn't handle
unaligned access, some #ifdefs would be much more preferable. The
affected member functions were the top 2 in a profile (18% and 15%),
so basically every hack is allowed here to speed things up. :-)

Removed some dead code for literals on the way. If we need to
resurrect it, we should do it without double(!) memcpys.

Generally, I still don't understand why we need the Instr/Instruction
distinction or simply wrap Instr within Instruction, this seems to
be much simpler and cleaner, but this would involve heavier changes.

The overall speedup of this CL is roughly 37%, see the numbers below
for a reduced Octane suite and the check targets:

------------------------------------------------------------
With memcpy:
------------------------------------------------------------

make -j32 a64.release.quickcheck => 03:29
make -j32 a64.release.check      => 11:30
Reduced Octane suite             => 05:16
Richards: 35.1
DeltaBlue: 64.1
RayTrace: 130
Splay: 66.1
SplayLatency: 619
NavierStokes: 58.7
PdfJS: 89.6
Mandreel: 58.5
MandreelLatency: 242
CodeLoad: 5103
Box2D: 124
----
Score (version 9): 144

------------------------------------------------------------
With casts:
------------------------------------------------------------
make -j32 a64.release.quickcheck => 02:14
make -j32 a64.release.check      => 07:21
Reduced Octane suite             => 03:21
Richards: 53.3
DeltaBlue: 103
RayTrace: 205
Splay: 95.9
SplayLatency: 859
NavierStokes: 103
PdfJS: 136
Mandreel: 94.8
MandreelLatency: 386
CodeLoad: 6493
Box2D: 179
----
Score (version 9): 219

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 10:36:13 +00:00
rossberg@chromium.org
62592f3495 PromiseCoerce should deal with an error during accessing "then".
PromiseCource(x) should return a rejected promise when accessing x.then
leads to an error.

BUG=347095
LOG=Y
R=rossberg@chromium.org

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

Patch from Yutaka Hirano <yhirano@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 10:35:01 +00:00
jacob.bramley@arm.com
cf43195d47 A64: Fix a few simulation inaccuracies.
- Return the correct NaN when an invalid operation generates a NaN.
  - When one or more operands are NaN, handle them as the processor
    would, prioritising signalling NaNs and making them quiet.
  - Fix fmadd and related instructions:
     - Fnmadd is fma(-n, m, -a), not -fma(n, m, a).
     - Some common libc implementations incorrectly implement fma for
       zero results, so work around these cases.
  - Replace some unreliable tests.

This patch also adds support for Default-NaN mode, since once all the
other work was done, it only required a couple of lines of code.
Default-NaN mode was used for an optimisation in ARM, and it should now
be possible to apply the same optimisation to A64.

BUG=
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 10:23:55 +00:00
mvstanton@chromium.org
11df4b8815 Fix for issue 351261.
This relands the following fix: "HAllocate should never generate
allocation code if the requested size does not fit into page. Regression
test included. (bug 347543)" along with additional fixes to KeyedStoreIC.

BUG=351261
LOG=N
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 10:22:55 +00:00
marja@chromium.org
6923d84785 New Compilation API, part 1, try 2
- Distinguish between context bound scripts (Script) and context unbound scripts
(UnboundScript).
- Add ScriptCompiler (which will later contain functions for async compilation).

This is a breaking change, in particular, Script::New no longer exists (it is
replaced by ScriptCompiler::CompileUnbound). Script::Compile remains as a
backwards-compatible shorthand for ScriptCompiler::Compile.

Passing CompilerOptions with produce_data_to_cache = true doesn't do anything
yet; the only way to generate the data to cache is the old preparsing API. (To
be fixed in the next version.)

This is a fixed version of https://codereview.chromium.org/186723005/

BUG=
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 10:20:33 +00:00
svenpanne@chromium.org
452d15d997 Fixed modulo by a power of 2 on A64.
Actually setting flags before checking them might be a good idea... :-/

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 10:18:57 +00:00
ulan@chromium.org
2c99cba38b Propagate updated offsets in BoundsCheckBbData.
BUG=350863
LOG=Y
TEST=mjsunit/regress/regress-350863.js
R=bmeurer@chromium.org, jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 10:02:25 +00:00
marja@chromium.org
ee46e648ec Move ParseYieldExpression to ParserBase.
R=mstarzinger@chromium.org
BUG=v8:3126
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 09:51:22 +00:00
marja@chromium.org
a89f68c6cd Move ParseAssignmentExpression to ParserBase.
R=mstarzinger@chromium.org, mstarzinger
BUG=v8:3126
LOG=N

Committed: https://code.google.com/p/v8/source/detail?r=19908

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 09:43:04 +00:00
mvstanton@chromium.org
dd28969c1c Continued fix for 351257. Reusing the feedback vector is too complex.
Attempting to re-use the type feedback vector stored in the
SharedFunctionInfo turns out to be difficult among the various cases.
It will be much easier to do this when deferred type feedback processing
is removed, as is in the works.

Created bug v8:3212 to track re-introducing the optimization of reusing
the type vector on recompile before optimization.

The CL also brings back the type vector on the SharedFunctionInfo.

BUG=351257
LOG=Y
R=bmeurer@chromium.org, bmeuer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 09:28:37 +00:00
yurys@chromium.org
0a61b7c996 StopCpuProfiling should return non-const CpuProfile
StopCpuProfiling is replaced with StopProfiling which returns non-const CpuProfile which allows to call CpuProfile::Delete on it without const_cast. Also replaced StartCpuProfiling with StartProfiling to have symmetric names for start/stop actions.

BUG=v8:3213
LOG=Y
R=alph@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 09:26:31 +00:00
machenbach@chromium.org
4efa199fc0 Prepare push to trunk. Now working on version 3.25.12.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 03:04:37 +00:00
machenbach@chromium.org
d78e9555b3 Prepare push to trunk. Now working on version 3.25.11.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 01:04:45 +00:00
plind44@gmail.com
7173d8830f MIPS: Turn StringLengthStub (used by string wrappers only) into a hydrogen stub.
Port r19889 (8fa27bb)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 18:08:36 +00:00
hpayer@chromium.org
7b810f4593 Revert "Moved type feedback vector to SharedFunctionInfo."
This reverts commit 828f1d563a3f0972135886888fd26526e04da07f.

Conflicts:
	src/compiler.cc
	test/cctest/test-compiler.cc

BUG=
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 17:47:12 +00:00
plind44@gmail.com
e8939a5451 MIPS: Remove uses of CanBeNegative() in HMod.
Port r19878 (74a9002)

BUG=v8:3204
LOG=y
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 17:38:40 +00:00
marja@chromium.org
7c66ec9319 Revert "Move ParseAssignmentExpression to ParserBase."
This reverts revision 19908.

Reason: clang doesn't like it.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 16:11:26 +00:00
marja@chromium.org
9cc39f5a66 Move ParseAssignmentExpression to ParserBase.
R=mstarzinger@chromium.org, mstarzinger
BUG=v8:3126
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 16:06:08 +00:00
m.m.capewell@googlemail.com
7539de4981 A64: Remove temporary sxtw instructions
BUG=v8:3149
LOG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 15:53:08 +00:00
machenbach@chromium.org
f7fea5dd92 Revert "Maintain change log file directly on trunk branch in push-to-trunk." and related changes.
This reverts r19876, r19902 and r19903. The changes made git diff' in push-to-trunk unusable.

TBR=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 15:48:24 +00:00
plind44@gmail.com
d50a179b87 MIPS: Remove uses of RangeCanInclude() in flooring division by power of 2.
Port r19877 (17029d3)

Original commit message:
Drive-By-Fix: Improve ARM code generation for flooring division by
power of 2.

BUG=v8:3204
LOG=y
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 15:16:20 +00:00
machenbach@chromium.org
cfed3c94af Prepare push to trunk. Now working on version 3.25.11.
R=dslomov@chromium.org
TBR=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 15:14:28 +00:00
ulan@chromium.org
81a5cfb0e0 Revert r19897, r19898 for breaking mac-64 debug.
TBR=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 15:10:35 +00:00
baptiste.afsa@arm.com
89e36cbd18 A64: Relax the register constraints for LSeqStringGetChar.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 14:56:57 +00:00
plind44@gmail.com
16a4129e72 MIPS: Fix uses of range analysis results in HChange.
Port r19872 (6d8679b)

BUG=v8:3204
LOG=y
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 14:56:25 +00:00
ulan@chromium.org
2f26700885 Fix memory leak caused by treating Code::next_code_link as strong in marker.
BUG=
TEST=test/cctest/NextCodeLinkIsWeak
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 14:09:18 +00:00
yangguo@chromium.org
0f71a24f3a Correctly retain argument value when deopting from Math.round on x64.
R=jkummerow@chromium.org
BUG=351624
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 13:57:21 +00:00
m.m.capewell@googlemail.com
df529fb05f A64: Implement and use FillFields
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 13:18:48 +00:00
ulan@chromium.org
66c8130b8a Simplify GetEnumPropertyKeys and avoid trimming fixed arrays in large object space.
BUG=352070
LOG=N
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 12:45:12 +00:00
mvstanton@chromium.org
f1e18135fa Perf regression: changes in KeyedStoreIC introduced polymorphism.
When fixing bug 350884, I introduced an error that meant we went
polymorphic in KeyedStoreIC where we stayed monomorphic before. This
CL addresses the error, while preserving the bug fix for 350884.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 12:17:43 +00:00
dcarney@chromium.org
869db33cbb Only call to LogSymbol when needed.
R=marja@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 11:56:13 +00:00
yangguo@chromium.org
6f6356a248 Handlify PropertyAttribute lookups.
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 11:55:31 +00:00
ulan@chromium.org
c64b78f6da Check that constant is an integer before getting its value in HGraphBuilder::MatchRotateRight.
BUG=351263
LOG=N
TEST=mjsunit/regress/regress-351263
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 11:50:50 +00:00
verwaest@chromium.org
c2af96ba7b Turn StringLengthStub (used by string wrappers only) into a hydrogen stub.
BUG=
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 10:57:07 +00:00
alexandre.rames@arm.com
66774e2dc5 A64: Remove an invalid assertion about the position of the reloc_info_writer.
Review URL: https://codereview.chromium.org/196413007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 10:28:53 +00:00
yangguo@chromium.org
4e390c64f1 Harmony: move math features to es-staging.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:51:59 +00:00
jacob.bramley@arm.com
f6de983e4d A64: Fix Fmov with signalling NaN literals.
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:45:02 +00:00
svenpanne@chromium.org
390d3a0b15 Make translation of modulus operation '--stress-opt'-proof.
Note that we unconditionally deopt later, anyway, but our compilation
pipeline has to survive long enough to reach that place. :-/

LOG=y
BUG=352059
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:37:16 +00:00
dcarney@chromium.org
619d812a02 Convert scanner buffers to use standard character types.
R=marja@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:15:14 +00:00
marja@chromium.org
ee6b885d25 Revert "New Compilation API, part 1"
This reverts revision 19881.

Reason: WebKit build failure (will commit a fixed version shortly).

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 09:14:16 +00:00
marja@chromium.org
52c0098f0d New Compilation API, part 1
- Distinguish between context bound scripts (Script) and context unbound scripts
(UnboundScript).
- Add ScriptCompiler (which will later contain functions for async compilation).

This is a breaking change, in particular, Script::New no longer exists (it is
replaced by ScriptCompiler::CompileUnbound). Script::Compile remains as a
backwards-compatible shorthand for ScriptCompiler::Compile.

Passing CompilerOptions with produce_data_to_cache = true doesn't do anything
yet; the only way to generate the data to cache is the old preparsing API. (To
be fixed in the next version.)

BUG=
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 08:54:11 +00:00
dcarney@chromium.org
750ab88341 move remaining uses of scanner literals into scanner
R=marja@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 08:29:31 +00:00
bmeurer@chromium.org
4da15df008 Remove uses of CanBeNegative() in HMod.
BUG=v8:3204
LOG=y
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 08:17:44 +00:00
bmeurer@chromium.org
929313bd6b Remove uses of RangeCanInclude() in flooring division by power of 2.
Drive-By-Fix: Improve ARM code generation for flooring division by
power of 2.

BUG=v8:3204
LOG=y
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:58:58 +00:00
yurys@chromium.org
d7ec9ab061 Remove SnapshotFillerInterface
There used to be additional pass in the heap profiler that estimated memory required for the snapshot and it used special implementation of the interface. Now that we dropped that step it doesn't makes sense to keep the interface with single implementation.

BUG=None
LOG=N
R=loislo@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:48:42 +00:00
jarin@chromium.org
713aa33f2a Fix of argument materialization of captured heap numbers.
The escape analysis calculates the number of slots in an object as
no-of-slots = object-size / pointer-size.  This gives 3 slots for
heap numbers on 32-bit architectures (one slot for the map, two for
the double value); however, my argument materialization code assumed
just two slots (map + value). Since Hydrogen allocates heap numbers
quite rarely, it is hard to produce a more meaningful repro than the
one provided by Clusterfuzz. Any suggestions are welcome.

The fix is simple - we just read out all extra slots (beyond the map
and the double) for heap numbers.

R=mstarzinger@chromium.org
BUG=351315
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:17:37 +00:00
dcarney@chromium.org
75ad285860 Implement PersistentValueMap, a map that stores UniquePersistent values.
This is preparatory work to get rid of UnsafePersistent in blink.

The previous version had to be reverted due to timeouts in win32/Debug: https://codereview.chromium.org/197173002/

The timeouts happened because the STL version on that platform contains sanity checking code which opens a 'debug window' in the GUI, patiently waiting for the user to click ok/cancel/somethirdoption. It turns out, the cause for that debug window was totally valid and the test had a use-after-free issue.

The 1st patch set is the code as before. The 2nd patch set contains the fix.

Related blink changes are here: https://codereview.chromium.org/180363004/

This patch is largely based on https://codereview.chromium.org/175503003/, with some methods added to support the blink change mentioned above.

BUG=
R=dcarney@chromium.org

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

Patch from Daniel Vogelheim <vogelheim@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:10:59 +00:00
bmeurer@chromium.org
750f2d98f8 Fix uses of range analysis results in HChange.
BUG=v8:3204
LOG=y
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 06:11:52 +00:00
machenbach@chromium.org
98042ac82d Prepare push to trunk. Now working on version 3.25.10.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 03:04:38 +00:00
adamk@chromium.org
8bd05193c7 Reland "Enable Object.observe by default" again
This re-re-re-lands enabling Object.observe. The Chromium tests that
failed last time this was rolled into Chromium have been disabled in
https://src.chromium.org/viewvc/chrome?view=revision&revision=256706

This patch should be safe to merge once that lands.

BUG=v8:2409
LOG=Y
TBR=rossberg@chromium.org,dslomov@chromium.org,rafaelw@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 00:20:06 +00:00
plind44@gmail.com
eb606948b1 MIPS: Reland "Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool."
Port r19856 (0546217)

Original commit message:
The ool constant pool will require a pointer to the code's constant pool when
updating or reading target addresses using set_target_address_at()
and target_address_at().

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 22:09:17 +00:00
jkummerow@chromium.org
f9ee4f19b4 Use intrinsics for builtin ArrayBuffer property accesses
BUG=chromium:351787
LOG=y
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 19:25:40 +00:00
marja@chromium.org
df5ac19412 Parser / PreParser unification: Add docs.
R=rossberg@chromium.org, rossberg
BUG=v8:3126
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 19:15:17 +00:00
rmcilroy@chromium.org
2a9df4c822 Ensure that relocinfo's host code object is correctly reset on GC in TypeFeedbackOracle::RelocateRelocInfos
TBR=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 17:18:49 +00:00
rodolph.perfetta@arm.com
f06216201a A64: removed unused debugger file.
BUG=
R=jochen@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 16:05:20 +00:00
rmcilroy@chromium.org
7f622cffd4 Introduce FrameAndConstantPoolScope and ConstantPoolUnavailableScope.
Adds FrameAndConstantPoolScope and ConstantPoolUnavailableScope to enable
scoped management of constant pool availability.  Also load constant pool
pointer when entering an internal frame scope.

R=rodolph.perfetta@arm.com, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:56:16 +00:00
alexandre.rames@arm.com
6b86401431 A64: Record the size of veneer pools for code offset mapping.
Mapping the code offsets between code with and without debug break slots
requires information about the size of the veneer pools and constant pools.

BUG=v8:3173
LOG=N
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:40:41 +00:00
rmcilroy@chromium.org
e57d0296da Reland "Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool."
The ool constant pool will require a pointer to the code's constant pool when
updating or reading target addresses using set_target_address_at()
and target_address_at().

Original Review URL: https://codereview.chromium.org/183803022

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:23:54 +00:00
alexandre.rames@arm.com
dafba1207d A64: Rename k<Y>RegSize to k<Y>RegSizeInBits, and k<Y>RegSizeInBytes to k<Y>RegSize.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:18:40 +00:00
mvstanton@chromium.org
021d9e778c Fix for bug 351257: type feedback vector initialization issue.
The feedback vector is stored in the shared function info, and there
is an effort to reuse it when re-running full code generation as a
prelude to creating optimized code. However we shouldn't reuse the
vector for lazily compiled methods on first compile, as scoping analysis
can change the allocation of vector slots.

BUG=351257
LOG=N
R=danno@chromium.org, bmeuer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:18:17 +00:00