Commit Graph

12084 Commits

Author SHA1 Message Date
mstarzinger@chromium.org
883a5c803c Remove obsolete distance switch in SubStringStub::Generate.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 16:03:55 +00:00
ulan@chromium.org
31493412c4 Do not update survival rate if the new space size is zero.
BUG=v8:2333
LOG=N
R=hpayer@chromium.org

Review URL: https://chromiumcodereview.appspot.com/48443002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 15:25:21 +00:00
mstarzinger@chromium.org
9f4591c368 Add ability to disable inline bump-pointer allocation.
R=ulan@chromium.org, yurys@chromium.org
TEST=cctest/test-heap/DisableInlineAllocation

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 15:14:37 +00:00
machenbach@chromium.org
eef8694a7e [Sheriff] Revert "Add support for keyed-call on arrays of fast elements"
This reverts commit r17746 for breaking layout tests.

TBR=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 15:00:13 +00:00
yangguo@chromium.org
fe0987c98d Remove unused LoadNumber* from ARM macro assembler.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 14:15:52 +00:00
yangguo@chromium.org
34c830c086 Fix duplicate check in DependentCode::Insert.
R=ulan@chromium.org
BUG=318454

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17747 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 14:14:11 +00:00
verwaest@chromium.org
607a175cbc Add support for keyed-call on arrays of fast elements
R=danno@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23537067

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 13:46:18 +00:00
yurys@chromium.org
c7b1b79e4d This is the exact copy of r17365 which was reverted in r17488 due to memory corruption. The root cause for the memory corruption - missing check for bump pointer limit before storing filler map must be addressed in r17626 where allocation hooks were removed from the generated code and left only in the runtime.
This is initial implementation of allocation profiler.

Whenever new object allocation is reported to the HeapProfiler and allocation tracking is on we will capture current stack trace, add it to the collection of the allocation traces (a tree) and attribute the allocated size to the top JS function on the stack.

Format of serialized heap snapshot is extended to include information about recorded allocation stack traces.

This patch is r17301 plus a fix for the test crash in debug mode. The test crashed because we were traversing stack trace when just allocated object wasn't completely configured, in particular the map pointer was incorrect. Invalid Map pointer broke heap iteration required to find Code object for a given pc during stack traversal. The solution is to insert free space filler in the newly allocated block just before collecting stack trace.

BUG=chromium:277984,v8:2949
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 12:13:26 +00:00
mvstanton@chromium.org
3cf157b43b Inline zero argument array constructor.
patch from issue 54583003 (dependent code).

Zero arguments - very easy

1 argument - three special cases:
  a) If length is a constant in valid array length range,
     no need to check it at runtime.
  b) respect DoNotInline feedback on the AllocationSite for
     cases that the argument is not a smi or is an integer
     with a length that should create a dictionary.
  c) if kind feedback is non-holey, and length is non-constant,
     we'd have to generate a lot of code to be correct.
     Don't inline this case.

N arguments - one special case:
  a) If a deopt ever occurs because an input argument isn't
     compatible with the elements kind, then set the
     DoNotInline flag.

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 12:05:09 +00:00
verwaest@chromium.org
f6af4e19f5 Avoid integer overflow in CopyMap.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/63173023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 11:56:03 +00:00
dslomov@chromium.org
230d5bf3af Runtime CHECK for overflow in NewTypedArray.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 11:52:24 +00:00
dslomov@chromium.org
aefa2a2161 Reland "Harden NumberToSize against overflows."
The callers to NumberToSize are supposed to validate the number, but
this adds a last line of defense.

TBR=jkummerow@chromium.org, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 11:40:32 +00:00
dslomov@chromium.org
fe70e2d694 Revert "Harden NumberToSize against overflows."
This reverts commit r17733 for breaking Linux build.

TBR=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 11:19:30 +00:00
dslomov@chromium.org
10138add57 Harden NumberToSize against overflows.
The callers to NumberToSize are supposed to validate the number, but
this adds a last line of defense.

R=jkummerow@chromium.org, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 11:14:06 +00:00
machenbach@chromium.org
37dcc41d29 Prepare push to trunk. Now working on version 3.23.5.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 10:54:36 +00:00
yangguo@chromium.org
b1fd56dd7c Magic fix for Math.sin/cos.
It turns out that Sunspider 1.0's 3d-morph verifies that the floating
point error must start with 6.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 10:11:06 +00:00
danno@chromium.org
28ed69b8fb Fix overflow in TypedArray initialization function
BUG=chromium:319120
TEST=test/mjsunit/regress/regress-319120.js
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 06:20:48 +00:00
plind44@gmail.com
cd7a1c740a MIPS: Simplify behavior of code stubs that accept a variable number of stack arguments in addition to their parameters.
Port r17680 (cc0b972)

Original commit message:
Before, we'd add a special
variable to the environment with the value of a register with the
number of arguments. Now, that register just appears as a parameter to
the code stub.

BUG=
R=mvstanton@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 18:23:42 +00:00
mvstanton@chromium.org
026c5507bd Make HForceRepresentation an idef.
An optimization in the array constructor wasn't firing because the code
would check for constant values, failing to find them through
intervening HForceRepresentation instructions. Repaired this site. A
follow-on CL will provide a better way of making decisions based on
constant HValues.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 17:03:11 +00:00
dslomov@chromium.org
e4ddf3ca48 Remove boilerplate code in DataView getter/setter implementations
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 16:11:36 +00:00
yangguo@chromium.org
8769c92bc9 Slight change to Math.sin approximation.
This is again to make sunspider's weird result verification happy.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 16:10:03 +00:00
rmcilroy@chromium.org
82d7855748 Fix shared library build after r17696
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 15:32:02 +00:00
rmcilroy@chromium.org
96b18590fd Enable physical memory argument to be passed as an argument to ConfigureResourceConstraintsForPlatform.
BUG=312241
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 14:05:06 +00:00
machenbach@chromium.org
f903c0fc9a Prepare push to trunk. Now working on version 3.23.4.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 12:19:42 +00:00
rossberg@chromium.org
67edfbaef8 Fix warnings
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 12:18:52 +00:00
yangguo@chromium.org
7206330260 Change table size for trigonometric functions.
Sunspider verifies floating point results to the last bit, so this is to
make sure that we return the expected result.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 10:44:28 +00:00
rossberg@chromium.org
cec8383cff Provide private symbols through internal APIs
Adds a notion of private symbols, mainly intended for internal use, especially, self-hosting of built-in types that would otherwise require new C++ classes.

On the JS side (i.e., in built-ins), private properties can be created and accessed through a set of macros:

  NEW_PRIVATE(print_name)
  HAS_PRIVATE(obj, sym)
  GET_PRIVATE(obj, sym)
  SET_PRIVATE(obj, sym, val)
  DELETE_PRIVATE(obj, sym)

In the V8 API, they are accessible via a new class Private, and respective HasPrivate/Get/Private/SetPrivate/DeletePrivate methods on calss Object.

These APIs are designed and restricted such that their implementation can later be replaced by whatever ES7+ will officially provide.

R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 10:34:06 +00:00
mvstanton@chromium.org
9d6dddb9ae Simplify behavior of code stubs that accept a variable number of stack
arguments in addition to their parameters. Before, we'd add a special
variable to the environment with the value of a register with the
number of arguments. Now, that register just appears as a parameter to
the code stub.

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 10:07:04 +00:00
palfia@homejinni.com
93c6ba639b MIPS: Fix usage of EmitBranch in compare-minus-zero-and-branch.
Port r17669 (132efad)

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-13 02:56:30 +00:00
plind44@gmail.com
6b461c7f15 MIPS: Fix build after r17654.
FullCodeGenerator::EmitMathFloor(CallRuntime* expr) function is not used anywhere and breaks the build.

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 19:40:56 +00:00
plind44@gmail.com
e23ac61f60 MIPS: Introduce %_IsMinusZero.
Port r17639 (45b8a52)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 19:05:38 +00:00
yangguo@chromium.org
108538f151 Fix usage of EmitBranch in compare-minus-zero-and-branch.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 17:18:05 +00:00
jkummerow@chromium.org
cbdd896345 Revert "linux: use CLOCK_{REALTIME,MONOTONIC}_COARSE"
This reverts r17642 (and follow-up fix r17644) for crashing the Chrome sandbox.

TBR=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 17:10:30 +00:00
mstarzinger@chromium.org
102950d7a3 Remove dead FixedSpace class from the spaces hierarchy.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17667 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 16:36:14 +00:00
plind44@gmail.com
33f6db6a98 MIPS: Add initial hydrogenized NewStringAddStub.
Port r17635 (14180b1)

Original commit message:
The new stub is enabled via the --new-string-add flag, which is
disabled by default. For now, it's only a stripped down version
of the native StringAddStub, it's still work-in-progress.

BUG=v8:2990
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 16:24:13 +00:00
yangguo@chromium.org
41db9af665 Fix implementation of compare-minus-zero-and-branch on ia32 and x64.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17657 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 15:11:06 +00:00
yangguo@chromium.org
e83fd01ce6 Reland "Implement Math.sin, cos and tan using table lookup and spline interpolation."
This relands r17594 with necessary fixes.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17654 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 14:43:18 +00:00
yangguo@chromium.org
b2df9bca3f Use %_IsMinusZero where applicable to replace hackery.
R=jarin@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 14:20:53 +00:00
mstarzinger@chromium.org
d8e85bf0e0 Remove dead Space::ReserveSpace implementations.
R=ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 14:15:29 +00:00
bmeurer@chromium.org
0f5a524bcf CLOCK_REALTIME is 0 on Linux, use -1 for invalid clock id.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 12:30:59 +00:00
bmeurer@chromium.org
a20330e846 linux: use CLOCK_{REALTIME,MONOTONIC}_COARSE
R=bmeurer@chromium.org

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

Patch from Ben Noordhuis <info@bnoordhuis.nl>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 12:18:35 +00:00
jkummerow@chromium.org
6aad7fb992 Fix compilation with GCC 4.8
BUG=v8:2767,v8:2149
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17641 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 12:09:38 +00:00
yangguo@chromium.org
df9665032e Introduce %_IsMinusZero.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 11:53:13 +00:00
jochen@chromium.org
7df10557a5 Add explicit Isolate parameter to External::New
We can't deprecate the non-Isolate version yet but soon will.

R=svenpanne@chromium.org, svenpanne@google.com
BUG=266838

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 11:44:58 +00:00
bmeurer@chromium.org
6f75e92902 Add initial hydrogenized NewStringAddStub.
The new stub is enabled via the --new-string-add flag, which is
disabled by default. For now, it's only a stripped down version
of the native StringAddStub, it's still work-in-progress.

BUG=v8:2990
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 10:21:08 +00:00
svenpanne@chromium.org
51d637a073 Refine CopyBytes macro instruction in IA32/X64
Use DWORD/QWORD copy for more short cases

BUG=
R=svenpanne@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 09:08:51 +00:00
machenbach@chromium.org
5fcc956a98 Prepare push to trunk. Now working on version 3.23.3.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 09:03:08 +00:00
svenpanne@chromium.org
22b9adce49 Have mercy and don't kill the Context::Scope immediately after birth.
BUG=v8::2994
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-12 07:03:59 +00:00
mstarzinger@chromium.org
8f611593a4 Simplify current inline allocation tracking mechanism.
R=yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-11 18:00:52 +00:00
mstarzinger@chromium.org
a6795ea92e Move old-space allocation tracking into Heap::AllocateRaw.
R=yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-11 17:46:08 +00:00
mstarzinger@chromium.org
d5cb83f4aa Fix invalid reuse of weak global handle in GetScriptWrapper.
This fixes a direct usage of a weak global handle in GetScriptWrapper
that just casted it to a strong local handle, while a subsequent GC
might clear it. Handlepocalypse anyone?

R=machenbach@chromium.org
BUG=v8:2988
TEST=mjsunit/regress/regress-2988

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-11 16:27:36 +00:00
yangguo@chromium.org
7fd7bbdcad Fix potential assertion failure.
R=mvstanton@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-11 15:28:47 +00:00
yangguo@chromium.org
c304afe54d Fix potential assertion failure in ConvertCase.
IsOneByteRepresentationUnderneath requires the string to be flat, which is not
guaranteed in this case.  Using IsOneByteRepresentation is sufficient here.

R=mvstanton@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-11 14:51:56 +00:00
bmeurer@chromium.org
f681608d32 Revert "Use CLOCK_MONOTONIC_COARSE and CLOCK_REALTIME_COARSE on Linux if available."
This reverts commit r17611 for breaking the host toolchain build
for Android (missing clock_gettime() and clock_getres() functions).

TBR=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-11 08:46:45 +00:00
bmeurer@chromium.org
a1d339a389 Remove unused ParserMessage class.
R=bmeurer@chromium.org

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

Patch from Adrian Perez de Castro <aperez@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-11 08:07:37 +00:00
bmeurer@chromium.org
e2f552c342 Use CLOCK_MONOTONIC_COARSE and CLOCK_REALTIME_COARSE on Linux if available.
R=bmeurer@chromium.org

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

Patch from Ben Noordhuis <info@bnoordhuis.nl>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-11 07:49:18 +00:00
palfia@homejinni.com
b9ce668437 Set at least PTHREAD_STACK_MIN stack size when creating threads.
This patch makes sure, that the stack size of the new threads are never
less than PTHREAD_STACK_MIN, otherwise the pthread_attr_setstacksize()
function sets the default stack size (8MB), which leads to failure
in the BootUpMemoryUse test.

TEST=cctest/test-mark-compact/BootUpMemoryUse
BUG=
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17610 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-09 00:14:21 +00:00
plind44@gmail.com
c4a4c95e32 MIPS: Reland 17588: Add signed/unsigned 8-bit and 16-bit Representations to Crankshaft.
Port r17606 (bc5ef55)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 19:35:37 +00:00
rafaelw@chromium.org
4bc568b77a Revert "Reland [Object.observe] Don't force normalization of elements for observed objects"
TBR=danno
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 19:33:05 +00:00
rafaelw@chromium.org
ca8f947664 Reland [Object.observe] Don't force normalization of elements for observed objects
Original Issue: https://codereview.chromium.org/29353003/

TBR=danno
BUG=v8:2946

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 19:12:43 +00:00
danno@chromium.org
6fdec542bb Reland 17588: Add signed/unsigned 8-bit and 16-bit Representations to Crankshaft
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 17:35:58 +00:00
mstarzinger@chromium.org
8830bba1ef Move new-space allocation tracking into Heap::AllocateRaw.
R=yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 17:23:25 +00:00
mstarzinger@chromium.org
9babb0a7e7 Make runtime new-space allocations go through Heap::AllocateRaw.
R=ulan@chromium.org, ishell@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 17:09:14 +00:00
rafaelw@chromium.org
c824bfb44a Revert "[Object.observe] Don't force normalization of elements for observed objects"
Broke ARM build

TBR=danno
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 15:36:22 +00:00
rafaelw@chromium.org
d462dca64a [Object.observe] Don't force normalization of elements for observed objects
BUG=v8:2946
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 14:55:13 +00:00
ulan@chromium.org
bc4ad49b25 Do not add values to HGraph in Lithium.
Lithium uses indexes after the maximium value ID in the HGraph as indexes
of virtual registers and assumes that the maximum value ID does not change.

The IsStandardConstant and GetConstantXX functions could add constants to
HGraph, which aliased virtual registers with real values. This could confuse
the register allocator to think that a value in a virtual register is tagged
and to incorrectly set it in the pointer map.

BUG=298269
TEST=mjsunit/regress/regress-298269.js
R=verwaest@chromium.org

Review URL: https://chromiumcodereview.appspot.com/66693002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 14:16:34 +00:00
verwaest@chromium.org
af66a0b300 Revert "Add signed/unsigned 8-bit and 16-bit Representations to Crankshaft"
Revert "Fix ARM build"
Revert "Fix ARM build (again)"

TBR=danno@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/66553004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 13:54:34 +00:00
yangguo@chromium.org
9f104a1a3e Revert "Implement Math.sin, cos and tan using table lookup and spline interpolation."
This reverts commit r17594.

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 13:44:27 +00:00
yangguo@chromium.org
063b7c4ebb Implement Math.sin, cos and tan using table lookup and spline interpolation.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 13:10:39 +00:00
danno@chromium.org
1222255b9c Add signed/unsigned 8-bit and 16-bit Representations to Crankshaft
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 11:50:23 +00:00
yangguo@chromium.org
94eb5904a6 Fix error message wording when instanceof throws.
R=bmeurer@chromium.org
BUG=82797, v8:1593

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 11:45:56 +00:00
yangguo@chromium.org
fc1dadce9b Use register allocator for context on x64.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 10:58:51 +00:00
svenpanne@chromium.org
ba24c3a79f Removed dead function V8::FillHeapNumberWithRandom.
Removed a useless test case along the way.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 10:55:01 +00:00
jkummerow@chromium.org
a556b7c99b Use nearlabel AFAP in lithium codegen
BUG=
R=jkummerow@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 10:52:07 +00:00
machenbach@chromium.org
ed0d2c5cd2 Prepare push to trunk. Now working on version 3.23.2.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 09:10:19 +00:00
bmeurer@chromium.org
3f1fc2385a Remove unused ValueInfo struct
BUG=
R=bmeurer@chromium.org

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

Patch from Adrian Perez de Castro <aperez@igalia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 07:45:15 +00:00
palfia@homejinni.com
dc8eb9a0c8 MIPS: Proper support for deopt_every_n_times option on the x64 and ARM architectures.
Port r17564 (b928ddeb)

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-08 00:47:34 +00:00
palfia@homejinni.com
56ca009108 MIPS: Add new HSeqStringGetChar instruction.
Port r17565 (dce7927c)

Original commit message:
This instruction is required for copying characters from sequential
strings in the hydrogenized StringAddStub.

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 21:59:45 +00:00
plind44@gmail.com
eec6ed57fb MIPS: Turn Load/StoreGlobal into a handler.
Port r17550 (3e0015e)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 20:11:18 +00:00
plind44@gmail.com
bd146ae499 MIPS: Refine CountOperation of FullCodeGen.
Port r17547 (a4b59e4)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 19:28:58 +00:00
vegorov@chromium.org
adae3f77ec Allow redirecting disassembly and deoptimization traces into a file.
This is controlled by two flags:

--redirect_code_traces
--redirect_code_traces_to=<filename>

When redirection is enabled but --redirect_code_traces_to is not specified traces are written to a file code-<pid>-<isolate>.asm. This mangling scheme matches hydrogen.cfg and allows easy discovery of compilation artifacts in a multi-V8 environment (e.g. when compilation is traced from inside Chromium).

D8 defines --redirect_code_traces_to=code.asm similar to hydrogen.cfg redirection.

BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 16:35:27 +00:00
yangguo@chromium.org
d538ff90b5 Disable concurrent osr when concurrent recompilation is disabled.
Also introduce a flag for a quick check that concurrency is on.

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 16:25:20 +00:00
mstarzinger@chromium.org
59536de77d Make HCapturedObjects non-deletable for DCE.
R=jkummerow@chromium.org
BUG=v8:2987
TEST=mjsunit/regress/regress-2987

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 16:07:19 +00:00
dslomov@chromium.org
f3acd446ad Speed up typed array constructors.
- Avoid calls into ToPositiveInteger for valid cases of 'undefined' arguments.
  (Otherwise it calls into runtime).
 - Reduce the checks performed in case offset for TypedArrayFromArrayBuffer
  constructor is called with no offset argument.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 14:56:40 +00:00
yangguo@chromium.org
233b8b4f96 Fix clang debug build.
BUG=
R=rafaelw@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 14:45:17 +00:00
bmeurer@chromium.org
0990f44f00 Add new HSeqStringGetChar instruction.
This instruction is required for copying characters from sequential
strings in the hydrogenized StringAddStub.

BUG=v8:2990
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 13:43:03 +00:00
jarin@chromium.org
363659d7e6 Proper support for deopt_every_n_times option on the x64 and ARM architectures.
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 13:09:48 +00:00
bmeurer@chromium.org
cc5c9e9ae8 Revert "Add new HSeqStringGetChar instruction."
This reverts commit r17562 for invalid usage of movw to load string
characters. Will reland with fix.

TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 13:03:03 +00:00
bmeurer@chromium.org
e2c8e45402 Add new HSeqStringGetChar instruction.
This instruction is required for copying characters from sequential
strings in the hydrogenized StringAddStub.

BUG=v8:2990
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 12:59:35 +00:00
rafaelw@chromium.org
ef0c647c49 Handlify Runtime::SetObjectProperty
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 12:35:57 +00:00
mstarzinger@chromium.org
acac89008d Defer allocation of constant literal properties.
This moves building of constant properties and elements arrays for all
materialized literals into the compiler. The parser no longer allocates
while parsing ObjectLiteral and ArrayLiteral expressions.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 12:08:37 +00:00
verwaest@chromium.org
1813231c97 Cleanup stub-cache's obsolete ComputeLoad/Store interface.
R=ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/64023003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 10:52:41 +00:00
verwaest@chromium.org
ff60216196 Remove DisallowHeapAllocation requirement now that the target() is cached on the IC.
R=ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/61773004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 10:18:56 +00:00
verwaest@chromium.org
442e77d536 Turn Load/StoreGlobal into a handler.
BUG=
R=ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/26968004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 10:17:13 +00:00
haitao.feng@intel.com
e7ef18110d Refine CountOperation of FullCodeGen
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 09:34:52 +00:00
yangguo@chromium.org
eb550c6da4 Fix y-umlaut to uppercase.
R=dcarney@chromium.org
BUG=v8:2984

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 09:08:34 +00:00
svenpanne@chromium.org
c44a4d383c Removed useless getter/setter.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 08:23:09 +00:00
haitao.feng@intel.com
6e0ccacc7a Refactor loading a pointer and loading an integer64 into a register instructions for X64
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 08:14:27 +00:00
svenpanne@chromium.org
4ac37914ec Refactored ObjectSerializer::VisitFoo functions.
Tiny superficial cleanup to make the similarities more visible.
Removed a few useless assertions on the way.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17539 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 07:37:28 +00:00
svenpanne@chromium.org
4efb05dfe4 Fix WIN64 build
Review URL: https://codereview.chromium.org/63703002

Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 07:17:57 +00:00
haitao.feng@intel.com
d3c6c4ce0c Move movq(Register, ExternalReference) into X64 MacroAssembler
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-07 02:08:53 +00:00
plind44@gmail.com
64250b8117 MIPS: Improve implementation of HSeqStringSetChar.
Port r17521 (c51c75e)

Original commit message:
This improves the generated code for HSeqStringSetChar across
all platforms, taking advantage of constant operands whenever
possible. It also drops the unused DefineSameAsFirst constraint
for the register allocator on x64 and ia32, where it caused
unnecessary spills when the string operand was live across the
HSeqStringSetChar instruction.

A new GVN flag StringChars is introduced to express dependencies
between HSeqStringSetChar, HStringCharCodeAt and the upcoming
HSeqStringGetChar (the GVNFlags type is now 64bit in size).

Also improves the test case.

TEST=mjsunit/string-natives
BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 23:52:37 +00:00
plind44@gmail.com
60067c9a33 MIPS: Correct handling of arrays with callbacks in the prototype chain.
Port r17525 (55b95f3)

Original commit message:
Our generic KeyedStoreIC doesn't handle the case when a callback is
set on array elements in the prototype chain of the object, nor do
we recognize that we need to avoid the monomorphic case if these
callbacks exist.

This CL addresses the issue by looking for dictionary elements in
the prototype chain on IC misses and crankshaft element store
instructions. When found, the generic IC is used. The generic IC is
changed to go to the runtime in this case too.

In general, keyed loads are immune from this problem because they
won't return the hole: discovery of the hole goes to the runtime where
the callback will be found in the prototype chain. Double array loads
in crankshaft can return the hole but only if the prototype chain is
unaltered (we will catch such alterations).

Includes the following patch as well (already reviewed by bmeurer):
Performance regression found in test regress-2185-2.js. The problem was
that the bailout method for TransitionAndStoreStub was not performing
the appropriate transition.

(Review URL for the ElementsTransitionAndStoreIC_Miss change:
https://codereview.chromium.org/26911007)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 21:22:41 +00:00
verwaest@chromium.org
c809433941 Revert "Landing https://codereview.chromium.org/40133004 for mnita@google.com." due to test failures.
R=ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/62563002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 18:19:26 +00:00
cira@chromium.org
ef05eef033 Landing https://codereview.chromium.org/40133004 for mnita@google.com.
Implements ES6 String.prototype.normalize method.

BUG=v8:2943
TEST=Unit tests for "real life" use cases, edge cases, various types of normalization.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 17:27:31 +00:00
mstarzinger@chromium.org
3e9786ef24 Add three string constants from parser to the root-set.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 17:05:50 +00:00
rafaelw@chromium.org
1a74e27994 Handlify ForceSetObjectProperty
Note that I've left the layering as is to make the diffs clear. Is it worth moving ForceSetObjectProperty to objects.cc? This code is clearly implementing part of the DefineOrRedefine steps from the spec, but it's still odd that it lives in Runtime. Note that handles.cc exposes a ForceSetProperty which just performs a CALL_HEAP_FUNCTION on the Runtime::ForceSetObjectProperty -- which is exposed to the api as v8::Object::ForceSet

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 16:32:47 +00:00
dslomov@chromium.org
9ae4f9c2ca Ensure that typed array constructors are crankshaftable.
Also, do not allocate sub-closures for every call to typed array constructor.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 16:28:38 +00:00
yangguo@chromium.org
b8a77348b2 Age ICs on context dispose notification.
R=ulan@chromium.org
BUG=309723

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 15:47:05 +00:00
mvstanton@chromium.org
cec8548d0e Correct handling of arrays with callbacks in the prototype chain.
Our generic KeyedStoreIC doesn't handle the case when a callback is
set on array elements in the prototype chain of the object, nor do
we recognize that we need to avoid the monomorphic case if these
callbacks exist.

This CL addresses the issue by looking for dictionary elements in
the prototype chain on IC misses and crankshaft element store
instructions. When found, the generic IC is used. The generic IC is
changed to go to the runtime in this case too.

In general, keyed loads are immune from this problem because they
won't return the hole: discovery of the hole goes to the runtime where
the callback will be found in the prototype chain. Double array loads
in crankshaft can return the hole but only if the prototype chain is
unaltered (we will catch such alterations).

Includes the following patch as well (already reviewed by bmeurer):
Performance regression found in test regress-2185-2.js. The problem was
that the bailout method for TransitionAndStoreStub was not performing
the appropriate transition.

(Review URL for the ElementsTransitionAndStoreIC_Miss change:
https://codereview.chromium.org/26911007)

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 15:45:43 +00:00
bmeurer@chromium.org
0112cb28e7 Another fix for windows breakage after r17521.
TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 13:42:00 +00:00
bmeurer@chromium.org
80728e6f40 Fix windows build after r17521.
TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 13:20:14 +00:00
bmeurer@chromium.org
980739a29c Improve implementation of HSeqStringSetChar.
This improves the generated code for HSeqStringSetChar across
all platforms, taking advantage of constant operands whenever
possible. It also drops the unused DefineSameAsFirst constraint
for the register allocator on x64 and ia32, where it caused
unnecessary spills when the string operand was live across the
HSeqStringSetChar instruction.

A new GVN flag StringChars is introduced to express dependencies
between HSeqStringSetChar, HStringCharCodeAt and the upcoming
HSeqStringGetChar (the GVNFlags type is now 64bit in size).

Also improves the test case.

TEST=mjsunit/string-natives
R=mstarzinger@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 13:09:22 +00:00
rafaelw@chromium.org
13f722cae4 [Object.observe] rename intrinsic change record types for consitency.
Note the spec now reflects the updated naming:

http://wiki.ecmascript.org/doku.php?id=harmony:observe_spec_changes

R=rossberg@chromium.org, rossberg
BUG=v8:2940

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 12:14:24 +00:00
verwaest@chromium.org
69ad98223a Prepare push to trunk. Now working on version 3.23.1.
R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/60513010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 12:01:03 +00:00
mstarzinger@chromium.org
88be0606cf Add support for tracking NotExectuted/ExecutedOnceCodeAge's when --track_gc_object_stats flag is set.
BUG=None
R=mstarzinger@chromium.org

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 09:29:09 +00:00
bmeurer@chromium.org
3c8cee2f8d Add isolate parameter to SetResourceConstraints, and deprecate version which depends on current isolate.
BUG=None
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-06 06:59:32 +00:00
plind44@gmail.com
b45bb17547 MIPS: Avoid using dd() in Prologue when --optimize-for-size.
Port: r17485 (0d82025)

Original commit message:
When --optimize-for-size is true, the prologue generation outputs the
pre-aging code stub address directly to the instruction stream. Previously
this was done using dd() which failed if there was any pending constant
pool entries left to be written. This CL introduces an emit_code_stub_address()
for this purpose instead.

BUG=v8:2968

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 20:48:35 +00:00
plind44@gmail.com
4e4169d599 MIPS: Try to use Push instead of push sequences whenever possible.
Port r17466 (e519285)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 19:56:40 +00:00
plind44@gmail.com
ebc5445912 MIPS: Use loop to initialize locals when optimizing for size.
Port r17465 (9f3f3d1)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 17:52:47 +00:00
rafaelw@chromium.org
9f80c8d72e Remove unused IdempotentPointerToHandleCodeTrampoline
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 17:45:42 +00:00
yangguo@chromium.org
371265eec4 Revert "Handlify concat string and substring."
This reverts r17490.

R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 15:36:15 +00:00
rafaelw@chromium.org
b9883beaba Remove SetLocalPropertiesIgnoreAttributesTrampoline
BUG=v8:2877
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 15:33:14 +00:00
svenpanne@chromium.org
c9f55136ad Add back assertion SetResourceConstraints.
This reverts commit f7f04272208d565020b528145ce6cef0f89c7079.

BUG=312233
R=svenpanne@chromium.org

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

Patch from Ross Mcilroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 14:24:57 +00:00
svenpanne@chromium.org
43eb7076a1 Simplified Assembler::target_pointer_address_at.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 14:22:12 +00:00
dslomov@chromium.org
6179ebbf42 Add simple inline macros to js2c and use that for typed array constructors.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 14:08:03 +00:00
yangguo@chromium.org
23d085c691 Handlify concat string and substring.
R=ulan@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 14:07:07 +00:00
rafaelw@chromium.org
841dd1cbe2 Remove calls to SetLocalPropertyIgnoreAttributesTrampoline from accessors.cc
BUG=v8:2877
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:47:51 +00:00
bmeurer@chromium.org
b8660f2091 Revert "Record allocation stack traces".
This reverts commit r17365 for memory corruption. The issues
are most probably related to storing a filler map without
checking the bump pointer first, and traversing the stack
when called from within a stub (or builtin), while the code
assumes that it's called from a JS function.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:46:11 +00:00
mstarzinger@chromium.org
ae8824e5de Handlify Heap::AllocateFunctionPrototype method.
R=rossberg@chromium.org
BUG=v8:2877

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:34:14 +00:00
loislo@chromium.org
a4b4cfdc58 HeapProfiler: provide human readable names for code objects.
It is very hard to understand the structure of the heap even for about:blank page
because code objects in the heap have no names. This patch propagates the names
for Code::STUB and Code::BUILTIN code objects.
Also it assign function names from SharedFunctionInfo to the code objects.

BUG=
R=alph@chromium.org, svenpanne@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:23:03 +00:00
machenbach@chromium.org
6069b062ae Avoid using dd() in Prologue when --optimize-for-size.
When --optimize-for-size is true, the prologue generation outputs the
pre-aging code stub address directly to the instruction stream.  Previously
this was done using dd() which failed if there was any pending constant
pool entries left to be written.  This CL introduces an emit_code_stub_address()
for this purpose instead.

BUG=v8:2968
R=bmeurer@chromium.org

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:19:14 +00:00
yangguo@chromium.org
a5ed9a71c8 Correctly load message from an Error object.
R=mstarzinger@chromium.org
BUG=306220

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:04:51 +00:00
mstarzinger@chromium.org
ea89d6bd29 Handlify Heap::AllocateInitialMap method.
R=rossberg@chromium.org
BUG=v8:2877

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 12:32:03 +00:00
rafaelw@chromium.org
e78081ca1c Make Object.freeze/seal/preventExtensions observable
Note: spec has been updated here: http://wiki.ecmascript.org/doku.php?id=harmony:observe_spec_changes.

R=rossberg@chromium.org, rossberg
BUG=v8:2975,v8:2941

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 12:25:32 +00:00
mstarzinger@chromium.org
5267d7b884 Introduce JSFunction::EnsureHasInitialMap method.
This change enforces explicit allocation of the initial map for each
JSFunction to introduce a proper layering between the JSFunction class
and the Heap class. A follow-up change will then handlify the two
functions AllocateInitialMap and AllocateFunctionPrototype.

R=rossberg@chromium.org
BUG=v8:2877

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 12:11:27 +00:00
svenpanne@chromium.org
74ad230a8e Introduce orps for IA32/X64
BUG=
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 12:04:46 +00:00
ulan@chromium.org
0fd7c2a78a Add counters to track the maximum amount of memory committed by the heap.
BUG=None
R=bmeurer@chromium.org, ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/29203003

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 11:59:42 +00:00
rafaelw@chromium.org
ada13dfc3f Remove calls to JSObject::SetLocalPropertyIgnoreAttributesTrampoline within objects.cc
This includes handlifing:
-SetHiddenPropertiesHashTable
-ObjectHashSet::Add/Remove
-ObjectHashTable::Put

And splitting the following methods which previously took "allow creation" enum arguments to into side-effect-free getters and GetOrCreate*-handlfied getters.

-GetHash (now GetHash & handlified GetOrCreateHash)
-GetIdentityHash (now GetIdentityHash & handlified GetOrCreateIdentityHash)
-GetHiddenPropertiesHashTable (now GetHiddenPropertiesHashTable & handlified GetOrCreateaHiddenPropertiesHashTable)

BUG=v8:2877
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 11:47:11 +00:00
rafaelw@chromium.org
4a8319c7c6 [Object.observe] Implement implicit notification from performChange
R=arv@chromium.org, rossberg@chromium.org, rossberg
BUG=v8:2942

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 11:23:08 +00:00
jkummerow@chromium.org
d0c5614f9d Proper fix for the issue exposed by r17459
This reverts r17462 and instead fixes StubCache::ComputeLoadNonexistent by replacing s/IsGlobalObject/IsJSGlobalObject/ there.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 11:01:31 +00:00
svenpanne@chromium.org
dc8c314084 Make snapshots reproducible.
To keep the structure of the serializer more or less untouched, we use
some ingenious Corry-approved(TM) 3-step technology (a.k.a. "hack"):

   * Create copies of code objects.
   * Wipe out all absolute addresses in these copies.
   * Write out the cleaned copies instead of the originals.

In conjunction with --random-seed, our snapshots are reproducible now.

BUG=v8:2885
R=bmeurer@chromium.org, erik.corry@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 10:14:48 +00:00
svenpanne@chromium.org
82b8e23bc1 Introduce raw accessors for type_feedback_info.
This pure refactoring is needed for another upcoming CL.

Note that the actual names are still a bit confusing, because this is
still a kind of swiss-army-knife-field. :-/

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17472 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 10:05:03 +00:00
mstarzinger@chromium.org
5fce5dc124 Bump iteration count for escape analysis.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:58:49 +00:00
mvstanton@chromium.org
ee6e52f292 Remove CreateArrayLiteralShallow, as it's fundamentally the same now as
CreateArrayLiteral.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:54:59 +00:00
svenpanne@chromium.org
bb010f8ad0 Removed RelocInfo::target_object_address() and reconstructed_obj_ptr_.
Depends on https://codereview.chromium.org/46583006/ and has similar reasoning behind it.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:40:36 +00:00
mstarzinger@chromium.org
8a1d92f5c2 Fix double-boxing issue when materializing captured objects.
R=verwaest@chromium.org
TEST=mjsunit/compiler/escape-analysis-representation

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17468 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:32:39 +00:00
svenpanne@chromium.org
d1de1f9808 Refactored EXTERNAL_REFERENCE handling.
Previously, the result of target_reference_address() could only be
read, writing to it would have had an architecture-dependent effect,
e.g. writing into the code on ia32, a no-op on arm, etc.

This refactoring-only CL turns this into a simple getter, making it
impossible to use incorrectly.

More to come...

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:22:35 +00:00
bmeurer@chromium.org
d3ad5be781 Try to use STMDB/LDMIA instead of LDR/STR sequences whenever possible.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 09:00:00 +00:00
bmeurer@chromium.org
011ca83783 ARM: Use loop to initialize locals when optimizing for size.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17465 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 08:58:34 +00:00
bmeurer@chromium.org
537100336c Do Else() first for JoinContinuation() in IfBuilder.
This is required to make sure that environments are correct
for joined continuations.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17464 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 08:56:48 +00:00
plind44@gmail.com
b9b2c456b7 MIPS: Handle constants in new space by making macro-assembler smarter.
Port r17376 (9af4f51)

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 01:31:22 +00:00
jkummerow@chromium.org
0400bc45d9 Restore intended LoadIC behavior for JSBuiltinsObject
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-04 16:39:58 +00:00
jkummerow@chromium.org
2ebfd6e90e Add missing negative dictionary lookup to NonexistentHandlerFrontend
BUG=v8:2980
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17459 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-04 14:14:09 +00:00
mstarzinger@chromium.org
4fbc96ff78 Remove dead return path from JSObject::GetHiddenPropertiesHashTable.
R=verwaest@chromium.org, rafaelw@chromium.org
TEST=cctest/test-api

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-04 12:00:39 +00:00
plind44@gmail.com
010d68cfd3 MIPS: Fix uint32-to-smi conversion in Lithium.
Port r17441 (f1968f4)

BUG=chromium:309623
TEST=mjsunit/regress/regress-crbug-309623
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 14:32:08 +00:00
machenbach@chromium.org
342305d1da Prepare push to trunk. Now working on version 3.23.0.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 13:29:35 +00:00
jkummerow@chromium.org
6f27e4b377 Avoid pre-aging when debugger is active
BUG=None
R=bmeurer@chromium.org

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 11:43:23 +00:00
jkummerow@chromium.org
316271fc35 Fix uint32-to-smi conversion in Lithium
BUG=chromium:309623
R=vegorov@google.com, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-31 10:18:51 +00:00
yangguo@chromium.org
3f1a833524 Do not remove HAdd with zero if the other operand is a double.
The other operand might be minus zero, and -0 + 0 = +0

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-30 10:22:52 +00:00
jkummerow@chromium.org
9e88c23cbf ia32: Fix comparisons of two constant double operands when exactly one of them is in new space.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-29 14:34:07 +00:00
jkummerow@chromium.org
e8a3044f2d Temporarily allow HistogramTimerScopes to be nested
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-29 11:44:04 +00:00
mvstanton@chromium.org
31865699ac Function ElementsAreSafeToExamine was undefined in release heap verify.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-29 07:56:47 +00:00
jkummerow@chromium.org
c377cfaa8e Prepare push to trunk. Now working on version 3.22.24.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 17:59:13 +00:00
jkummerow@chromium.org
ec50a6f33c Work around two ASSERTs that we're hitting now that DEBUG is #defined again
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 17:54:43 +00:00
jkummerow@chromium.org
5b5f2e59dc Return early from BinaryOpIC::Transition when the JS call failed
This avoids an ASSERT failure in Chromium net_unittests.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 16:32:56 +00:00
titzer@chromium.org
eb34e1397a Remove assertion in SetResourceConstraints.
BUG=312233
R=rmcilroy@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 16:17:43 +00:00
titzer@chromium.org
3399bdd289 Temporarily disable calls to OS::TotalPhysicalMemory to avoid ASSERT when running under the Chrome Sandbox.
This CL reverts the behaviour added in r16983 to avoid calling OS::TotalPhysicalMemory
which fails an assert in the Chrome Sandbox.  It reverts the default
ResourceConstraints behaviour to that of V8 before r16983 (i.e., baseing these
values purely on hard-coded checks against 64bit/32bit and Android/non-Android.
This will be reverted once http://crbug.com/312241 has been resolved.

BUG=312241
R=titzer@chromium.org

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 14:54:26 +00:00
svenpanne@chromium.org
19a2e803bb Introduce andps for IA32/X64
replace andpd and pand in Math.abs

BUG=
R=svenpanne@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 10:38:40 +00:00
bmeurer@chromium.org
3e7a1c0455 ARM: Replace branch with conditional store in function prologue.
Use conditional store to replace the receiver with undefined for
strict mode functions and builtins instead of branching code. This
has similar performance characteristics but saves one branch
instruction per strict mode function.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 10:29:57 +00:00
bmeurer@chromium.org
38e198109f Remove unused function MoveBytes().
R=bmeurer@chromium.org

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

Patch from Bangfu Tao <bangfu.tao@samsung.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 09:59:15 +00:00
jkummerow@chromium.org
7856f37259 Rename deprecated __attribute__((no_address_safety_analysis)) to __attribute__((no_sanitize_address))
BUG=chromium:311283
R=glider@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 09:57:15 +00:00
bmeurer@chromium.org
4c49e4e2b5 Cast const char * to const uint8_t *, which removed a unnecessary version of InternalStringToDouble template.
Code size (android arm build for d8):
old d8: 17,479,047 bytes
new d8: 17,445,492 bytes
Total code size saved: 33,555 bytes

R=bmeurer@chromium.org

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

Patch from Bangfu Tao <bangfu.tao@samsung.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 09:39:00 +00:00
mvstanton@chromium.org
93fa1939ce Generalize AllocationSite field access in HObjectAccess.
There are simply becoming too many individual field accessors, and
more are coming.

R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 09:36:49 +00:00
yangguo@chromium.org
6c2233fbaa Fix --hydrogen-filter="-".
SubVector asserts that the vector length is not 0 and fails.

R=bmeurer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-28 09:01:33 +00:00
rafaelw@chromium.org
523851b337 Handlify JSObject::PrepareElementsForSort
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-25 20:42:51 +00:00
mvstanton@chromium.org
a85c825bb9 The Elements pointer in a JSObject can have a filler map instead of a
valid fixed array, iff a gc occurred while allocating a fixed array as
part of array construction. Heap verification needs protection against
examining the elements object in this case.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-25 12:26:47 +00:00
yangguo@chromium.org
7dd2d6c590 Reland "Make Array.prototype.pop throw if the last element is not configurable."
This relands r17346.

R=machenbach@chromium.org
BUG=311164

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-25 11:55:56 +00:00
danno@chromium.org
b7577174b3 Fix release build failures due to --enable-slow-asserts
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-25 11:25:27 +00:00
danno@chromium.org
7339d45a9f Define DEBUG for v8_optimized_debug=2
Thereby ensuring there is only a minimal performance regression vs. NDEBUG (now it's only about 10% slower rather than ~2x).

R=jkummerow@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-25 11:10:28 +00:00
hpayer@chromium.org
f8a4bd7c4e Make top and limit field in AllocationInfo private, assert on non-aligned setting of these fields, and eliminate indirect access over top address on top pointer.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-25 09:58:21 +00:00
bmeurer@chromium.org
266dfe7819 Prepare push to trunk. Now working on version 3.22.23.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-25 09:22:12 +00:00
haitao.feng@intel.com
4ea4cb9462 Introduce MoveDouble to the X64 MacroAssembler
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-25 02:12:17 +00:00
plind44@gmail.com
c042ef360d Enable double alignment for constructed arrays.
2nd (of 3) CL's to ensure complete alignment of FixedDoubleArrays.

TEST=
BUG=
R=hpayer@chromium.org

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

Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 19:01:30 +00:00
mstarzinger@chromium.org
b5627c9ac6 Remove specialized raw Cell and Map allocators.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 16:38:26 +00:00
titzer@chromium.org
517e15b014 Handle constants in new space on arm by making macro-assembler smarter.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 12:40:34 +00:00
bmeurer@chromium.org
56a46e591b Add performance.now() to the d8 shell.
TEST=mjsunit/d8-performance-now
R=hpayer@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=17366

Committed: https://code.google.com/p/v8/source/detail?r=17368

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 12:25:40 +00:00
bmeurer@chromium.org
bef9819190 Revert "Fix shared library build after r17368." and "Add performance.now() to the d8 shell.".
This reverts commit r17372 and r17368 for breaking the shared
library build.

TBR=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 12:16:00 +00:00
bmeurer@chromium.org
93376d8b62 Get rid of unused STRING_ADD_ERECT_FRAME flag.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 12:08:58 +00:00
bmeurer@chromium.org
008b871162 Fix shared library build after r17368.
TBR=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 11:59:09 +00:00
hpayer@chromium.org
2dfaf2aab5 Add code age subtype tracking to --track-gc-object-stats
Adds counters which track the age of code in the heap during a gc if
--track-gc-object-stats is enabled.

 - Splits RecordObjectStats into RecordObjectStats, RecordCodeSubTypeStats and
   RecordFixedArraySubTypeStats.
 - Renames kNoAge to kNoAgeCodeAge to follow other code age enums and enable
   the name to be used in Macro based initialization of the counters.

BUG=None
R=hpayer@chromium.org

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

Patch from Ross McIlroy <rmcilroy@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 10:50:35 +00:00
bmeurer@chromium.org
0a90cab56a Add performance.now() to the d8 shell.
TEST=mjsunit/d8-performance-now
R=hpayer@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=17366

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 10:48:18 +00:00
bmeurer@chromium.org
67b4eb9ac1 Revert "Add window.performance.now() to the d8 shell."
This reverts commit r17366 for breaking the mozilla tests.

TBR=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 10:42:02 +00:00
bmeurer@chromium.org
d07231021e Add window.performance.now() to the d8 shell.
TEST=mjsunit/d8-performance-now
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 09:27:17 +00:00
yurys@chromium.org
a083601e73 Record allocation stack traces
This is initial implementation of allocation profiler.

Whenever new object allocation is reported to the HeapProfiler and allocation tracking is on we will capture current stack trace, add it to the collection of the allocation traces (a tree) and attribute the allocated size to the top JS function on the stack.

Format of serialized heap snapshot is extended to include information about recorded allocation stack traces.

This patch is r17301 plus a fix for the test crash in debug mode. The test crashed because we were traversing stack trace when just allocated object wasn't completely configured, in particular the map pointer was incorrect. Invalid Map pointer broke heap iteration required to find Code object for a given pc during stack traversal. The solution is to insert free space filler in the newly allocated block just before collecting stack trace.

BUG=chromium:277984,v8:2949
R=hpayer@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 09:26:55 +00:00
bmeurer@chromium.org
9b7a5f20a6 Prepare push to trunk. Now working on version 3.22.22.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 09:23:32 +00:00
yangguo@chromium.org
0f564cb1b0 Revert "Make Array.prototype.pop throw if the last element is not configurable."
This reverts commit r17346.

R=bmeurer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 07:48:23 +00:00
plind44@gmail.com
930b8b25bd MIPS: Increase code space first page size due to r17334.
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 07:42:29 +00:00
marja@chromium.org
3f81a55096 Fix r17253.
There's no reason why the setObjectGroupIde / setReferenceFromGroups funcs should've been called twice.

BUG=
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 07:40:31 +00:00
haitao.feng@intel.com
82d28ad2a4 Use PopReturnAddressTo and PushReturnAddressFrom in Generate_MarkCodeAsExecutedOnce builtin function for X64
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 07:38:50 +00:00