Commit Graph

22110 Commits

Author SHA1 Message Date
bmeurer
49bb6617ab [ia32] Match -0 - x with sign bit flip.
We can use xorps/xorpd on Intel CPUs to flip the sign bit. Ideally we'd
use an absolute 128-bit constant in the code object, as OCaml/GCC
does, however that requires 128-bit alignment for code objects,
which is not yet implemented. So for now we materialize the mask
inline.

As drive-by-fix, don't hardcode xmm0 as scratch double register.

R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27618}
2015-04-07 10:44:03 +00:00
jkummerow
90cbede588 Move prototype metadata from internal properties to prototype maps
The motivation is that we prefer to avoid creating internal properties, and we have a usable field on maps ("transitions", which is not used for prototype maps).
This CL also ensures the invariant that prototype maps are never shared, even if they are in dictionary mode.

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

Cr-Commit-Position: refs/heads/master@{#27617}
2015-04-07 10:42:57 +00:00
jochen
a7c1b0a92b Revert of Turn off overapproximation of the weak closure again (patchset #1 id:1 of https://codereview.chromium.org/1050443002/)
Reason for revert:
this indeed drops the max major gc time considerable, so turn it back on

Original issue's description:
> Turn off overapproximation of the weak closure again
>
> As long as we still have to process global handles, the impact is not
> yet worthwhile
>
> BUG=v8:3862
> R=hpayer@chromium.org
> LOG=y
>
> Committed: https://crrev.com/294cdc6aecbd7f76be68217da4b3d35901ebce4b
> Cr-Commit-Position: refs/heads/master@{#27570}

TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3862

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

Cr-Commit-Position: refs/heads/master@{#27616}
2015-04-07 09:46:07 +00:00
yangguo
c67cb287a9 Always update raw pointers when handling interrupts inside RegExp code.
R=mstarzinger@chromium.org
BUG=chromium:469480
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27615}
2015-04-07 09:44:57 +00:00
jkummerow
146598f44a JSEntryTrampoline: check for stack space before pushing arguments
Optimistically pushing a lot of arguments can run into the stack limit of the process, at least on operating systems where this limit is close to the limit that V8 sets for itself.

BUG=chromium:469768
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27614}
2015-04-07 09:13:44 +00:00
titzer
13d6de4986 [turbofan] Introduce BranchMatcher and DiamondMatcher helpers.
R=bmeurer@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27613}
2015-04-07 09:03:37 +00:00
baptiste.afsa
ba41489da5 [turbofan][arm64] Match add with shifted operand for mult by a power of 2 plus 1.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27612}
2015-04-07 08:48:24 +00:00
bmeurer
a1b2c275b7 [x64] Match -0 - x with sign bit flip.
We can use xorps/xorpd on Intel CPUs to flip the sign bit. Ideally we'd
use a RIP-relative 128-bit constant in the code object, as OCaml/GCC
does, however that requires 128-bit alignment for code objects, which is
not yet implemented. So for now we materialize the mask inline.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27611}
2015-04-07 07:35:03 +00:00
bmeurer
ee73c6f3e7 [win32] Improve random mmap address generation on 64-bit.
Currently we only generate addresses in the range 2GiB to 4GiB, because
of a bug, when running in 64-bit mode. With this fix we now use the full
range 2GiB to 4096GiB.

BUG=v8:3997
LOG=n
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27610}
2015-04-07 07:14:01 +00:00
svenpanne
cfe76e82d9 Rearranged intrinsic declarations according to their implementations.
Now every FOR_EACH_INTRINSIC_FOO sub-macro corresponds to a
src/runtime/runtime-FOO.cc file, even the order of runtime functions
within that file has been preserved in the corresponding macro, thanks
to some eye-hurting for/clang/sed/grep madness. ;-)

BUG=v8:3947
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27609}
2015-04-07 07:12:51 +00:00
michael_dawson
c7068b3ee5 PPC: exclude test for AIX due to issue 2857
cctest/test-log/EquivalenceOfLoggingAndTraversal fails on
AIX because it does not correctly handle the full 64 bit
address space supported by AIX.  SKIP until the issue
is resolved.

	modified:   test/cctest/cctest.status

R=danno@chromium.org, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27608}
2015-04-07 07:06:47 +00:00
v8-autoroll
91dd3f7f76 Update V8 DEPS.
Rolling v8/third_party/icu to 10834e84d250eb31a73496bfdb7923eaa43ead51

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27607}
2015-04-07 03:52:36 +00:00
adamk
7d1ce9f69d Fix formatting in full-codegen-x64.cc
TBR=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27606}
2015-04-07 00:14:34 +00:00
adamk
909500aa1d Reimplement Maps and Sets in JS
Previously, the only optimized code path for Maps and Sets was for String keys.
This was achieved through an implementation of various complex operations
in Hydrogen. This approach was neither scalable nor forward-compatible.

This patch adds the necessary intrinsics to implement Maps and Sets almost entirely
in JS. The added intrinsics are:

  %_FixedArrayGet
  %_FixedArraySet
  %_TheHole
  %_JSCollectionGetTable
  %_StringGetRawHashField

With these additions, as well as a few changes to what's exposed as runtime functions,
most of the C++ code backing Maps and Sets is gone (including both runtime code in
objects.cc and Crankshaft in hydrogen.cc).

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

Cr-Commit-Position: refs/heads/master@{#27605}
2015-04-07 00:12:04 +00:00
hablich
31bbcc3e19 Updated version to 4.4
BUG=
TBR=machenbach@chromium.org,vogelheim@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#27604}
2015-04-06 21:32:13 +00:00
mike
3b624a1796 Re-implement %Generator% intrinsic as an object
From ES6 25.2.3 ("Properties of the GeneratorFunction Prototype
Object"):

> The GeneratorFunction prototype object is an ordinary object. It is
> not a function object and does not have an [[ECMAScriptCode]] internal
> slot or any other of the internal slots listed in Table 27 or Table
> 56.

Introduce one assertion for the value's type and additional tests for its
properties. Remove an invalid assertion that fails as a result of this
fix.

BUG=v8:3991
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27603}
2015-04-06 21:04:51 +00:00
hpayer
189b355a76 Filter out remembered slots that are at the start of an object.
These slots are invalid and can result in a broken offset when slot index and start of object are equal and are at the beginning of a cell.

Moreover, make DCHECKs CHECKs to catch bugs in the wild.

BUG=chromium:473174
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27602}
2015-04-06 14:58:16 +00:00
dusan.milosavljevic
4b5af7b32e MIPS: Major fixes and clean-up in asm. for instruction encoding.
- Fixed single float register type instruction en[de]coding in assembler and disassembler.
- Added max and min instructions for r6 and corresponding tests.
- Fixed selection instruction for boundary cases in simulator.
- Update assembler tests to be more thorough wrt boundary cases.

TEST=cctest/test-assembler-mips64/MIPS17, MIPS18
     cctest/test-disasm-mips64/Type1
     cctest/test-assembler-mips/MIPS16, MIPS17
     cctest/test-disasm-mips/Type1
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27601}
2015-04-06 11:54:38 +00:00
v8-autoroll
2fbfc9faec Update V8 DEPS.
Rolling v8/third_party/icu to e4c31439828d356525b71ef81a6d61ea50d7d673

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27600}
2015-04-04 03:47:21 +00:00
dusan.milosavljevic
c7685d2f99 MIPS64: Improve deopt jump table code size.
The number of generated instructions per table entry is reduced from six to
two, or four in worst-case scenario.

TEST=
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27599}
2015-04-03 18:02:19 +00:00
v8-autoroll
23994c22de Update V8 DEPS.
Rolling v8/build/gyp to 2889664b9fa88cce175c5c7cdf207d28420a7412

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27598}
2015-04-03 03:24:50 +00:00
chunyang.dai
d4a4f796af X87: Generate common StoreFastElementStubs ahead of time
port 16ee55097a (r27536)

original commit message:

  Generate common StoreFastElementStubs ahead of time

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27597}
2015-04-03 03:09:23 +00:00
chunyang.dai
d0a7ab1dbd x87: v8:3539 - hold constructor feedback in weak cells
port b134ae74b5 (r27581)

original commit message:

   v8:3539 - hold constructor feedback in weak cells

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27596}
2015-04-03 03:03:13 +00:00
chunyang.dai
9bf64f7e61 X87: Ensure object literal element boilerplates aren't modified.
port 7c347c545e (r27511)

original commit message:

    A bug allows JSObject literals with elements to have the elements in the
    boilerplate modified.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27595}
2015-04-03 02:55:05 +00:00
michael_dawson
452e5e6696 PPC: v8:3539 - hold constructor feedback in weak cells
Port b134ae74b5

Original commit message:
BUG=v8:3539
LOG=N

R=verwaest@chromium.org, mbrandy@us.ibm.com

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

Cr-Commit-Position: refs/heads/master@{#27594}
2015-04-02 19:49:04 +00:00
paul.lind
0f0ce4a9c6 MIPS: Remove unused J(Label *).
Remove unused macro-asm instruction and associated address patching.

On mips64, remove unused JumpLabelToJumpRegister(). On mips, rename
it appropriately (it's still used there for JR->J optimizations).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27593}
2015-04-02 18:45:05 +00:00
paul.lind
6b03f2233f MIPS: Fix another bug with mozilla regress-396684.js
As with TF fix 94506cc3, correctly support absurdly large stack
adjustments.

TEST=mozilla/js/tests/js1_5/Regress/regress-396684.js
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27592}
2015-04-02 15:19:50 +00:00
titzer
fa7c34764c [turbofan] Improve branch folding over phis and ranges.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27591}
2015-04-02 15:18:40 +00:00
phajdan.jr
260ab45170 Add missing license headers for some cctests.
BUG=chromium:98597
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27590}
2015-04-02 14:45:45 +00:00
dcarney
9038004932 Revert of make ToLocalCheck crash in release mode (patchset #1 id:1 of https://codereview.chromium.org/1043363005/)
Reason for revert:
breaks some devtools things

Original issue's description:
> make ToLocalCheck crash in release mode
>
> R=svenpanne@chromium.org
> BUG=
>
> Committed: https://crrev.com/ce7cc5119c1e031bf1eb8476fbf5e55bef738f94
> Cr-Commit-Position: refs/heads/master@{#27585}

TBR=svenpanne@chromium.org,machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27589}
2015-04-02 13:09:28 +00:00
mstarzinger
9596b36c1d [turbofan] Keep AstGraphBuilder context chain length in sync.
This keeps the length of the context chain tracked by the environment
in sync even for local control flow commands. It removes the need to
guess the correct chain length at Environment::Merge points.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27588}
2015-04-02 11:49:07 +00:00
balazs.kilvady
4c0af45717 MIPS: v8:3539 - hold constructor feedback in weak cells
BUG=v8:3539
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27587}
2015-04-02 11:41:03 +00:00
ishell
ffe886de48 Support for typed arrays added to Heap::RightTrimFixedArray().
BUG=chromium:472513
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27586}
2015-04-02 11:26:19 +00:00
dcarney
ce7cc5119c make ToLocalCheck crash in release mode
R=svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27585}
2015-04-02 10:59:51 +00:00
sergiyb
64b3dc9082 Added version tag to the CQ config
R=machenbach@chromium.org
BUG=chromium:408675
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27584}
2015-04-02 10:41:41 +00:00
chunyang.dai
845154a896 Fix the bug in CompareIC_GenerateNumber for X87 platform.
The original code will not update the IC info if one of parameter is SMI. It Can not handle Number + Smi.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27583}
2015-04-02 10:17:00 +00:00
titzer
cdeaf08a0d [turbofan] Reduce duplication between ControlReducer::ReduceIf(True,False).
R=svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27582}
2015-04-02 10:03:23 +00:00
mvstanton
b134ae74b5 v8:3539 - hold constructor feedback in weak cells
BUG=v8:3539
R=verwaest@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#27581}
2015-04-02 09:39:35 +00:00
jochen
2a5eb8299b Expose an API on ArrayBufferView to copy out content w/o changing the buffer
BUG=v8:3996
LOG=y
R=dslomov@chromium.org,kbr@chromium.org,hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27580}
2015-04-02 09:36:39 +00:00
jochen
83f827a00b Add initial set of sub directory OWNERS file
BUG=none
R=danno@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27579}
2015-04-02 08:46:24 +00:00
svenpanne
1592870822 Fixed the range information for string lengths.
Currently, this doesn't really help to generate better code,
nevertheless this is the right thing to do. When our type system(s)
are fixed, this should avoid falling back to floating point operations
in various cases.

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

Cr-Commit-Position: refs/heads/master@{#27578}
2015-04-02 08:32:51 +00:00
Erik Arvidsson
4977a4a83a Disable a new failing test262-es6 test
language/asi/S7.9_A5.7_T1

http://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/3024/steps/Test262-es6/logs/S7.9_A5.7_T1

This looks suspicious. Maybe the monkeyYaml is the reason for this?

BUG=None
TBR=adamk

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

Cr-Commit-Position: refs/heads/master@{#27577}
2015-04-01 22:28:20 +00:00
arv
5639a767ec Update test262-es6 to 2015-03-31
BUG=None
LOG=N
R=adamk, rossberg

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

Cr-Commit-Position: refs/heads/master@{#27576}
2015-04-01 21:51:25 +00:00
balazs.kilvady
0f086d1412 MIPS: Rename BranchF functions.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27575}
2015-04-01 18:39:43 +00:00
paul.lind
94506cc3c2 MIPS: Fix stack claim and store to slot for large sizes.
Could not encode the large slot number in opcode MiscField.

TEST=mozilla/js/tests/js1_5/Regress/regress-396684.js
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27574}
2015-04-01 18:18:39 +00:00
erikcorry
1ac47e6138 Fix external-snapshot startup when snapshot is missing, but natives source is available
R=vogelheim@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27573}
2015-04-01 18:07:40 +00:00
arv
18cb17c924 ES6: Error functions should extend Error
The /NativeError/ functions should have Error as their [[Prototype]].

http://people.mozilla.org/~jorendorff/es6-draft.html#sec-properties-of-the-nativeerror-constructors

BUG=v8:3998
LOG=N
R=adamk, dslomov@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#27572}
2015-04-01 17:29:59 +00:00
erikcorry
5a93a3304c Reland: Fix JSON parser Handle leak (previous CL 1041483004)
R=mstarzinger@chromium.org
BUG=v8:3976
BUG=472504
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27571}
2015-04-01 16:58:47 +00:00
jochen
294cdc6aec Turn off overapproximation of the weak closure again
As long as we still have to process global handles, the impact is not
yet worthwhile

BUG=v8:3862
R=hpayer@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27570}
2015-04-01 16:52:25 +00:00
arv
4374941837 [es6] Object.getOwnPropertyDescriptor should wrap primitives
In ES6 Object.getOwnPropertyDescriptor should call ToObject, which
means that primitive values will return descriptors from the wrapper.

BUG=v8:3964
LOG=N
R=adamk, rossberg@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#27569}
2015-04-01 15:45:08 +00:00