Commit Graph

23917 Commits

Author SHA1 Message Date
Djordje.Pesic
2604c75eed MIPS: disabling rsqrt and recip for mips32r1
Disabling rsqrt and recip for mips32r1 in assembler, disassembler and simulator

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

Cr-Commit-Position: refs/heads/master@{#29425}
2015-07-01 16:15:42 +00:00
Toon Verwaest
e32f9cfc10 Ensure we enable/disable the bootstrapping flag
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29424}
2015-07-01 15:39:28 +00:00
verwaest
fdc5c1343c Return this in Context::native_context if receiver is a native context.
Checking for native context is faster than checking for global object. Additionally it speeds up the case were it actually is the native context, while not slowing down the alternative case. The bootstrapper only needs to access the native context from the native context, so this avoids the expensive fallback.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29423}
2015-07-01 15:34:34 +00:00
Toon Verwaest
b71fe9eed1 Use is_bootstrapping everywhere
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29422}
2015-07-01 15:33:36 +00:00
mbrandy
f4eb08f4f4 PPC: Make context register implicit for CallInterfaceDescriptors
Port 7015fd2053

Original commit message:
    Up until now the context register was listed explicitly in each stub's
    CallInterfaceDescriptor. This was problematic, because it was listed
    first in the list of register parameters--which is fine for Crankshaft,
    which is more or less built to handle the context as the first
    parameter-- but not ideal for TurboFan, which adds the context at
    the end of all function parameters. Now the context register is no
    longer in the register list and can be handled appropriately by both
    compilers. Specifically, this allows the FunctionType specified for
    each CallInterfaceDescriptor to exactly match the parameter register
    list.

R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29421}
2015-07-01 14:21:17 +00:00
akos.palfi
1ab39b4943 MIPS: Fix '[turbofan] Add CalleeSavedFPRegisters to CallDescriptor.'
Fixes debug mode assertions.

TEST=cctest/test-run-machops/RunChangeUint32ToFloat64_B
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29420}
2015-07-01 14:20:10 +00:00
verwaest
78ef2e5b29 Micro-optimize lookupiterator: faster path for fast-mode objects
BUG=chromium:505998
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29419}
2015-07-01 14:19:02 +00:00
Toon Verwaest
369f818395 Update tests to disable interceptors during bootstrapping
BUG=
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29418}
2015-07-01 14:18:15 +00:00
mstarzinger
cd4275aaf1 Fix CodeFlusher::ProcessOptimizedCodeMaps stale fields.
This makes sure that all pointer fields in an entry in the optimized
code map are considered weak, not just the code object. If just one
field of an entry dies, then the whole entry dies.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29417}
2015-07-01 13:43:50 +00:00
mbrandy
549749d374 PPC: Fix InstanceOfStub's inlined call site logic.
This change makes the patching logic less prone to errors in the
face of variable instruction mov sequences.

R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29416}
2015-07-01 13:35:04 +00:00
mstarzinger
7a615a4596 [turbofan] Support preserving of optimized code maps over GCs.
This extends the existing support for --noflush-optimized-code-cache
mechanism to the newly added context-independent code entry in the
optimized code map. Note that this machanism is still off by default.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29415}
2015-07-01 12:29:44 +00:00
verwaest
5c278f632c Minor performance improvements to the LookupIterator
This change changes bootstrapping semantics for intercepted global objects. Unlike before, we'll now also call into the interceptor during bootstrapping. This affects properties loaded from within the runtime, such as global.Array and global.Symbol. The embedder will need to make sure that those values are the expected values during bootstrapping.

BUG=chromium:505998
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29414}
2015-07-01 12:20:10 +00:00
chunyang.dai
b913e2a97a X87: [es6] Make new.target work in functions.
port 7a63bf77eb (r29358).

original commit message:

    This makes new.target work in [[Call]] and [[Construct]] of ordinary
    functions.

    We achieve this by introducing a new construct stub for functions that
    uses the new.target variable. The construct stub pushes the original
    constructor just above the receiver in the construct frame.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29413}
2015-07-01 12:05:27 +00:00
chunyang.dai
fb1329aa2d X87: Unify the stack layout for construct frames.
port 876ae42598 (r29292).

original commit message:

   The stack layout was different for different ports.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29412}
2015-07-01 12:03:40 +00:00
chunyang.dai
b0555da826 X87: VectorICs: Lithium support for vector-based stores.
port 8a3cf4ecef (r29310).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29411}
2015-07-01 11:59:47 +00:00
chunyang.dai
29686a2b54 X87: Vector ICs: Like megamorphic keyed koads, use a dummy vector for stores.
port 9e7af9efc5 (r29280).

original commit message:

    It's useful for the megamorphic keyed store case to not require a
    vector and slot as input. Analogous to the load case, we have a dummy
    one-ic-slot vector to aid. Since the only kind of MISS is for
    megamorphic cache stub failures, we don't need the real vector.
    The reason is that megamorphic cache stub failures don't result in any
    change to the type feedback vector state.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29410}
2015-07-01 11:47:17 +00:00
chunyang.dai
f80fd37260 X87: [ic] Record call counts for monomorphic calls made with an IC.
port c1a4f7477f (r29281).

original commit message:

   The idea is that TurboFan can use this information for more intelligent
   inlining.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29409}
2015-07-01 11:39:20 +00:00
chunyang.dai
4ed8444e73 X87: [turbofan] Add basic support for calling to (a subset of) C functions.
port a58ba8d801 (r29279).

original commit message:

    This introduces some initial building blocks for calling out to
    C/C++ functions directly from TurboFan generated code objects.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29408}
2015-07-01 11:31:57 +00:00
chunyang.dai
68020ce546 X87: change the float max/min operation when operands.
This CL fixes the following situations:
    1, Operands are -0.0 or 0.0. it always return right value.
    1, Operands contains NaN. it always return right value.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29407}
2015-07-01 11:29:10 +00:00
chunyang.dai
aaa92726f0 X87: Use big-boy Types to annotate interface descriptor parameters.
port c019d7f498 (r29248).

original commit message:

    Use big-boy Types to annotate interface descriptor parameters

    - Thread Type::FunctionType through stubs and the TF pipeline.
    - Augment Typer to decorate parameter nodes with types from
      a Type::FunctionType associated with interface descriptors.
    - Factor interface descriptors into platform-specific and
      platform-independent components so that all descriptors share
      a common Type::FunctionType for all platforms.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29406}
2015-07-01 11:28:03 +00:00
mstarzinger
649544d491 Remove deprecated --incremental-code-compaction flag.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29405}
2015-07-01 09:45:08 +00:00
hablich
a023b39f35 [Release tools] Add instructions how to close the auto-roller.
R=machenbach@chromium.org
BUG=494641
LOG=N
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#29404}
2015-07-01 09:37:17 +00:00
mstarzinger
35c7925384 Remove deprecated --flush-code-incrementally flag.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29403}
2015-07-01 08:46:19 +00:00
danno
7015fd2053 Make context register implicit for CallInterfaceDescriptors
Up until now the context register was listed explicitly in each stub's
CallInterfaceDescriptor. This was problematic, because it was listed
first in the list of register parameters--which is fine for Crankshaft,
which is more or less built to handle the context as the first
parameter-- but not ideal for TurboFan, which adds the context at
the end of all function parameters. Now the context register is no
longer in the register list and can be handled appropriately by both
compilers. Specifically, this allows the FunctionType specified for
each CallInterfaceDescriptor to exactly match the parameter register
list.

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

Cr-Commit-Position: refs/heads/master@{#29402}
2015-07-01 08:45:12 +00:00
bmeurer
d82c163de4 [crankshaft] Remove adventurous operator< for Handle<Map>.
This operator< overload is rather dangerous for handles. And we don't
actually need a std::set in the chunk builder, since duplicates are
automatically eliminated later when the code dependencies are committed.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29401}
2015-07-01 08:12:39 +00:00
yangguo
77d566c067 Debugger: ensure that break points are set in code that contain debug break slots.
We now consistently ignore native and extension scripts for debugging. Only native scripts and extension scripts can disallow lazy compilation. So we can make sure that break points are only set to code that are compiled with debug break slots.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29400}
2015-07-01 08:01:24 +00:00
v8-autoroll
bcfc33a553 Update V8 DEPS.
Rolling v8/third_party/icu to 1b697da5c2c0112e2b70e7e75d3e3d985f464a8f

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29399}
2015-07-01 03:26:47 +00:00
chunyang.dai
18d27f1935 X87: Do not add extra argument for new.target.
port 8196c28a94 (r29238).

original commit message:

  JSConstructStub for subclass constructors instead locates new.target in
  a known location on the stack.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29398}
2015-07-01 01:57:30 +00:00
chunyang.dai
32f32bdf12 X87: Clean up JSConstructStub.
port 882055ff6a (r29082).

   The original CL covers part of X87 port. This CL addes the missing changes.

original commit message:

  - fix truthfulness of comments
    - use InitializeFieldsWithFiller more consistently
    - use unsigned comparisons for pointers

    No change in functionality intended.

    Bonus: improve JavaScriptFrame::Print() for an enhanced debugging experience:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#29397}
2015-07-01 01:52:12 +00:00
adamk
62572e011e [es6] Ensure that for-in/of loops have a proper TDZ for their lexically-bound variables
The enumerable expression in a for-in/of loop is supposed to have a TDZ for any
lexically bound names in that loop (there can be more than one with destructuring).

This patch accomplishes this with an almost-correct desugaring. The only thing missing
is proper debugger support (the let declarations added by the desugaring, while invisible
to code due to shadowing, are visible to the debugger).

BUG=v8:4210
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29396}
2015-07-01 00:27:30 +00:00
bradnelson
9adb5f0a59 Allow numeric literals to be checked for a decimal point.
The asm.js spec decides the type of numeric literals in several places
based on if they contain a ".".
http://asmjs.org/spec/latest/

Adding methods so that AST Literals can be checked for containg a dot.

Adding a cctest that this information is available.

LOG=N
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-parsing
R=rossberg@chromium.org,titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29395}
2015-06-30 21:12:20 +00:00
binji
686e675734 d8 Worker test of SharedArrayBuffer transferring
BUG=chromium:497295
R=jarin@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29394}
2015-06-30 20:22:49 +00:00
machenbach
f50fff57b0 Revert of [test262-es6] Update to 2011-06-29 (patchset #1 id:1 of https://codereview.chromium.org/1220793005/)
Reason for revert:
[Sheriff] Runner has some infra failures:
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/4020/steps/Test262-es6%20-%20no%20variants/logs/stdio

Original issue's description:
> [test262-es6] Update to 2011-06-29
>
> This includes one harness fix but introduces a few new failures. No
> new bugs exposed though.
>
> BUG=N
> LOG=N
> R=littledan@chromium.org, adamk@chromium.org
>
> Committed: https://crrev.com/2e877628803f238dd33c3409413cd7778e36a2b6
> Cr-Commit-Position: refs/heads/master@{#29392}

TBR=littledan@chromium.org,adamk@chromium.org,arv@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=N

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

Cr-Commit-Position: refs/heads/master@{#29393}
2015-06-30 20:15:58 +00:00
arv
2e87762880 [test262-es6] Update to 2011-06-29
This includes one harness fix but introduces a few new failures. No
new bugs exposed though.

BUG=N
LOG=N
R=littledan@chromium.org, adamk@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29392}
2015-06-30 18:58:34 +00:00
mbrandy
fc6cc7c1e0 PPC: Fix constant pool overflow access in Get/SetRelocatedValue.
This resolves the mirror-object test failure.

R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29391}
2015-06-30 18:57:27 +00:00
machenbach
365ff33234 Revert of [strong] Add tests for loading from proxy, super, with access checks (patchset #4 id:80001 of https://codereview.chromium.org/1193633003/)
Reason for revert:
[Sheriff] Breaks gc stress:
http://build.chromium.org/p/client.v8/builders/V8%20GC%20Stress%20-%202/builds/3968

Original issue's description:
> [strong] Add tests for loading from proxy, super, with access checks
>
> Followup for https://codereview.chromium.org/1168093002/
>
> These seem to already function correctly without the need for further runtime
> changes.
>
> There will be a final follow-up for interceptors.
>
> BUG=v8:3956
> LOG=N
>
> Committed: https://crrev.com/ea4e568363f48955e7de6b538e559132e9899c86
> Cr-Commit-Position: refs/heads/master@{#29389}

TBR=rossberg@chromium.org,conradw@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3956

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

Cr-Commit-Position: refs/heads/master@{#29390}
2015-06-30 18:43:01 +00:00
conradw
ea4e568363 [strong] Add tests for loading from proxy, super, with access checks
Followup for https://codereview.chromium.org/1168093002/

These seem to already function correctly without the need for further runtime
changes.

There will be a final follow-up for interceptors.

BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29389}
2015-06-30 17:13:21 +00:00
binji
abaa094a2b Fix cluster-fuzz found regression in d8 Workers
v8::Internal::List will DCHECK when indexing out of the array, even if just to
get the address, and the value is never used. So this construct will fail:

    memcpy(p, &data[0], length);

When data is empty and length is 0.

BUG=chromium:505778
R=mstarzinger@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29388}
2015-06-30 16:49:09 +00:00
mstarzinger
316ff3d8fc Fix bug when optimized code map is evicted.
This makes sure that both, the shared function info and it's optimized
code map get revisited when the code map is evicted from the flusher.

R=hpayer@chromium.org
TEST=mjsunit/debug-set-variable-value

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

Cr-Commit-Position: refs/heads/master@{#29387}
2015-06-30 16:47:13 +00:00
hpayer
8fdcd13b52 Disable zapping of code space.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29386}
2015-06-30 16:29:03 +00:00
yangguo
4f9cf2bb1e Use correct LookupIterator in CallSite::GetMethodName.
R=verwaest@chromium.org
BUG=chromium:505370
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29385}
2015-06-30 16:28:07 +00:00
conradw
7281f80151 [strong] Implement strong property access semantics
Revert "Revert relanded strong property access CL"

Regression issues should be solved. Initial patchset is the original, subsequent patchsets are the fixing modifications.

This reverts commit 4ac7be5656.

BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29384}
2015-06-30 15:24:43 +00:00
jochen
5344fe517c Revert of Let GC select the collector when the external memory allocation limit is reached (patchset #1 id:1 of https://codereview.chromium.org/1201993002/)
Reason for revert:
results in a scavenge storm if scavenge doesn't free enough memory

Original issue's description:
> Let GC select the collector when the external memory allocation limit is reached
>
> BUG=none
> R=hpayer@chromium.org
> LOG=n
>
> Committed: https://crrev.com/93d6216099b60e95bc816bcc913f8f841ee795b6
> Cr-Commit-Position: refs/heads/master@{#29235}

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=none

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

Cr-Commit-Position: refs/heads/master@{#29383}
2015-06-30 15:14:49 +00:00
mbrandy
0bf9305aa4 PPC: Clean up copy args loop in Generate_JSConstructStubHelper.
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29382}
2015-06-30 14:31:07 +00:00
conradw
f5cc091f8f [strong] Implement strong mode semantics for the count operation.
Also fixes a crankshaft bug with strong implicit conversions.

It turns out that the implicit conversion of oddball values
is smushed into so many places in crankshaft that it would
have been pretty invasive surgery to make everything fall
out naturally.

BUG=v8:3956
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#29381}
2015-06-30 14:22:08 +00:00
martyn.capewell
7374e6dc89 [turbofan] Move MulHigh asr onto add on ARM64
Move the arithmetic shift from Int32MulHigh to a following Int32Add on ARM64.
This graph is commonly generated on reduction of signed integer division.

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

Cr-Commit-Position: refs/heads/master@{#29380}
2015-06-30 13:40:06 +00:00
hpayer
80b3f16951 Directly remove slot buffer entries in deoptimized code objects.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#29379}
2015-06-30 13:32:13 +00:00
akos.palfi
b4275a70eb [turbofan] Add CalleeSavedFPRegisters to CallDescriptor.
This change makes possible to save and restore the FP registers
in the Prologue and Return parts for the CallAddress kind functions.

TEST=test-simplified-lowering/RunNumberDivide_2_TruncatingToUint32,
     test-simplified-lowering/RunNumberMultiply_TruncatingToUint32

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

Cr-Commit-Position: refs/heads/master@{#29378}
2015-06-30 13:22:50 +00:00
jochen
e60ce8d146 Register array buffer right after writing it into the object
BUG=chromium:504875
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#29377}
2015-06-30 12:40:54 +00:00
bmeurer
44ea5fbf95 [turbofan] Disallow cross native context inlining.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#29376}
2015-06-30 11:38:36 +00:00