Commit Graph

30044 Commits

Author SHA1 Message Date
bmeurer
662caac9d2 [turbofan] JSTypeOf, JSStrictEqual, JSStrictNotEqual and JSToBoolean are pure.
These operators are really pure on the JavaScript level, and were only
part of the effect chain to make sure we don't accidentially schedule
them right after raw allocations, which is no longer an issue since we
now have the concept of atomic regions.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35552}
2016-04-16 19:28:12 +00:00
bmeurer
d197ba5b0e Revert of [turbofan] Improve lowering of ObjectIs<Type> somewhat. (patchset #1 id:1 of https://codereview.chromium.org/1872143002/ )
Reason for revert:
Looking at types in ChangeLowering is generally unsafe.

Original issue's description:
> [turbofan] Improve lowering of ObjectIs<Type> somewhat.
>
> If we already know that the input to one of the ObjectIs<Type> nodes is
> TaggedPointer, we don't need to perform the Smi check at runtime.
>
> R=jarin@chromium.org
>
> Committed: https://crrev.com/4fc4978cee0bb7ad2ae8681a67b7032eba6a7d11
> Cr-Commit-Position: refs/heads/master@{#35368}

TBR=jarin@chromium.org,bmeurer@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.

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

Cr-Commit-Position: refs/heads/master@{#35551}
2016-04-16 19:26:01 +00:00
bmeurer
ef4ad3eb0f [turbofan] Remove the leftover LoadBuffer hacks.
R=jarin@chromium.org

Committed: https://crrev.com/20eff45de11609934be339dffe46276ff0a4bc22
Cr-Commit-Position: refs/heads/master@{#35509}

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

Cr-Commit-Position: refs/heads/master@{#35550}
2016-04-16 19:21:54 +00:00
bmeurer
0b9cd6cbec Revert of [turbofan] Remove the leftover LoadBuffer hacks. (patchset #1 id:1 of https://codereview.chromium.org/1887343002/ )
Reason for revert:
Using types in ChangeLowering is generally unsafe.

Original issue's description:
> [turbofan] Remove the leftover LoadBuffer hacks.
>
> R=jarin@chromium.org
>
> Committed: https://crrev.com/20eff45de11609934be339dffe46276ff0a4bc22
> Cr-Commit-Position: refs/heads/master@{#35509}

TBR=jarin@chromium.org,mstarzinger@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.

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

Cr-Commit-Position: refs/heads/master@{#35549}
2016-04-16 18:58:12 +00:00
machenbach
df19616f37 Revert of [Atomics] Remove Atomics code stubs; use TF ops (patchset #6 id:100001 of https://codereview.chromium.org/1891033002/ )
Reason for revert:
[Sheriff] Breaks
https://build.chromium.org/p/client.v8/builders/V8%20Linux%20ASAN%20mipsel%20-%20debug%20builder/builds/6121

Original issue's description:
> [Atomics] Remove Atomics code stubs; use TF ops
>
> This is a much cleaner solution, which won't require nearly as much
> architecture-specific code. Thanks bmeurer@!
>
> BUG=v8:4614
> LOG=y
> R=bmeurer@chromium.org,jarin@chromium.org
>
> Committed: https://crrev.com/6ff5881b1def45b35384572f61327e42563a89c3
> Cr-Commit-Position: refs/heads/master@{#35547}

TBR=bmeurer@chromium.org,jarin@chromium.org,rodolph.perfetta@gmail.com,binji@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4614

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

Cr-Commit-Position: refs/heads/master@{#35548}
2016-04-16 13:13:35 +00:00
binji
6ff5881b1d [Atomics] Remove Atomics code stubs; use TF ops
This is a much cleaner solution, which won't require nearly as much
architecture-specific code. Thanks bmeurer@!

BUG=v8:4614
LOG=y
R=bmeurer@chromium.org,jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35547}
2016-04-16 06:49:05 +00:00
jyan
4037fd50e7 S390: Optimize decoding opcode format by using format table
R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35546}
2016-04-16 06:47:02 +00:00
machenbach
ba011836e4 Revert of Get rid of UnsafeCurrent in Sampler (patchset #12 id:220001 of https://codereview.chromium.org/1858143003/ )
Reason for revert:
[Sheriff] Breaks tsan:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/8999

Original issue's description:
> Get rid of UnsafeCurrent in Sampler
>
> Currently we are using UnsafeCurrent in async signal handler to acquire the
> isolate of VM thread, but we want to get rid of that since it prevents V8 from
> being thread agnostic.
>
> This patch replaces UnsafeCurrent with a static map, where we store a map of
> samplers for threads, and makes it accessible by signal handler.
>
> BUG=v8:4889
> LOG=n
>
> Committed: https://crrev.com/62fb4775fea0d56d8a175baf1d902213f6752168
> Cr-Commit-Position: refs/heads/master@{#35541}

TBR=jochen@chromium.org,alph@chromium.org,fmeawad@chromium.org,yangguo@chromium.org,lpy@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4889

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

Cr-Commit-Position: refs/heads/master@{#35545}
2016-04-16 06:32:58 +00:00
verwaest
a369f4a39f Revert of Migrate FastCloneShallowObjectStub to TurboFan (patchset #9 id:180001 of https://codereview.chromium.org/1838283003/ )
Reason for revert:
The boilerplate is copied based on the boilerplate + memento size, which reads off the end of the boilerplate.

Original issue's description:
> Migrate FastCloneShallowObjectStub to TurboFan
>
> BUG=
>
> Committed: https://crrev.com/4c2b04542f263b2679194f9fb75672ebbe72b924
> Cr-Commit-Position: refs/heads/master@{#35330}
>
> Committed: https://crrev.com/7fdfdc12d4e4291348112ace4278a827f57f2eb9
> Cr-Commit-Position: refs/heads/master@{#35494}

TBR=bmeurer@chromium.org,jkummerow@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35544}
2016-04-15 20:08:27 +00:00
haavardm
0ba934d7bf Expose JSON stringifier through V8 API
BUG=602659
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35543}
2016-04-15 18:24:28 +00:00
nikolaos
451fa77235 Re-scope inner scopes in arrow parameter initializers
This patch correctly re-scopes inner scopes that can appear in do
expressions used as initializers to arrow parameters.

R=rossberg@chromium.org
BUG=v8:4904
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35542}
2016-04-15 18:08:31 +00:00
lpy
62fb4775fe Get rid of UnsafeCurrent in Sampler
Currently we are using UnsafeCurrent in async signal handler to acquire the
isolate of VM thread, but we want to get rid of that since it prevents V8 from
being thread agnostic.

This patch replaces UnsafeCurrent with a static map, where we store a map of
samplers for threads, and makes it accessible by signal handler.

BUG=v8:4889
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35541}
2016-04-15 18:08:30 +00:00
ulan
0acd9a4bdf [heap] Remove recorded slots in fixed array header area on left trimming.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35540}
2016-04-15 18:06:20 +00:00
mythria
62801ee3a1 OptimizeFunctionOnNextCall and DeoptimizeFunction ignores calls on non-JSFunction objects.
Runtime_OptimizeFunctionOnNextCall and Runtime_DeoptimizeFunction asserts that
the argument is a JSFunction object.These are used by fuzzers to get coverage
of optimizations in compiler. Having an assert causes a fuzzer test to fail
when OptimizeFunctionOnNextCall is called on objects that are not functions.
We can instead, silently return on such calls.

BUG=chromium:601391
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35539}
2016-04-15 14:51:09 +00:00
jochen
09db5406d4 Reland of Rehash and clear deleted entries in weak collections during GC
BUG=v8:4909
R=hpayer@chromium.org,ulan@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35538}
2016-04-15 14:41:06 +00:00
jyan
146400aef6 S390: [Atomics] code stubs for atomic operations
Port 5e9ddf6ce4

Original commit message:
    * New atomic code stubs for x64, ia32, arm, arm64
    * Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue
      to macro-assembler-ia32 (API based on x64 macro assembler)
    * Remove runtime implementation of Atomics.load, the code stub should always be
      called instead
    * Add new test to mjsunit atomics test; check that Smi values of different
      sizes are supported when possible, else fall back to HeapNumbers

    These changes were needed to add another codestub:
    * Bump kStubMajorKeyBits from 7 to 8
    * Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12

R=binji@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=v8:4614
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35537}
2016-04-15 14:24:28 +00:00
machenbach
f8a5a4da70 Revert of Immediately cache compiled scripts. (patchset #2 id:20001 of https://codereview.chromium.org/1890083002/ )
Reason for revert:
[Sheriff] Breaks:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/8769

Auto-bisect points to this CL.

Original issue's description:
> Immediately cache compiled scripts.
>
> Usually, script compilation is expensive enough to warrant the extra
> overhead of caching scripts immediatly.
>
> BUG=chromium:588900
> R=yangguo@chromium.org
> LOG=n
>
> Committed: https://crrev.com/3533c084d470912384988768c4b3b109304da357
> Cr-Commit-Position: refs/heads/master@{#35527}

TBR=yangguo@chromium.org,jochen@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:588900

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

Cr-Commit-Position: refs/heads/master@{#35536}
2016-04-15 14:21:48 +00:00
machenbach
6ef4bd8aa7 [build] Tweak configuration for win-clang
Unports parts of https://codereview.chromium.org/1828543003
as per suggestion in
https://codereview.chromium.org/1886293002/

Ports https://codereview.chromium.org/1532723003

Also restores -fmsc-version=1800 to support win-clang with
MSVS 2013.

BUG=chromium:603011
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35535}
2016-04-15 13:58:11 +00:00
jyan
b141154331 S390: Visit the Optimized Code Map on first call rather than closure creation.
Port 9336f4cc6d

Original commit message:
    This is useful for escape analysis, and helps upcoming changes to
    type feedback gathering.

R=mvstanton@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35534}
2016-04-15 13:55:58 +00:00
jyan
af4e21424a S390: [Interpreter] Make dispatch table point to code entry instead of code objects.
Port 0c05e02f25

Original commit message:
    Modifies Ignition to store code entry addresses in the dispatch table
    rather than code objects. This allows the interpreter to avoid
    calculating the code entry address from the code object on every
    dispatch and provides a ~5-7% performance improvement on Octane with
    Ignition.

    This change adds ArchOpcode::kArchTailCallAddress to TurboFan to enable
    tail call dispatch using these code addresses. It also adds a Dispatch
    linkage creator (distinct from the stub linkage type used previously) to
    allow targetting a code address target (which will diverge further from
    the stub linkage type when we remove the context machine register in
    Ignition).

R=rmcilroy@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35533}
2016-04-15 13:55:57 +00:00
mstarzinger
1c81ad3f66 [compiler] Hoist bailouts out of OptimizedCompileJob.
This hoists all bailouts out of OptimizedCompileJob::CreateGraph into
the compiler pipeline. The reason is that this moves them to a point
where we can still influence the decision which compiler to pick and
hence gives us more freedom with modeling various pipelines.

R=neis@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35532}
2016-04-15 13:42:07 +00:00
hpayer
19f1391e29 [heap] Fix checks in NewSpace::EnsureAllocation.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35531}
2016-04-15 13:17:44 +00:00
mvstanton
401450493e Security: type confusion lead to information leak in decodeURI
Quit using the global array in uri code.

R=yangguo@chromium.org
BUG=chromium:602970
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35530}
2016-04-15 13:09:45 +00:00
mlippautz
723e120bd0 [heap] Optimize NewSpace::AllocatedSinceLastGC
Replace page link walking with arithmetic computation.

BUG=chromium:603460
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35529}
2016-04-15 13:03:51 +00:00
jochen
00a589d9ff [api] Bring back finalizers on global handles
Seems like node.js depends on it in many places. At least try to get rid
of WeakCallbackData vs WeakCallbackInfo

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

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

Cr-Commit-Position: refs/heads/master@{#35528}
2016-04-15 12:59:47 +00:00
jochen
3533c084d4 Immediately cache compiled scripts.
Usually, script compilation is expensive enough to warrant the extra
overhead of caching scripts immediatly.

BUG=chromium:588900
R=yangguo@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35527}
2016-04-15 12:53:36 +00:00
ahaas
5df9406a07 [arm] Turn off the default NaN mode on arm.
The default NaN mode was originally used to identify holes in double
arrays. With (https://codereview.chromium.org/863633002/) signalling
NaNs are used for that, and the default NaN mode is not needed anymore.
Without the default NaN mode it is easier to satisfy the WebAssembly
spec which requires that quiet NaNs are preserved.

R=titzer@chromium.org, rodolph.perfetta@arm.com, bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35526}
2016-04-15 12:45:27 +00:00
bmeurer
2742b303b8 [turbofan] Introduce ObjectIsString operator.
This adds an ObjectIsString operator and hooks it up with
JSNativeContextSpecialization (to remove the use of some machine
operators there).

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35525}
2016-04-15 12:37:38 +00:00
v8-autoroll
dfb945d543 Update V8 DEPS.
Rolling v8/tools/clang to d9ee849b2aa65cef903af3044e03205d92343093

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

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

Cr-Commit-Position: refs/heads/master@{#35524}
2016-04-15 12:35:35 +00:00
hlopko
b605482600 Add RegisterExternallyReferencedObject to PersistenValueMap
PersistentValueMap is used to hold per-world wrappers in the blink. Currently,
when we trace wrappers, we visit wrappers in all worlds via this PersistentValueMap. This cl introduces convenient (and faster) way of registering these external references.

BUG=468240
LOG=no

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

Cr-Commit-Position: refs/heads/master@{#35523}
2016-04-15 12:23:48 +00:00
zhengxing.li
96ddf420c5 X87: [ic] Use the CallFunction builtin to invoke accessors.
port 6df9a22c3f (r35187)

  original commit message:
  The HandlerCompiler did not properly handle the weird edge case when a
  sloppy mode function was installed as an accessor on one of the value
  wrapper prototypes and then accessed via a load from a primitive value.
  In this case we just passed the primitive value untouched instead of
  properly wrapping it first. The CallFunction builtin properly deals with
  all the funny edge cases, so we use it instead of duplicating almost all
  of the logic here (the performance difference is neglible).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35522}
2016-04-15 12:21:31 +00:00
mstarzinger
5882033203 [turbofan] Mark escape analysis as experimental.
This prefixes the escape analysis flag with "experimental", thereby
making sure the flag in question is not being fuzzed. It will reduce
noise levels on ClusterFuzz again.

R=jarin@chromium.org
BUG=chromium:603653
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35521}
2016-04-15 12:19:29 +00:00
jochen
93c60dca13 [api] Expose ES6 7.3.14 SetIntegrityLevel on v8::Object
BUG=v8:4846
R=verwaest@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#35520}
2016-04-15 12:19:28 +00:00
machenbach
5f5a3282d4 Revert of Rehash and clear deleted entries in weak collections during GC (patchset #8 id:140001 of https://codereview.chromium.org/1877233005/ )
Reason for revert:
[Sheriff] Speculative revert. Suspect for gc stress crashes, like:
https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/5119

Original issue's description:
> Rehash and clear deleted entries in weak collections during GC
>
> Otherwise, they'll just keep growing until we run out of memory or hit the FixedArray's maximum capacity.
>
> BUG=v8:4909
> R=hpayer@chromium.org
> LOG=n
>
> Committed: https://crrev.com/e093a047796d4c0575fe63d36529e7fe89b8865d
> Cr-Commit-Position: refs/heads/master@{#35514}

TBR=hpayer@chromium.org,jochen@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:4909

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

Cr-Commit-Position: refs/heads/master@{#35519}
2016-04-15 12:17:20 +00:00
ahaas
2f9eb09f20 [arm64] Turn off the default NaN mode on arm64.
The default NaN mode was originally used to identify holes in double
arrays. With (https://codereview.chromium.org/863633002/) signalling
NaNs are used for that, and the default NaN mode is not needed anymore.
Without the default NaN mode it is easier to satisfy the WebAssembly
spec which requires that quiet NaNs are preserved.

R=titzer@chromium.org, rodolph.perfetta@arm.com, bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35518}
2016-04-15 11:52:04 +00:00
mstarzinger
62cca39e6c [compiler] Move ensuring deoptimization support to backends.
This moves the responsibility of preparing full-codegen code with
deoptimization support into the backends. This avoids generating such
code when optimization can be done directly from existing bytecode.

R=bmeurer@chromium.org
BUG=v8:4280
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35517}
2016-04-15 11:26:44 +00:00
cbruni
7b2861e35c [heap] Add optimized RecordWrites
BUG=

Committed: https://crrev.com/5210f167e802a3758aac1f2900a6560c8de07831
Cr-Commit-Position: refs/heads/master@{#35231}

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

Cr-Commit-Position: refs/heads/master@{#35516}
2016-04-15 11:16:51 +00:00
yangguo
85e9c2095a Unskip debugger tests after GC fix.
This has been fixed by 165186f272.

R=machenbach@chromium.org
BUG=v8:4893,v8:4894
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35515}
2016-04-15 11:00:54 +00:00
jochen
e093a04779 Rehash and clear deleted entries in weak collections during GC
Otherwise, they'll just keep growing until we run out of memory or hit the FixedArray's maximum capacity.

BUG=v8:4909
R=hpayer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35514}
2016-04-15 10:21:40 +00:00
jarin
71453f1c0f [turbofan] Quickfix for fround built-in lowering.
We have trouble with Math.fround(MEM[...]).  Since we now properly type
LoadBuffer (it can produce undefined), lowering of fround has stopped
triggering (as it requires Number type).  This CL is a quick fix for this issue
- we simply trigger the lowering for NumberOrUndefined and let representation
selection/truncation analysis deal with this.

Ultimately, we would want to insert some 'simplified' ToNumber conversion
that would be optimized as much as possible during representation
selection.

BUG=chromium:603802
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35513}
2016-04-15 09:52:30 +00:00
zhengxing.li
459d79ac1b X87: Simplify IC interfaces.
port 911a5768dc (r35301)

  original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35512}
2016-04-15 09:46:24 +00:00
rmcilroy
6dca319395 [Interpreter] No longer require context machine register in bytecode handlers
The current context is stored as a stack slot on the interpreter frame
and therefore we don't need to also maintain a machine register for the
context. Removes this register from bytecode handlers.

In the process modifies this frees up a register on ia32 to keep the
dispatch table pointer in a register rather than on a stack slot on
ia32.

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35511}
2016-04-15 09:34:36 +00:00
zhengxing.li
0e8d220e8b X87: [generators] Decouple generator resume from fullcodegen.
port 974721c661 (r35283)

  original commit message:
  Introduce a ResumeGeneratorTrampoline, which does the actual stack state
  reconstruction (currently always restores a fullcodegen frame), and
  introduce appropriate TurboFan builtins for %GeneratorPrototype%.next,
  %GeneratorPrototype%.return and %GeneratorPrototype%.throw based on
  this native builtin.

  Also unify the flooding in case of step-in to always work based on
  JSFunction and remove the special casing for JSGeneratorObject.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35510}
2016-04-15 08:10:09 +00:00
bmeurer
20eff45de1 [turbofan] Remove the leftover LoadBuffer hacks.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35509}
2016-04-15 07:42:38 +00:00
zhengxing.li
39c39b5467 X87: [ia32] Byte and word memory operands in ia32 cmp/test.
port 3dd3beb066 (r35199)

  original commit message:
  Currently, if the size of two cmp or test operands is a byte or a word, we sign-extend or zero-extend each of them into a 32-bit register before doing the comparison, even when the conditions
  for the use of a memory operand are met.

  This CL makes it possible to load only one of them into a register and address the other as a memory operand.

  The tricky bit is that, unlike as in the x64 counterpart http://crrev.com/1780193003, not all registers can be accessed as bytes.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35508}
2016-04-15 07:15:08 +00:00
zhengxing.li
fd936fac3f [X87] [TurboFan] Fix kX87Float64ToUint32 code generation bug.
The CL #35176 (https://codereview.chromium.org/1843983002) exposed one hidden bug in x87 turbofan code generation for kX87Float64ToUint32.

  The current kX87Float64ToUint32 code generation will destroy the input value in X87 FPU stack which will be used by the following code.

  This CL fixed this bug.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35507}
2016-04-15 06:36:11 +00:00
addaleax
6336cc6b2b Fix testing of the VEX.L (128/256-bit) flag in the x64 disassembler
The current code for testing the VEX.L flag, indicating whether
128-bit or 256-bit registers are being accessed, was erroneous
and always returned true (i.e. indicated 128-bit registers).

This patch fixes this behaviour and checks the flag correctly.

Ref: https://github.com/nodejs/node/issues/6151

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35506}
2016-04-15 06:24:29 +00:00
v8-autoroll
88556b709b Update V8 DEPS.
Rolling v8/buildtools to 5378d73123b64907773cc5c1bb027b2f765ff00a

Rolling v8/tools/clang to 41bff4c5ba97022c0fe69a59d8892a6c45fb0867

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

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

Cr-Commit-Position: refs/heads/master@{#35505}
2016-04-15 06:24:28 +00:00
bmeurer
79e75301f2 [runtime] Remove some dead counters.
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35504}
2016-04-15 06:22:24 +00:00
mbrandy
d99baa2688 PPC: Fix atomic load sequence.
R=binji@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35503}
2016-04-14 21:50:32 +00:00