Commit Graph

30143 Commits

Author SHA1 Message Date
mbrandy
6c702283ac PPC: [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, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35501}
2016-04-14 17:48:18 +00:00
hpayer
413ea92617 [heap] Turn on black allocation during marking finalization to avoid floating garbage.
We will move this back to start of incremental marking when we make faster progress.

Perf sheriffs: This CL may cause a regression on benchmarks that improved earlier by enabling black allocation.

BUG=chromium:599174
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35500}
2016-04-14 17:37:43 +00:00
mstarzinger
43c7c76f1d [turbofan] Use inline allocation for closures.
This changes closure creation to lower to inline allocations when
possible instead of going through the FastNewClosureStub. It allows us
to leverage all advantages of inline allocations on closures. Note that
it is only safe to embed the raw entry point of the compile lazy stub
into the code, because that stub is immortal and immovable.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35499}
2016-04-14 15:19:17 +00:00
machenbach
290ee88f63 Revert of [build] Use MSVS 2015 by default. (patchset #4 id:60001 of https://codereview.chromium.org/1886983002/ )
Reason for revert:
Introduced flaky crashes on win debug.

Original issue's description:
> [build] Use MSVS 2015 by default.
>
> BUG=chromium:603131
> LOG=y
>
> Committed: https://crrev.com/e51e8b4ad77008ec7f88c144853e01001dbea900
> Cr-Commit-Position: refs/heads/master@{#35487}

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

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

Cr-Commit-Position: refs/heads/master@{#35498}
2016-04-14 14:54:06 +00:00
balazs.kilvady
0f90237b97 MIPS: Use max_d, min_d in LCodeGen::DoMathMinMax.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35497}
2016-04-14 14:50:25 +00:00
yangguo
93135d8c0d [regexp] fix assertion failure when parsing close to stack overflow.
R=jkummerow@chromium.org
BUG=chromium:600257
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35496}
2016-04-14 14:44:28 +00:00
machenbach
a1fa6d0be5 [build] Port options to support win-clang
BUG=chromium:603011
LOG=n
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#35495}
2016-04-14 13:32:27 +00:00
verwaest
7fdfdc12d4 Migrate FastCloneShallowObjectStub to TurboFan
BUG=

Committed: https://crrev.com/4c2b04542f263b2679194f9fb75672ebbe72b924
Cr-Commit-Position: refs/heads/master@{#35330}

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

Cr-Commit-Position: refs/heads/master@{#35494}
2016-04-14 13:30:22 +00:00
jarin
f5961f90b1 [turbofan] Change number operations to handle Undefined as well.
This allows us to remove the turbofan bailout that we introduced
as a response to crbug.com/589792.

BUG=chromium:589792
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35493}
2016-04-14 13:13:56 +00:00
verwaest
b9a2cf9e3b Don't use the keyed slow stub for named handlers.
Otherwise the megamorphic stubcache will miss. It only probes for
non-keyed handlers.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35492}
2016-04-14 13:01:35 +00:00
yangguo
5af0a68442 Revert of Correctly annotate eval origin. (patchset #5 id:80001 of https://codereview.chromium.org/1854713002/ )
Reason for revert:
performance impact

Original issue's description:
> Correctly annotate eval origin.
>
> There were a couple of issues with it:
> - interpreter is not supported
> - the source position was just accidentally correct for full-codegen
> - the eval origin could have been cached
>
> Also fixes a few other places to use AbstractCode.
>
> R=mstarzinger@chromium.org
>
> Committed: https://crrev.com/2f3a171adc9e620c2235bf0562145b9d4eaba66d
> Cr-Commit-Position: refs/heads/master@{#35257}
>
> Committed: https://crrev.com/ad4e8a27963b704bb70ec8bac0991c57296b1d16
> Cr-Commit-Position: refs/heads/master@{#35481}

TBR=mstarzinger@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/1888013002

Cr-Commit-Position: refs/heads/master@{#35491}
2016-04-14 12:46:00 +00:00
mstarzinger
b62af118f4 [compiler] Remove obsolete MaybeDisableOptimization.
The parser no longer disables optimization. This is done solely by the
renumbering stage. It is sufficient to mark a SharedFunctionInfo as
disabled for optimization right after the renumbering stage.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35490}
2016-04-14 12:32:19 +00:00
ahaas
b0eb605483 [x64] Use Cvttsd2siq in TruncateDoubleToI for better performance.
R=verwaest@chromium.org, bmeurer@chromium.org
BUG=chromium:603470
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35489}
2016-04-14 12:18:20 +00:00
bmeurer
df5976c9f9 [turbofan] Avoid unnecessary tagging of floating point values.
Replace ChangeFloat64ToTagged(ChangeTaggedToFloat64(x)) with x in the
SimplifiedOperatorReducer.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35488}
2016-04-14 11:45:27 +00:00
machenbach
e51e8b4ad7 [build] Use MSVS 2015 by default.
BUG=chromium:603131
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#35487}
2016-04-14 11:41:14 +00:00
yangguo
808824cc7c [regexp] fix interpreted regexp.
R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35486}
2016-04-14 11:27:25 +00:00
mlippautz
3ace01d1b3 Reland of "[heap] Better integrate handling of aborted compaction pages"
- Get rid of fixing up pointers on the main thread
- Get rid of sweeping on the main thread

Instead:
- Record (and process afterwards) slots in parallel
- Add the pages to the concurrent sweeper as pointers have already been fixed

This reverts commit 6df04b296b.

BUG=chromium:581412
LOG=N
TEST=cctest/test-compaction/*

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

Cr-Commit-Position: refs/heads/master@{#35485}
2016-04-14 11:07:20 +00:00
ishell
f541033b5f [es7] Add --harmony-explicit-tailcalls flag.
BUG=v8:4915
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35484}
2016-04-14 10:51:35 +00:00
ahaas
15fc9d063a [wasm] Remove the use of JSOperatorBuilder.ToNumber to avoid JSGenericLowering.
R=mstarzinger@chromium.org
BUG=v8:4914
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35483}
2016-04-14 10:34:05 +00:00
mstarzinger
b958ba5fd8 [compiler] Remove CompilationInfo::is_first_compile flag.
This removes the flag in question. It just duplicates the corresponding
compilation hint in the underlying SharedFunctionInfo object. Now that
the backends should have a SharedFunctionInfo available most of the time
it is safe to use the cannonical predicate.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35482}
2016-04-14 10:28:02 +00:00
yangguo
ad4e8a2796 Correctly annotate eval origin.
There were a couple of issues with it:
- interpreter is not supported
- the source position was just accidentally correct for full-codegen
- the eval origin could have been cached

Also fixes a few other places to use AbstractCode.

R=mstarzinger@chromium.org

Committed: https://crrev.com/2f3a171adc9e620c2235bf0562145b9d4eaba66d
Cr-Commit-Position: refs/heads/master@{#35257}

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

Cr-Commit-Position: refs/heads/master@{#35481}
2016-04-14 10:08:15 +00:00
rmcilroy
0c05e02f25 [Interpreter] Make dispatch table point to code entry instead of code objects.
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).

BUG=v8:4280
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35480}
2016-04-14 10:04:26 +00:00
epertoso
1b63d124ad [crankshaft] Hook the binary operators TurboFan code stubs with crankshaft.
Replaces the HCallRuntime instruction in HGraphBuilder::BuildBinaryOperation with a call to the corresponding TurboFan stub.

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

Cr-Commit-Position: refs/heads/master@{#35479}
2016-04-14 09:40:00 +00:00
zhengxing.li
a0d2f240c3 X87: [Interpreter] Changes GenerateDoubleToObject to push and pop rsi value.
port e6b6e55453 (r35163)

  original commit message:
  In the earlier implementation of GenerateDoubleToObject the context
  is loaded from the parent's frame. rsi is clobbered because it is used
  to store kHoleNan constnat. It is not always safe to peek at
  the parents frame. Bytecode handlers have TypedFrame and the type of
  frame is stored at FP + 1. GenerateDoubleToObject expects context
  to be store at that place. In the current implementation rsi is pushed
  onto the stack and is popped when exiting this function.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35478}
2016-04-14 09:28:44 +00:00
mstarzinger
35395d988e [compiler] Fix optimized code lookup in GetLazyCode.
This makes sure that when cached optimized code is found while doing
lazy compilation via Compiler::Compile installs any existing literals
array as well.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35477}
2016-04-14 09:20:39 +00:00
zhengxing.li
8e4fbb059a X87: [wasm] Refactoring pair-shift code in the instruction selector of arm and ia32.
port f954934d62 (r35140)

  original commit message:

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35476}
2016-04-14 09:07:17 +00:00
mythria
7effb4f736 [Interpreter] Updates mjsunit.status.
Removes skips for two tests that no longer fail on windows system.
Updates description of another failing test with more details.

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

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

Cr-Commit-Position: refs/heads/master@{#35475}
2016-04-14 09:01:34 +00:00
mlippautz
97e3909a53 [api] Deprecate *MemoryAllocationCallback
To keep track of memory characteristics of a JS program use
GetHeapSpaceStatistics from a combination of
- a GC epilogue callback registered using AddGCEpilogueCallback
- an interrupt registered using RequestInterrupt

Rationale:
The feature is currently broken as those callbacks are (also) executed from
background threads, breaking our implicit contract for only performing callbacks
on the foreground thread. Furhtermore, it's not clear for the embedder whether
these allocations originate in JS, or are required for a GC.

Note:
- The already deprecated non-isolate versions are removed with this CL.

R=jochen@chromium.org
BUG=v8:4813
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#35474}
2016-04-14 08:53:41 +00:00
zhengxing.li
1e6f2ff368 X87: [turbofan] Frame elision for code stubs.
port 53d51c52f3 (r35139)

  original commit message:
  Removed Frame::needs_frame and the function-wide logic using it in
  favor of FrameAccessState::has_frame, which can be set on a more
  granular level, and driving it block by block.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35473}
2016-04-14 08:49:54 +00:00
mstarzinger
3699f902d6 [compiler] Remove CompileEvalForDebugging pipeline.
This removes one of the duplicated pipeline implementation from the
compiler. By now we can reuse the existing CompileForDebugging for all
compilations being kicked off for debugging.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35472}
2016-04-14 08:08:43 +00:00
mstarzinger
793ae860e5 [compiler] Drop obsolete compiler hint setting.
The compiler hints in question are already correctly initialized by the
NewSharedFunctionInfoForLiteral function. Reinitializing them again here
is no longer needed by now.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35471}
2016-04-14 08:01:06 +00:00
machenbach
8f8dd7150f [build] New VS 2013 toolchain with setenv.*.json
Port https://codereview.chromium.org/1886493002

BUG=chromium:603011, chromium:603131
LOG=n
TBR=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35470}
2016-04-14 07:59:05 +00:00
bmeurer
5b99eec342 [turbofan] Remove unused PlainPrimitiveToNumber operator.
At some point we thought about using this instead of JSToNumber, but now
there doesn't seem to be any reason for this anymore.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35469}
2016-04-14 07:42:22 +00:00
verwaest
a915f5bf48 Replace DefineIndexedProperty with %CreateDataProperty
This should bring back the performance of speedometer-backbone at least very close to the performance before @@species.

BUG=chromium:596825
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35468}
2016-04-14 07:40:04 +00:00
bradnelson
53bc649e88 [wasm] Adding metrics for Asm/Wasm.
Collecting:
Time histograms for: instantiate, decode module, decode function, compile, compile function.
Memory histograms for: decode peak, instantiate peak, compile function peak, min mem pages, max mem pages, function bytes, module bytes.
Range histograms of: functions per module.

BUG= https://code.google.com/p/v8/issues/detail?id=4203
BUG= https://bugs.chromium.org/p/chromium/issues/detail?id=575167
TEST=None
R=ahaas@chromium.org,bmeurer@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35467}
2016-04-14 07:30:14 +00:00
ahaas
6f8630ed7b [x64] Avoid the sign extension in the DoubleToI conversion.
We use the cvttsd2si (float64-to-int32) instruction to avoid that negative numbers get sign extended in the destination register.

@rodolph: Is sign extension also a thing on arm64? I noticed that also on arm64 a float64-to-int64 instruction is used.

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

Cr-Commit-Position: refs/heads/master@{#35466}
2016-04-14 07:25:41 +00:00
machenbach
b0e14e148c [test] Skip flaky test.
BUG=v8:4751
LOG=n
NOTRY=true
TBR=adamk@chromium.org, rmcilroy@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35465}
2016-04-14 07:22:22 +00:00
zhengxing.li
1c5f0badbf X87: [turbofan] Need add V8_TARGET_ARCH_X87 in src/globals.h
The CL #35139 (https://codereview.chromium.org/1775323002) added V8_TARGET_ARCH_IA32 macro in
  src/globals.h.

  X87 is almost same as IA32, So It needs the V8_TARGET_ARCH_X87 macro in src/globals.h too.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35464}
2016-04-14 06:57:17 +00:00
v8-autoroll
2469be9e09 Update V8 DEPS.
Rolling v8/build/gyp to 6ea68631cdabab9b7c5257657567a785a261692e

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

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

Cr-Commit-Position: refs/heads/master@{#35463}
2016-04-14 03:19:48 +00:00
mbrandy
89e9819cbe PPC: [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, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=v8:4614
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35462}
2016-04-14 02:05:27 +00:00
mbrandy
d7bb46d49f PPC: 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, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35461}
2016-04-14 01:57:49 +00:00
joransiu
a9817c6846 S390:[simulator] Fix int64_t printf + minor cleanup
* Use proper int64_t printf format qualifier to fix 64-bit sim compile
  on Mac.
* Minor cleanup to ExecuteInstruction() to remove an unncessary
  'processed' variable.

R=jyan@ca.ibm.com,mbrandy@us.ibm.com,michael_dawson@ca.ibm.com
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35460}
2016-04-14 01:23:30 +00:00
adamk
a63185a608 Remove vestigial legacy const handling from parser
R=littledan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35459}
2016-04-14 01:02:55 +00:00
aseemgarg
c09792bf37 [wasm] Enable the remaining embenchen tests for asm to wasm
BUG=v8:4203
TEST=mjsunit/asm-wasm
R=titzer@chromium.org,bradnelson@chromium.org,ahaas@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35458}
2016-04-14 00:35:12 +00:00
jyan
3d861c651b S390: Fix S390 native build break due to printf format mismatch.
size_t defined as unsigned long on 31-bit s390.

R=jochen@chromium.org, jfb@chromium.org
TBR=ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#35457}
2016-04-13 23:41:36 +00:00
robtsuk
31355336d1 Fix android_arm build hosted on Mac
Fixes for misnamed toolchain from https://github.com/appcelerator/v8_titanium.

Added a way to specify the NDK path since the Mac versions of the NDK aren't checked into the tools repo.

Disabled a few dependencies which do not build on the Mac but which aren't needed for building usable V8 static libraries.

Made the including of libdl and librt omitted for Mac hosted builds.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#35456}
2016-04-13 23:13:35 +00:00
aseemgarg
1d37d4216b [wasm] optimized switch implementation in asm.js to wasm builder
This change implements switch as a balanced if/else tree or break table or
hybrid. A lot of asm.js modules are expected to extensively use switch
alongside function tables that can benefit from a better implementation.

BUG=v8:4203
TEST=mjsunit/asm-wasm
R=titzer@chromium.org,bradnelson@chromium.org,ahaas@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#35455}
2016-04-13 21:56:42 +00:00
mlippautz
6df04b296b Revert of [heap] Better integrate handling of aborted compaction pages (patchset #7 id:130001 of https://codereview.chromium.org/1881423003/ )
Reason for revert:
Breaks: https://uberchromegw.corp.google.com/i/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/20

RecordMigratedSlotVisitor is not safe to use on code pages.

Original issue's description:
> [heap] Better integrate handling of aborted compaction pages
>
> - Get rid of fixing up pointers on the main thread
> - Get rid of sweeping on the main thread
>
> Instead:
> - Record (and process afterwards) slots in parallel
> - Add the pages to the concurrent sweeper as pointers have already been fixed
>
> BUG=chromium:581412
> LOG=N
> TEST=cctest/test-compaction/*
>
> Committed: https://crrev.com/2e4f57774d4993f9f98332d3b2469280ee10beca
> Cr-Commit-Position: refs/heads/master@{#35451}

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

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

Cr-Commit-Position: refs/heads/master@{#35454}
2016-04-13 18:46:06 +00:00
binji
5e9ddf6ce4 [Atomics] code stubs for atomic operations
Reland of (https://codereview.chromium.org/1617503003)

* 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

BUG=v8:4614
LOG=y
TBR=jarin@chromium.org,bmeurer@chromium.org,rodolph.perfetta@gmail.com,machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#35427}

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

Cr-Commit-Position: refs/heads/master@{#35453}
2016-04-13 18:24:28 +00:00
machenbach
0da17134e2 [build] Port latest vs_toolchain script.
BUG=chromium:603011,chromium:603131
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#35452}
2016-04-13 16:51:49 +00:00