Commit Graph

31806 Commits

Author SHA1 Message Date
bmeurer
488d6e5f84 [turbofan] x - y < 0 is not equivalent to x < y.
We cannot change x - y < 0 to x < y, because it would only be safe if
x - y cannot overflow, which we don't know in general.

R=jarin@chromium.org
BUG=v8:5129

Review-Url: https://codereview.chromium.org/2090493002
Cr-Commit-Position: refs/heads/master@{#37164}
2016-06-22 05:38:36 +00:00
bmeurer
1006f3cd23 Revert of [Crankshaft] Always check for stubs marked to not require an eager frame. (patchset #2 id:20001 of https://codereview.chromium.org/2089673002/ )
Reason for revert:
Breaks with nosnap: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/7474/steps/Check/logs/regress-2612

Original issue's description:
> [Crankshaft] Always check for stubs marked to not require an eager frame.
>
> Previously only stubs built in the snapshot were checked for having an
> eager frame. This caused a regression to creap in on ia32 for
> RegExpConstructResultStub. Change test to always check.
>
> Committed: https://crrev.com/f6facbb2106ffc2918dd249166233a7fa95dc449
> Cr-Commit-Position: refs/heads/master@{#37162}

TBR=rmcilroy@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2087963004
Cr-Commit-Position: refs/heads/master@{#37163}
2016-06-22 05:35:34 +00:00
rmcilroy
f6facbb210 [Crankshaft] Always check for stubs marked to not require an eager frame.
Previously only stubs built in the snapshot were checked for having an
eager frame. This caused a regression to creap in on ia32 for
RegExpConstructResultStub. Change test to always check.

Review-Url: https://codereview.chromium.org/2089673002
Cr-Commit-Position: refs/heads/master@{#37162}
2016-06-22 03:53:01 +00:00
v8-autoroll
f45c65cae0 Update V8 DEPS.
Rolling v8/build to f56976d676dfd5597229b21a83a53a58704582bf

Rolling v8/buildtools to 56eaae134648135663c4aa1ed82278572b5f35ef

Rolling v8/tools/mb to 5268873c8c1eebbf1a3aaed7e63f99b600fab65e

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

Review-Url: https://codereview.chromium.org/2087933004
Cr-Commit-Position: refs/heads/master@{#37161}
2016-06-22 03:24:26 +00:00
bjaideep
97c2154869 PPC/s390: [builtins] NonNumberToNumber and StringToNumber now use CallRuntime instead of TailCallRuntime
Port b5c69cbf39

Original commit message:

    With the tail call, pointers to the JS heap could be pushed on a
    js-to-wasm frame. On the js-to-wasm frame, however, this pointer would
    not be updated by the GC.

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

BUG=617084
LOG=N

Review-Url: https://codereview.chromium.org/2085183002
Cr-Commit-Position: refs/heads/master@{#37160}
2016-06-22 02:38:12 +00:00
ritesht
d0b8e7fb54 [wasm] Support undefined indirect table entries, behind a flag.
Add a flag to gate experimental support for dynamic code loading and JITing (at runtime in a wasm module).

Enhancing functionality of the indirect function table to support JITing and dynamic linking by allowing additional space to be filled with an "undefined" function signature.

BUG=v8:5044
LOG=N
TEST=None
R=mtrofin@chromium.org,bradnelson@chromium.org

Review-Url: https://codereview.chromium.org/2049513003
Cr-Commit-Position: refs/heads/master@{#37159}
2016-06-22 00:53:31 +00:00
dpranke
365e32b130 Use the new "optimize_speed" GN config.
The GN configs for different optimization levels are confusing and
should probably be reworked, but for now we add a special config
specifically so that we can compile with -O3 when appropriate.

R=brettw@chromium.org, machenbach@chromium.org
BUG=616031, 618678, 621335

Review-Url: https://codereview.chromium.org/2076403002
Cr-Commit-Position: refs/heads/master@{#37158}
2016-06-21 23:37:14 +00:00
bjaideep
2b8f55456a PPC/s390: [builtins] Introduce a proper BUILTIN frame type.
Port f47b9e9810

Original commit message:

    This adds a new BUILTIN frame type, which supports variable number of
    arguments for builtins implemented in hand-written native code (we will
    extend this mechanism to TurboFan builtins at some point). Convert the
    Math.max and Math.min builtins to construct a BUILTIN frame if required.

    This does not yet work for C++ builtins, but that'll be the next step.

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

BUG=v8:4815
LOG=N

Review-Url: https://codereview.chromium.org/2087433003
Cr-Commit-Position: refs/heads/master@{#37157}
2016-06-21 21:43:33 +00:00
jwolfe
d8147eb98c Reland: change most cases of variable redeclaration from TypeError to SyntaxError.
Reland of https://codereview.chromium.org/2048703002/

Code like `let a; eval("var a;");` should throw a SyntaxError, not a TypeError
(this caused a test262 failure.). However, the code `eval("function NaN() {}");`
should actually throw a TypeError. This patch changes most cases of
redeclaration errors from TypeError to SyntaxError. See the test
mjsunit/regress/redeclaration-error-types for a thorough analysis with spec
references.

The relevant sections of the spec are ES#sec-globaldeclarationinstantiation and
ES#sec-evaldeclarationinstantiation

BUG=v8:4955
LOG=y
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
R=adamk

Review-Url: https://codereview.chromium.org/2086063002
Cr-Commit-Position: refs/heads/master@{#37156}
2016-06-21 20:19:59 +00:00
rossberg
271a7f55cd Refactor module builder
- Use ES6 classes and other goodies.
- Make some names match design/spec.
- Remove obsolete generation of END section.

R=bradnelson@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2081973003
Cr-Commit-Position: refs/heads/master@{#37155}
2016-06-21 19:48:16 +00:00
caitpotter88
e45fba811f [parser] only parse async arrow function when necessary
Previously, an async arrow function would be parsed if any valid
ConditionalExpression began with the identifier "async", and its following token
was on the same line.

So for example, `async.bar foo => 1` was parsed as a valid async arrow function.
This patch corrects this behaviour by asserting that the following token is a
valid arrow parameters start.

BUG=v8:4483
R=littledan@chromium.org, henrique.ferreiro@gmail.com

Review-Url: https://codereview.chromium.org/2089733002
Cr-Commit-Position: refs/heads/master@{#37154}
2016-06-21 19:48:15 +00:00
verwaest
9bfd7b9d17 Optimize HandleApiCallHelper and friends
BUG=chromium:595492

Review-Url: https://codereview.chromium.org/2084923003
Cr-Commit-Position: refs/heads/master@{#37153}
2016-06-21 19:23:01 +00:00
jochen
2c8ca9ad09 Make sure api interceptors don't change the store target w/o storing
BUG=chromium:619166
R=verwaest@chromium.org

Review-Url: https://codereview.chromium.org/2082633002
Cr-Commit-Position: refs/heads/master@{#37152}
2016-06-21 18:09:52 +00:00
balazs.kilvady
8c4e388e50 MIPS: Fix 'MIPS: Followup [turbofan] Introduce new operators Float32SubPreserveNan and Float64SubPreserveNan.'
Port eff959bb55

Original commit message:
Float32SubMinusZero and Float64SubMinusZero tests are failing because MIPS does not preserve NaN payload according to Wasm spec. Implemented macro-assembler methods that check for NaN operands, and return the qNaN value with preserved payload and sign bits.

TEST=cctest/test-run-wasm/Run_WasmFloat32SubMinusZero, cctest/test-run-wasm/Run_WasmFloat64SubMinusZero
BUG=

Review-Url: https://codereview.chromium.org/2081993002
Cr-Commit-Position: refs/heads/master@{#37151}
2016-06-21 17:04:52 +00:00
nikolaos
2cabc866ec Fix classifier related bug
R=adamk@chromium.org
BUG=chromium:621111
LOG=N

Review-Url: https://codereview.chromium.org/2086513002
Cr-Commit-Position: refs/heads/master@{#37150}
2016-06-21 16:41:00 +00:00
caitpotter88
36dd4780f0 [test] add FunctionMirror and PromiseMirror tests for async functions
BUG=v8:4483
R=yangguo@chromium.org, littledan@chromium.org

Review-Url: https://codereview.chromium.org/2082023002
Cr-Commit-Position: refs/heads/master@{#37149}
2016-06-21 16:31:52 +00:00
bmeurer
00889cc29c [turbofan] Address the useless overflow bit materialization.
Add control dependencies to Projection and Int32Add/SubWithOverflow
operators, to prevent the scheduler from moving the Projection nodes
into the wrong place. This way the instruction selection can combine
the Int32Add/SubWithOverflow operations with the DeoptimizeIf and/or
DeoptimizeUnless nodes. This needs new operators CheckedInt32Add and
CheckedInt32Sub so that we can delay the actual lowering until the
effect/control linearizer.

This also makes CheckIf operator obsolete, so we can drop it.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2082993002
Cr-Commit-Position: refs/heads/master@{#37148}
2016-06-21 15:46:40 +00:00
rmcilroy
76368d0854 [Interpreter] Add a simple dead-code elimination bytecode optimizer.
Adds back simple dead code elimination to the bytecode pipeline.

BUG=v8:4280,chromium:616064

Review-Url: https://codereview.chromium.org/2038083002
Cr-Commit-Position: refs/heads/master@{#37147}
2016-06-21 15:29:24 +00:00
bgeron
f567930712 [turbolizer] Fully parse schedule data.
Fixes bug 5128 in product V8.

R=danno@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2087813002
Cr-Commit-Position: refs/heads/master@{#37146}
2016-06-21 15:18:40 +00:00
rmcilroy
6003ed0489 Reland: [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode.
Make intrinsic ids a contiguous set of ids so that the switch statement can build
a table switch rather than doing a large if/else tree.

BUG=v8:4822
LOG=N

Committed: https://crrev.com/36abd28a8d9932eb55d7c2bf3ad5e7cfe3eb99ea
Review-Url: https://codereview.chromium.org/2084623002
Cr-Original-Commit-Position: refs/heads/master@{#37135}
Cr-Commit-Position: refs/heads/master@{#37145}
2016-06-21 14:39:52 +00:00
neis
dacc5a73cd Turn on --ignition-generators by default.
This CL merely sets the --ignition-generators flag to true. This flag is
currently only meaningful in combination with --ignition.

BUG=

Review-Url: https://codereview.chromium.org/2065963002
Cr-Commit-Position: refs/heads/master@{#37144}
2016-06-21 13:00:08 +00:00
rossberg
386c747b8a Upgrade Wasm JS API, step 1
Implements:
- WebAssembly object,
- WebAssembly.Module constructor,
- WebAssembly.Instance constructor,
- WebAssembly.compile async method,
- and Module and Instance instance objects.

Also, changes ErrorThrower to support capturing errors in a promise reject.

Since we cannot yet compile without fixing the Wasm memory, and cannot validate a module without compiling, the Module constructor and compile method don't do anything yet but checking that their argument is a suitable BufferSource. Instead of a compiled module, the hidden state of a Module object currently is just that buffer.

BUG=

Review-Url: https://codereview.chromium.org/2084573002
Cr-Commit-Position: refs/heads/master@{#37143}
2016-06-21 12:54:09 +00:00
bmeurer
61386fb82d [turbofan] Propagate word32 truncations through tagged-hole checks.
If all uses of a CheckTaggedHole[convert-hole-to-undefined] node
truncate to word32, we can replace the hole check with a Smi check
and return the result as word32.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2079233006
Cr-Commit-Position: refs/heads/master@{#37142}
2016-06-21 12:45:20 +00:00
jarin
fdea33767d [turbofan] Sync typing of addition in operation typer with static typer.
Review-Url: https://codereview.chromium.org/2087693003
Cr-Commit-Position: refs/heads/master@{#37141}
2016-06-21 12:33:50 +00:00
neis
7c57ffc1df [generators] Implement %GeneratorGetSourcePosition.
This runtime function now also works for Ignition generators. It returns the
source position of the yield at which a suspended generator got suspended.  This
works by storing the current bytecode offset at suspension and using an existing
mechanism to map it back to a source position.

TBR=littledan@chromium.org
BUG=

Review-Url: https://codereview.chromium.org/2079613003
Cr-Commit-Position: refs/heads/master@{#37140}
2016-06-21 12:13:39 +00:00
machenbach
1f12208101 Revert of [heap] Avoid the use of cells to point from code to new-space objects. (patchset #7 id:120001 of https://codereview.chromium.org/2045263002/ )
Reason for revert:
[Sheriff] Breaks arm debug:
https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/1038

Original issue's description:
> [heap] Avoid the use of cells to point from code to new-space objects.
>
> Cells were needed originally because there was no typed remembered set to
> record direct pointers from code space to new space. A previous
> CL (https://codereview.chromium.org/2003553002/) already introduced
> the remembered set, this CL uses it.
>
> This CL
> * stores direct pointers in code objects, even if the target is in new space,
> * records the slot of the pointer in typed-old-to-new remembered set,
> * adds a list which stores weak code-to-new-space references,
> * adds a test to test-heap.cc for weak code-to-new-space references,
> * removes prints in tail-call-megatest.js
>
> R=ulan@chromium.org
>
> Committed: https://crrev.com/2d2087b79a293a92a6ed34a2775e481ff2173b3c
> Cr-Commit-Position: refs/heads/master@{#37134}

TBR=titzer@chromium.org,ulan@chromium.org,ahaas@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/2087463004
Cr-Commit-Position: refs/heads/master@{#37139}
2016-06-21 12:10:31 +00:00
machenbach
f984051284 [mb] Remove lsan from x86 bots
Lsan only works with x64. This broke when landing:
https://codereview.chromium.org/2085513002/

BUG=616035
TBR=jochen@chromium.org, vogelheim@chromium.org, kjellander@chromium.org
NOTRY=true
NOTREECHECKS=true

Review-Url: https://codereview.chromium.org/2086623003
Cr-Commit-Position: refs/heads/master@{#37138}
2016-06-21 12:07:21 +00:00
machenbach
1f81574911 Revert of [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode. (patchset #3 id:40001 of https://codereview.chromium.org/2084623002/ )
Reason for revert:
[Sheriff] Breaks gc stress:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/6304

Original issue's description:
> [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode.
>
> Make intrinsic ids a contiguous set of ids so that the switch statement can build
> a table switch rather than doing a large if/else tree.
>
> BUG=v8:4822
> LOG=N
>
> Committed: https://crrev.com/36abd28a8d9932eb55d7c2bf3ad5e7cfe3eb99ea
> Cr-Commit-Position: refs/heads/master@{#37135}

TBR=epertoso@chromium.org,oth@chromium.org,rmcilroy@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4822

Review-Url: https://codereview.chromium.org/2085823003
Cr-Commit-Position: refs/heads/master@{#37137}
2016-06-21 11:53:00 +00:00
oth
303d340f66 [interpreter] Minor clean-up of BytecodeSourceInfo.
Add explicit state in BytecodeSourceInfo to simplify checks for
validity and whether a statement or expression position.

Remove BytecodeSourceInfo::Update which inherited rules for updating
source position information during bytecode building.

BUG=v8:4280
LOG=N

Review-Url: https://codereview.chromium.org/2048203002
Cr-Commit-Position: refs/heads/master@{#37136}
2016-06-21 11:12:31 +00:00
rmcilroy
36abd28a8d [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode.
Make intrinsic ids a contiguous set of ids so that the switch statement can build
a table switch rather than doing a large if/else tree.

BUG=v8:4822
LOG=N

Review-Url: https://codereview.chromium.org/2084623002
Cr-Commit-Position: refs/heads/master@{#37135}
2016-06-21 10:55:11 +00:00
ahaas
2d2087b79a [heap] Avoid the use of cells to point from code to new-space objects.
Cells were needed originally because there was no typed remembered set to
record direct pointers from code space to new space. A previous
CL (https://codereview.chromium.org/2003553002/) already introduced
the remembered set, this CL uses it.

This CL
* stores direct pointers in code objects, even if the target is in new space,
* records the slot of the pointer in typed-old-to-new remembered set,
* adds a list which stores weak code-to-new-space references,
* adds a test to test-heap.cc for weak code-to-new-space references,
* removes prints in tail-call-megatest.js

R=ulan@chromium.org

Review-Url: https://codereview.chromium.org/2045263002
Cr-Commit-Position: refs/heads/master@{#37134}
2016-06-21 10:40:45 +00:00
bmeurer
5e0cd389bf [turbofan] MemoryOptimizer cannot deal with dead nodes in use lists.
We need to trim the graph before we execute the MemoryOptimizer, because
that just walks the effect chain from Start to End and cannot deal with
dead nodes in the use lists.

R=jarin@chromium.org
BUG=chromium:614292

Review-Url: https://codereview.chromium.org/2080703003
Cr-Commit-Position: refs/heads/master@{#37133}
2016-06-21 10:40:44 +00:00
ahaas
b5c69cbf39 [builtins] NonNumberToNumber and StringToNumber now use CallRuntime instead of TailCallRuntime
With the tail call, pointers to the JS heap could be pushed on a
js-to-wasm frame. On the js-to-wasm frame, however, this pointer would
not be updated by the GC.

R=bmeurer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com
BUG=617084
TEST=mjsunit/wasm/gc-frame.js:GCInJSToWasmTest()

Review-Url: https://codereview.chromium.org/2079393003
Cr-Commit-Position: refs/heads/master@{#37132}
2016-06-21 09:26:54 +00:00
mlippautz
706b3f2730 [heap] Internalize kExternalAllocationLimit
Base the fast-path in AdjustAmountOfExternalMemory on a value + limit. To
preserve the behavior the limit is just set using kExternalAllocationLimit.

Redo naming of related members.

R=jochen@chromium.org
BUG=chromium:621829
LOG=N

Review-Url: https://codereview.chromium.org/2085893002
Cr-Commit-Position: refs/heads/master@{#37131}
2016-06-21 09:26:53 +00:00
Michael Achenbach
f0dc0dbf21 Whitespace CL to test bots.
Cr-Commit-Position: refs/heads/master@{#37130}
2016-06-21 09:07:14 +00:00
machenbach
be1c15a937 [mb] Add linux sanitizers and coverage bots to mb
BUG=chromium:616035
NOTRY=true

Review-Url: https://codereview.chromium.org/2085513002
Cr-Commit-Position: refs/heads/master@{#37129}
2016-06-21 07:07:55 +00:00
bmeurer
7877ddecdb [builtins] Make sure the Math functions and constants agree.
While the EcmaScript specification doesn't define precise values for the
Math constants or the Math functions, we should at least ensure that the
values of the constants and the functions agree, i.e. Math.E should be
exactly the same value as Math.exp(1).

Also make sure that Math.exp(1) returns the expected value; we should
revisit the fdlibm algorithm and figure out why it's wrong in the last
bit.

CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
BUG=chromium:626111,v8:3266,v8:3468,v8:3493,v8:5086,v8:5108
R=yangguo@chromium.org

Review-Url: https://codereview.chromium.org/2079233005
Cr-Commit-Position: refs/heads/master@{#37128}
2016-06-21 07:02:16 +00:00
zhengxing.li
42880af705 X87: Remove more dead code now that legacy const is gone.
port 757221e574ecba543a65f4822c083aa860e030eb(r36876)

  original commit message:
  Neither globals nor lookup slots can be hole-initialized anymore, thus
  removing some dead code from the code generators and runtime-scopes.

BUG=

Review-Url: https://codereview.chromium.org/2086813002
Cr-Commit-Position: refs/heads/master@{#37127}
2016-06-21 06:44:58 +00:00
mtrofin
30e845384b [wasm] No need for ModuleEnv when building import wrappers.
Yanking out in an effort to reduce dependencies. We probably want to
separate codegen into instance-specific and module-generic purpose -
eventually.

BUG=

Review-Url: https://codereview.chromium.org/2085863003
Cr-Commit-Position: refs/heads/master@{#37126}
2016-06-21 06:13:27 +00:00
zhengxing.li
f99c419b00 X87: [stubs] ToNumberStub --> ToNumber builtin.
port 406146ff5ca274265ee704d73a00c8a8127f75c6(r36870)

  original commit message:
  This makes sure we do not compile ToNumber stub on demand. This makes it
  easier to use during concurrent compilation.

BUG=

Review-Url: https://codereview.chromium.org/2088633003
Cr-Commit-Position: refs/heads/master@{#37125}
2016-06-21 06:07:42 +00:00
zhengxing.li
2c70addcf2 X87: [turbofan] Add comments to CodeAssembler.
port 40b5c1d41f7da58411d5538f26cc736d2f40abe0(r36842)

  original commit message:

BUG=

Review-Url: https://codereview.chromium.org/2080873003
Cr-Commit-Position: refs/heads/master@{#37124}
2016-06-21 05:56:22 +00:00
zhengxing.li
eef939b4aa X87: Avoid creating weak cells for literal arrays that are empty of literals.
port 3cfcc7e111 (r36786)

  original commit message:
  It may be that we have a feedback vector, but no literals. In this case
  we can store into the OptimizedCodeMap directly instead of using a WeakCell,
  because all data in the feedback vector is already held weakly.

  The use of a WeakCell in the OptimizedCodeMap is only required when
  there are literals which may hold maps strongly.

  This is to address a performance regression caused by the creation of
  a large number of WeakCells.

BUG=

Review-Url: https://codereview.chromium.org/2081663004
Cr-Commit-Position: refs/heads/master@{#37123}
2016-06-21 05:42:11 +00:00
yangguo
c5ae5bb16b [snapshot] support including templates in the snapshot.
R=jochen@chromium.org, verwaest@chromium.org
BUG=chromium:617892

Review-Url: https://codereview.chromium.org/2076083002
Cr-Commit-Position: refs/heads/master@{#37122}
2016-06-21 05:10:50 +00:00
v8-autoroll
6773ee2508 Update V8 DEPS.
Rolling v8/build to 7580e8854eb309008f00f115ea0adb13dac454a4

Rolling v8/buildtools to 4dcb5ed1079e7a527061925637b8cc627e289e82

Rolling v8/tools/clang to ea64c667cd841b2c3268bd7dfd223269f3ea23ba

Rolling v8/tools/gyp to 35eafcd939515d51d19556c543f9cf97faf75ee6

Rolling v8/tools/mb to 8b4a59c463a697a3e418c28e85f534e87337ba7f

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

Review-Url: https://codereview.chromium.org/2078333005
Cr-Commit-Position: refs/heads/master@{#37121}
2016-06-21 03:26:28 +00:00
mtrofin
a03701ec0d [wasm] Consolidated code size reporting as an instantiation concern.
When separating compile from instantiation, I accidentally elided size
reporting for wasm functions. This change fixes that (verified with
re-running benchmarks), and also consolidates the responsibility of
size reporting within the instantiation method, away from the various
compile phases.

We should probably rethink this reporting when we move wasm codegen
off the JS Heap, if the wasm module code ends up being shared.

BUG=

Review-Url: https://codereview.chromium.org/2079353002
Cr-Commit-Position: refs/heads/master@{#37120}
2016-06-21 02:37:49 +00:00
zhengxing.li
a0c1289b5d X87: Skip slow test.
BUG=

Review-Url: https://codereview.chromium.org/2080693002
Cr-Commit-Position: refs/heads/master@{#37119}
2016-06-21 02:03:57 +00:00
bjaideep
c0630818b7 PPC/s390: [builtins] Use BUILTIN frame in DatePrototype_GetField
Port 198e09de5a

Original commit message:

    Construct a BUILTIN frame before throwing an exception from runtime.

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

Review-Url: https://codereview.chromium.org/2083523004
Cr-Commit-Position: refs/heads/master@{#37118}
2016-06-20 23:39:16 +00:00
bjaideep
97ae43ac01 PPC/s390: [cleanup] Remove dead code from DeclareLookupSlot and rename it
Port cbc6adc86c

Original commit message:

    Runtime_DeclareLookupSlot is used when generating code for var and function declarations
    originating in an eval. Over time, it's accumulated quite a bit of cruft, which this CL removes:

      - With legacy const gone, lookup slots never have any property attributes.
      - There was a bit signaling that the variable was from an eval, but that was redundant since
        DeclareLookupSlot is only used for eval.
      - Some Proxy-related code didn't make sense here.

    Its name was also not terribly clear: while "LookupSlot" is used in several places, this
    particular function is only used for declaring variables and functions inside sloppy eval.
    Renamed (and split into two) to make this clear for future archeologists.

    Also added various DCHECKs to check the assumptions being made.

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

BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2085623003
Cr-Commit-Position: refs/heads/master@{#37117}
2016-06-20 20:39:16 +00:00
bjaideep
8071e21ce5 PPC/s390: [wasm] Separate compilation from instantiation
Port c1d01aea11

Original commit message:

    Compilation of wasm functions happens before instantiation. Imports are linked afterwards, at instantiation time. Globals and memory are also
    allocated and then tied in via relocation at instantiation time.

    This paves the way for implementing Wasm.compile, a prerequisite to
    offering the compiled code serialization feature.

    Currently, the WasmModule::Compile method just returns a fixed array
    containing the code objects. More appropriate modeling of the compiled module to come.

    Opportunistically centralized the logic on how to update memory
    references, size, and globals, since that logic is the exact same on each
    architecture, except for the actual storing of values back in the
    instruction stream.

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

BUG=v8:5072
LOG=N

Review-Url: https://codereview.chromium.org/2087453002
Cr-Commit-Position: refs/heads/master@{#37116}
2016-06-20 19:12:11 +00:00
bjaideep
f1c2729dbd PPC/s390: [builtins] Introduce proper Float64Tan operator.
Port c87168bc8c

Original commit message:

    Import base::ieee754::tan() from fdlibm and introduce Float64Tan TurboFan
    operator based on that, similar to what we do for Float64Cos and Float64Sin.
    Rewrite Math.tan() as TurboFan builtin and use those operators to also
    inline Math.tan() into optimized TurboFan functions.

    Drive-by-fix: Kill the %_ConstructDouble intrinsics, and provide only
    the %ConstructDouble runtime entry for writing tests.

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

BUG=v8:5086,v8:5126
LOG=N

Review-Url: https://codereview.chromium.org/2080303002
Cr-Commit-Position: refs/heads/master@{#37115}
2016-06-20 18:30:18 +00:00