Commit Graph

29261 Commits

Author SHA1 Message Date
ahaas
049341f054 [wasm] Implementation of Word32PairShr and Word32PairSar on arm.
Implementation of https://codereview.chromium.org/1768233002 on arm.

R=titzer@chromium.org, v8-arm-ports@googlegroups.com

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

Cr-Commit-Position: refs/heads/master@{#34769}
2016-03-15 07:17:38 +00:00
ahaas
29e0e8e9e3 [wasm] Int64Lowering of I64Div and I64Rem.
On 32-bit systems these instructions are compiled to calls to
C functions. The TF node for the function call is already generated in
the wasm compiler, the lowering of the I64 parameters is done in the
Int64Lowering. We use the return value of the C function to determine
whether the calculation should trap or not.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34768}
2016-03-15 06:52:53 +00:00
ahaas
c4c34eba30 [wasm] Int64Lowering: changing to DFS.
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34767}
2016-03-15 06:27:00 +00:00
echristo
8d7399f9f8 Fix a warning about inline asm source/destination mismatches for cache_type_register_.
The warning notes that we'd want a 'w' register here because the size of
the operand is 32-bit, however, the instruction only takes an 'x'
register and so force that using the 'x' modifier on the instruction.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34766}
2016-03-15 06:18:50 +00:00
v8-autoroll
00f5345c05 Update V8 DEPS.
Rolling v8/tools/clang to c642451e861b9c568967fb8e4d9d3fd081699162

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34765}
2016-03-15 03:26:52 +00:00
adamk
5a202cce6e Remove --harmony-modules flag and let embedder decide when modules are used
Modules already have a separate entrypoint into the engine (at the moment,
this is v8::ScriptCompiler::CompileModule, though that will change to
something like ParseModule). This meant that requiring a commandline flag
simply added an extra complexity burden on embedders. By removing the v8
flag, this lets embedders use their own flagging mechanism (such as d8's
"--module", or Blink's RuntimeEnabledFeatures) to control whether
modules are to be used.

Also remove old modules tests that were being skipped (since they test
very old, pre-ES2015 modules syntax).

R=littledan@chromium.org
BUG=v8:1569, chromium:594639
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#34764}
2016-03-15 00:45:00 +00:00
littledan
f3568ca400 Make test262 test runner check for which exception is thrown
test262 "negative" test expectations list which exception is thrown. The ES2017
draft specification is very specific about which exception class is thrown
from which path, and V8 works hard to be correct with respect to that spec.

Previously, the test262 test runner would accept any nonzero status code,
such as from a crash, or a FAIL printed out, for a negative test. This
patch makes negative tests check for the right answer using a quick-and-dirty
parsing of the exception printing from d8 to find the exception class.
It invokes d8 in a way to get a status code of 0 from thrown exceptions
so that 'negative' tests aren't actually implemented by negating the output.

Amazingly, this didn't catch any test262 failures, but I verified the extra
checking interactively by changing a negative test to expect a different type
and saw it fail.

BUG=v8:4803
R=machenbach
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#34763}
2016-03-14 21:20:37 +00:00
hpayer
0eef12e02c [heap] Turn on black allocation.
BUG=chromium:561449
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34762}
2016-03-14 18:57:05 +00:00
yangguo
bae3efface [serializer] add options to compile eagerly and pre-age for code cache.
R=vogelheim@chromium.org
BUG=chromium:594551
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34761}
2016-03-14 18:57:04 +00:00
hpayer
3617612f8b [heap] Do not clear second bit when iterating for grey objects on black pages.
BUG=chromium:561449
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34760}
2016-03-14 18:55:20 +00:00
mstarzinger
27a9009a7c [interpreter] Fix label binding for unreached labels.
This fixes the label binding mechanism that forwards a label to another
already bound target label. For source labels that are not being reached
by a jump, we should not try to patch jump sites. We still bind the
source label to reflect the target position though, just in case this
binding method will be used for backwards branches in the future.

R=rmcilroy@chromium.org
TEST=webkit/fast/js/parser-syntax-check

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

Cr-Commit-Position: refs/heads/master@{#34759}
2016-03-14 18:29:11 +00:00
ofrobots
36f6f5e1aa Replace old CHECKs by DCHECKs in HandleApiCall
HandleApiCall is one of the most heavily used builtins on Node.js.
Replace some old CHECKs with DCHECKs.

R=ishell@chromium.org, jochen@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34758}
2016-03-14 18:01:06 +00:00
titzer
ad91d1c6ca [wasm] Add I64Eqz operator.
R=ahaas@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34757}
2016-03-14 17:55:22 +00:00
bradnelson
ace6f1364a Fixing +fround(x) in asm typer.
The rules for handling foreign functions were interfering with handling
of standard functions (such as fround).

Adding more tests around abs()

BUG= https://bugs.chromium.org/p/v8/issues/detail?id=4203
TEST=test-asm-validator,asm-wasm
R=titzer@chromium.org,rossberg@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34756}
2016-03-14 17:29:25 +00:00
ahaas
2ddfe43a44 [wasm] Fixed register allocation for Word32PairShl on arm.
The previous register allocation allowed invalid register aliasing in
cases where in the TF graph the node was used for multiple inputs of the
Word32PairShl node.

Additionally I renamed PairLsl to LslPair in the code generation for
consistency.

R=titzer@chromium.org, v8-arm-ports@googlegroups.com

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

Cr-Commit-Position: refs/heads/master@{#34755}
2016-03-14 17:24:10 +00:00
caitpotter88
3088979d5c [runtime] fix getting element keys from SLOW_SLOPPY_ARGUMENTS_ELEMENTS
BUG=v8:4825
LOG=N
R=jkummerow@chromium.org, cbruni@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34754}
2016-03-14 17:10:50 +00:00
mstarzinger
a02b7aaa6d [testing] Move the last JS tests out of "preparser".
This moves the last remaining JS file based tests out of the "preparser"
suite. The tests in question all are expected to parse normally and not
throw any exception. This also deprecates the ability of the test suite
to run anything else outside Python templated tests.

R=adamk@chromium.org
TEST=preparser

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

Cr-Commit-Position: refs/heads/master@{#34753}
2016-03-14 17:10:49 +00:00
oth
7a63e0be77 [interpreter] Use bytecode-array-iterator in BytecodeArray::Print().
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34752}
2016-03-14 17:07:38 +00:00
verwaest
4ebd97b426 Optimize flattening of cons strings with equal left and right-side.
This significantly speeds up flattening repeat strings (e.g., '.'.repeat(1000)).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34751}
2016-03-14 16:20:30 +00:00
mtrofin
3941f3474d Pass the 'extra' parameter for X64OperandConverter::ToOperand
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34750}
2016-03-14 16:14:58 +00:00
mstarzinger
51a22bdabc [testing] Extend interpreter testing to webkit suite.
This also runs the webkit test suite against Ignition. By now most of
the tests pass, the failing ones have been blacklisted.

R=machenbach@chromium.org
TEST=webkit

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

Cr-Commit-Position: refs/heads/master@{#34749}
2016-03-14 16:12:50 +00:00
Hannes Payer
f798cdac92 Disable black allocation.
BUG=
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34748}
2016-03-14 15:34:20 +00:00
ahaas
1b23079936 [wasm] Int64Lowering of Int64Add on ia32 and arm.
Int64Add is lowered to a new turbofan operator, Int32AddPair. The new
operator takes 4 inputs an generates 2 outputs. The inputs are the low
word of the left input, high word of the left input, the low word of the
right input, and high word of the right input. The ouputs are the low
and high word of the result of the addition.

R=titzer@chromium.org, v8-arm-ports@googlegroups.com

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

Cr-Commit-Position: refs/heads/master@{#34747}
2016-03-14 15:34:19 +00:00
martyn.capewell
2cd9877b6d [turbofan] ARM: Reduce out-of-line NaN code size
Reduce the amount of code generated for OutOfLineLoadFloat* by computing
sqrt(-1) rather than move the NaN as an immediate. Add support for single
precision floating point immediate moves to enable this.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34746}
2016-03-14 15:31:04 +00:00
verwaest
d358357478 Replace PushIfAbsent by a Stack object
This significantly speeds up String(array).
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34745}
2016-03-14 14:45:03 +00:00
titzer
421a67b0f4 [wasm] Attach loop assignment analysis behind a flag.
R=bradnelson@chromium.org,binji@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34744}
2016-03-14 14:14:20 +00:00
hpayer
ad51e8b1e8 [heap] Black allocation.
When black allocation is active, all objects allocated in old space are allocated black. Important: With that change, you cannot assume anymore that new objects are white right after their allocation. Currently, black allocation is enabled when incremental marking is started.

This feature can be turned off via flag: --noblack-allocation

BUG=chromium:561449
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34743}
2016-03-14 14:03:01 +00:00
titzer
4233050f77 [wasm] Refactor tests for i64.
Move all tests that use i64 values into test-run-wasm-64.cc. Introduce
macros that enable tests as they are implemented on 32 bit platforms.

R=ahaas@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34742}
2016-03-14 13:24:36 +00:00
ulan
70632e51c0 Revert of Enable parallel pointer updates after evacuation. (patchset #1 id:1 of https://codereview.chromium.org/1784643010/ )
Reason for revert:
Speculative revert to check if this CL is causing GC stress failures.

Original issue's description:
> Enable parallel pointer updates after evacuation.
>
> BUG=chromium:578883
> LOG=NO
>
> Committed: https://crrev.com/7217fcc0bf5b0f62947f92128ec76855d50e91da
> Cr-Commit-Position: refs/heads/master@{#34712}

TBR=mlippautz@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:578883
LOG=NO

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

Cr-Commit-Position: refs/heads/master@{#34741}
2016-03-14 13:21:16 +00:00
hpayer
380676e2da On stack overflow, just perform a regular GC instead of an OOM emergency GC.
The OOM emergency GCs result in time outs on the stress GC bots. Doing a regular stress compaction GC is enough to stress the garbage collector.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34740}
2016-03-14 13:19:31 +00:00
yangguo
b7be51cd33 Revert of Allow Math.random to be called when creating a custom startup snapshot. (patchset #2 id:20001 of https://codereview.chromium.org/1780173002/ )
Reason for revert:
Regresses performance on base64 benchmark.

Original issue's description:
> Allow Math.random to be called when creating a custom startup snapshot.
>
> R=jkummerow@chromium.org
> BUG=v8:4810
> LOG=N
>
> Committed: https://crrev.com/6a7ec6a3bf779cdd41c66a768fd7a37195ed7b7f
> Cr-Commit-Position: refs/heads/master@{#34705}

TBR=jkummerow@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=v8:4810, chromium:594484
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34739}
2016-03-14 10:27:19 +00:00
ahaas
d57d14b978 [wasm] Int64Lowering of I64XConvertFXX instructions.
On 32-bit systems I64XConvertFXX instructions are compiled to calls to
C functions. The TF node for the function call is already generated in
the wasm compiler, the lowering of the I64 parameter is done in the
Int64Lowering. We use the return value of the C function to determine
whether the conversion should trap or not.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34738}
2016-03-14 10:14:18 +00:00
bradnelson
5fceb67049 Dropping shadowed variable.
Accidentally introduced in:
https://crrev.com/da632baac7e28d370d9893676c8d1d3e901a4400
crrev.com/1652963004

BUG= https://code.google.com/p/v8/issues/detail?id=4203
BUG=427616
TEST=test-asm-validator
R=brucedawson@chromium.org,aseemgarg@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34737}
2016-03-14 06:33:46 +00:00
jarin
4d4bd54f0a [turbofan] Fix operand calculation for constant materialization from frame.
BUG=chromium:582702
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34736}
2016-03-13 20:21:41 +00:00
v8-autoroll
7b48773d7e Update V8 DEPS.
Rolling v8/tools/clang to 1e45fb0482b997a87bff1d5edfeac5b2c5458943

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34735}
2016-03-13 04:24:58 +00:00
v8-autoroll
46542b885d Update V8 DEPS.
Rolling v8/buildtools to 7274f1c726640bce4cd4c4198e1ee62a0b29bb89

Rolling v8/third_party/icu to 6d3b55dfa17d9a597c064eeef7ceac18c73184b7

Rolling v8/tools/clang to ec17c92cc70fcd8f5f39eaa17f3dbbd99e29c1f9

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34734}
2016-03-12 04:18:34 +00:00
littledan
0e3bd2758f Improve test262.status
This patch removes some [PASS, FAIL_OK] lines which consistently pass,
and it declares some tests to be test bugs as appropriate.

R=adamk

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

Cr-Commit-Position: refs/heads/master@{#34733}
2016-03-11 18:58:40 +00:00
adamk
b16fc86389 Remove --harmony-tostring runtime flag
ES2015 Object.prototype.toString semantics were enabled in version 4.9,
which has been in stable Chrome for nearly two weeks at this point.

R=littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34732}
2016-03-11 18:20:48 +00:00
balazs.kilvady
515105a700 MIPS64: Use BOVC/BNVC for overflow checking on r6.
Port 21b331e3ff

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34731}
2016-03-11 18:19:06 +00:00
titzer
90eb63418b [wasm] Fix OpcodeLength() calculation.
R=bradnelson@chromium.org,binji@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34730}
2016-03-11 18:02:19 +00:00
mlippautz
e94850ea62 [heap] Remove left-overs of RESCAN_ON_EVACUATION flag.
The code actually setting this flag has already been removed. This CL merely
removes dead code.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34729}
2016-03-11 15:45:13 +00:00
mlippautz
b154e48000 [heap] Remove unused flag prohibiting local slot buffer entries
This is a fix that removes a left over from
  https://crrev.com/4566531c6e593ae8bffc2ef96f82c91d15a68acf

With this flag set to false still present, we would race on inserting in the
local old-to-new remembered set.

R=ulan@chormium.org
BUG=chromium:524425
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34728}
2016-03-11 15:24:35 +00:00
jkummerow
864f33d761 Don't use TurboFan when Crankshaft has optimized too many times
Just disable optimization, like we used to.
This undoes a part of r34396's changes in behavior.

BUG=chromium:593094
LOG=n
R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34727}
2016-03-11 15:12:03 +00:00
Hannes Payer
95df7c3427 [heap] Pass the right arguments to MSAN for promotion queue entries.
BUG=chromium:561449
LOG=n
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#34726}
2016-03-11 15:12:02 +00:00
ofrobots
cbd91c5208 Fix post-mortem data after frame-marking changes
Post-mortem metadata generation broke as a result of
https://codereview.chromium.org/1696043002

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34725}
2016-03-11 15:12:01 +00:00
joransiu
59267a08f1 S390: Printf format specifier for size_t
GCC on S390 31-bit treats size_t as 'long unsigned int', which
is incompatible with %d format specifier that expects an 'int'.
Introduce a new V8 SIZET PREFIX to use %zd instead.

R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com,yangguo@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#34724}
2016-03-11 15:10:18 +00:00
mythria
d1e3b72ede [Interpreter] Fixes cctest/test-serialize/SerializeInternalReference for ignition.
Updates cctest.status and also updates the test
cctest/test-serialize/SerializeInternalReference to return success when
FLAG_ignition is true. This test tests for internal references and is not
relevant for interpreter.

BUG=v8:4280,v8:4680
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#34723}
2016-03-11 13:35:49 +00:00
hpayer
c0d8036e91 [heap] Use struct Entry to fill inlined promotion queue entries.
BUG=chromium:561449
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#34722}
2016-03-11 13:27:59 +00:00
titzer
786bb0ebfc [wasm] Move output of --trace-wasm-decode-time to wasm-compiler and include compile time.
R=ahaas@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34721}
2016-03-11 13:18:26 +00:00
neis
f06f49c852 Adapt membrane example to ES6 proxies.
R=rossberg
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34720}
2016-03-11 13:10:17 +00:00