Commit Graph

16878 Commits

Author SHA1 Message Date
mstarzinger@chromium.org
d5cb9ee440 Drop obsolete ES6 TODOs about activating extended mode.
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-17 15:22:38 +00:00
yangguo@chromium.org
c41c43585c Remove unnecessary virtual methods in the serializer.
R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-17 14:24:19 +00:00
mstarzinger@chromium.org
46d36e81b4 Rename arguments object support functions to new scheme.
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-17 14:10:16 +00:00
yangguo@chromium.org
11368af66d Interrupts must not mask stack overflow.
R=jarin@chromium.org
BUG=385002
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-17 13:54:49 +00:00
ulan@chromium.org
b624783b1b Reduce number of writes to DependentCode array when inserting dependent IC.
BUG=305878
LOG=Y
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-17 13:22:34 +00:00
marja@chromium.org
3b53ba87c8 Fix: AstValueFactory must be internalized before ThrowPendingError.
R=rossberg@chromium.org
BUG=385193
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-17 11:48:37 +00:00
ulan@chromium.org
944e7f09d2 Do GC if CodeRange fails to allocate a block.
BUG=305878
LOG=Y
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-17 08:20:12 +00:00
marja@chromium.org
5bbc92dee0 Throw syntax error when a getter/setter has the wrong number of params
We used to allow any number of parameters in getters and setters to
match JSC. This is a violation of ES5.1 and both SpiderMonkey and
Chakra throw on these syntax errors.

BUG=v8:3371
LOG=Y
R=marja@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-17 07:23:26 +00:00
hpayer@chromium.org
e056708583 Revert "Grow big old generation slower.", tanks SplayHarder.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-17 06:10:43 +00:00
jarin@chromium.org
f69bb7fcc3 Do not eliminate bounds checks for "<const> - x".
Before this change, bounds check elimination treated "<const> - x" as
"x - <const>".

R=yangguo@chromium.org
BUG=385054
TEST=test/mjsunit/regress/regress-385054.js
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 13:43:50 +00:00
bmeurer@chromium.org
2591003da5 Add unit test for regression in GVN caused by field type tracking.
BUG=v8:3347
LOG=n
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 13:21:42 +00:00
bmeurer@chromium.org
4642c2e18c Revert "GVN fix, preventing loads hoisting above stores to the same field when HObjectAccess's representation is not the same."
This reverts commit r21830 for tanking performance on Deltablue.

TBR=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 13:03:59 +00:00
marja@chromium.org
71d07279b8 Reuse AstValueFactory when optimizing.
HOptimizedGraphBuilder::TryInline creates a temporary CompilationInfo and
destroys it, but we don't want the AstValueFactory to be destroyed at the same
time. Reuse the upper CompilationInfo's AstValueFactory.

BUG=
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 10:42:39 +00:00
jkummerow@chromium.org
aae24ae40b Fix representation of Phis for mutable-heapnumber-in-object-literal properties
BUG=v8:3392
LOG=y
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-16 08:41:29 +00:00
jochen@chromium.org
712b0a2066 Fix x87 compile
TBR=marja@chormium.org
LOG=n
BUG=none

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 16:56:50 +00:00
jochen@chromium.org
9c2019b25c Remove dependency on Vector from platform files
Add wrappers to utils.h instead.

BUG=none
R=jkummerow@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 16:43:27 +00:00
marja@chromium.org
27d7656b39 Fix windows build (size_t vs. int) some more.
TBR=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 15:08:57 +00:00
marja@chromium.org
1def5993cb Fix windows build (size_t vs. int).
Sadly, Vector ctor takes an argument "int length".

TBR=dcarney@chromium.org, mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 14:24:56 +00:00
marja@chromium.org
2b52295935 Fix gn build.
TBR=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 13:45:49 +00:00
jkummerow@chromium.org
e53511355f Fix clang build after r21839
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 13:39:01 +00:00
marja@chromium.org
a290cf8cda Parser: Delay internalizing strings and values.
This is needed so that we can run Parser on a non-main thread (independent
of the Isolate and the V8 heap).

BUG=
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 13:31:56 +00:00
verwaest@chromium.org
7005abf03b Optimize Function.prototype.call
- May inline the function, or call it directly, instead of going through call
- Supports arguments object escaping when it escapes to builtins (preparation for slice.call(arguments, ...) optimization)
- Both .call and .apply now support inlining when calling builtins indirectly

BUG=
R=verwaest@chromium.org, rossberg@chromium.org

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

Patch from Petka Antonov <p.antonov@partner.samsung.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 12:52:23 +00:00
jkummerow@chromium.org
6e29768eb6 Have one, long-lived map for bound functions.
This avoids creating a new map for every bound function. Bonus: some cleanup in Runtime_FunctionBindArguments.

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 12:19:04 +00:00
jkummerow@chromium.org
9dd1f03cb7 Keep maps when resetting elements.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 12:12:42 +00:00
svenpanne@chromium.org
510ea9e529 Reland "Rename kIs64BitArch with kRequiresCodeRange."
R=svenpanne@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 11:06:42 +00:00
jkummerow@chromium.org
3b545740b4 Remove one more arch-specific target name.
One more target had the architecture added to its name since r14209
originally landed and was missed when that change was reverted. Remove
the architecture from v8_libbase as well.

BUG=
R=jkummerow@chromium.org

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

Patch from Richard Coles <torne@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 11:02:34 +00:00
svenpanne@chromium.org
d82a6adac5 Emulate MLS on pre-ARMv6T2. Cleaned up thumbee vs. thumb2 confusion.
This should unbreak things on the Raspberry Pi.

LOG=y
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 10:50:11 +00:00
jkummerow@chromium.org
8334faa0e0 Allow all Names to be fast property names
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 09:59:39 +00:00
jkummerow@chromium.org
a4d1e01b79 Use generic representation when normalizing boilerplate properties
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 09:46:29 +00:00
yangguo@chromium.org
2e8a6f5e99 Mark timed range in the profile plot.
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 09:07:56 +00:00
ulan@chromium.org
0f69ed32f3 Disable regress/regress-2653 until deopt_every_n_garbage_collections is fixed.
BUG=3389
LOG=N
R=marja@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 08:05:34 +00:00
ishell@chromium.org
41e9d916c4 GVN fix, preventing loads hoisting above stores to the same field when HObjectAccess's representation is not the same.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 07:51:45 +00:00
weiliang.lin@intel.com
fd1ace4d94 X87: Fixed flooring division by a power of 2, once again...
port r21769

original message:
    Avoid right shifts by zero bits: On ARM it actually means shifting by
    32 bits (correctness issue) and on other platforms they are useless
    (performance issue). This is fix for the fix in r20544.

    BUG=v8:3259
    LOG=y
R=weiliang.lin@intel.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 07:03:11 +00:00
svenpanne@chromium.org
ac18d08250 Fixed undefined behavior in RNG.
We're basically trading undefined behavior for implementation defined
behavior, which should be OK for UBSan. :-) The generated code should
be identical, at least I checked that for GCC 4.6.3 on x64.

BUG=377790
LOG=y
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 06:36:09 +00:00
haitao.feng@intel.com
817430f6ce Update Lithium AddI, SubI, MulI, BitI, ShiftI, MathMinMax to support x32 port.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 02:38:46 +00:00
haitao.feng@intel.com
28e74e138a Specially handle the key of the LoadKeyed and StoreKeyed instruction for x32 port.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 02:19:57 +00:00
palfia@homejinni.com
1eac611491 MIPS: Fix register usage after r21822.
The at register is no longer in usage, so changed it to "scratch".

BUG=
R=plind44@gmail.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 02:00:13 +00:00
plind44@gmail.com
d773d05ba6 MIPS: Fix r21780 - “Fixed flooring division by a power of 2, once again...”
Initialize scratch register for all possible code paths.

TEST=mjsunit/compiler/division-by-constant.js
BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 20:25:47 +00:00
mstarzinger@chromium.org
ed61b85c78 Make timestamp of fuzz harness archives finer grained.
R=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 18:55:09 +00:00
wingo@igalia.com
dfb1c7dc9e For-of calls [Symbol.iterator]() on RHS to get iterator
R=rossberg@chromium.org
BUG=http://code.google.com/p/v8/issues/detail?id=2735
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 17:31:54 +00:00
jochen@chromium.org
5264001898 Drop dependency on Isolate* from platform.h
BUG=none
R=dcarney@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 17:06:24 +00:00
m.m.capewell@googlemail.com
649057e05c Remove forced type changes when they can't deopt
Hydrogen attempts to force representation changes on certain operations in order
to deoptimise on the change rather than the operation. However, these forced
changes are often unnecessary on 64-bit platforms, and cause poor code
generation, so this patch makes some of them conditional on whether it's
possible for deoptimisation to occur in the change.

On ARM64, this prevents sequences like:
                  ;;; <@46,#89> smi-tag
0x7ff282c7f050   144  lsl x4, x4, #32
                  ;;; <@48,#90> smi-untag
0x7ff282c7f054   148  asr x5, x4, #32
                  ;;; <@50,#31> mul-const-i-s
0x7ff282c7f058   152  lsl w6, w5, #3

BUG=
R=jkummerow@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 16:47:51 +00:00
jkummerow@chromium.org
301ae7dd56 Optimize prototype chain when creating initial maps for functions used as constructors
Review URL: https://codereview.chromium.org/332783002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 16:41:56 +00:00
jkummerow@chromium.org
918efd7e20 Add non-miss slow path to LoadIC_Normal.
This avoids endless IC patching cycles between "normal" and "nonexistent" handlers when objects having and not having the property are seen alternatingly

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 16:38:37 +00:00
plind44@gmail.com
5c96e2cff1 MIPS: Fix unsigned comparison.
TEST=mjsunit/regress/regress-3380
BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 15:42:14 +00:00
verwaest@chromium.org
fd80653a4c Rewrite GetPropertyAttribute to use the LookupIterator
BUG=
R=ishell@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 15:08:33 +00:00
weiliang.lin@intel.com
6a8d820f7c X87: Reland 21774: Generate KeyedLoadGeneric with Hydrogen
Port r21781 (4869c528)

BUG=
R=danno@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 15:05:01 +00:00
danno@chromium.org
7e67361e53 Revert "Active use of Hydrogen-generated generic KeyedLoad IC"
Due to mirror-object test failure (although I'm pretty sure I was framed)

R=mstarzinger@chromium.org
TBR=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 14:59:51 +00:00
danno@chromium.org
dc0236cffa Active use of Hydrogen-generated generic KeyedLoad IC
R=dcarney@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 14:23:29 +00:00
jochen@chromium.org
79a9eaf950 Don't use LOG() from platform.
All places that use OS::Allocate either CHECK() that the result is non-NULL,
or use a reasonable fallback if they can't mmap memory.

BUG=none
R=mstarzinger@chromium.org
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-12 14:11:27 +00:00