Commit Graph

11217 Commits

Author SHA1 Message Date
verwaest@chromium.org
e7b3bb3c81 Replace mapcheck dependency on HStoreNamedField with object.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 17:55:22 +00:00
jkummerow@chromium.org
43bf8f9754 Add source map support to tick processor.
Added a console parameter for source map to the tick processor.
The tickprocesspor reads in the source maps and uses it to output the original filename, line number and column in the profile.
Modified d8 to output column numbers into the log, since this is needed to do source mapping.

R=jkummerow@chromium.org

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

Patch from Daniel Kurka <dankurka@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 17:20:54 +00:00
verwaest@chromium.org
3837ef57d0 Fix dependency of loading the heap-number for a double-field store to be the mapcheck.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 16:31:31 +00:00
jkummerow@chromium.org
7557ca80ba Add --trace-hydrogen-filter flag.
The flag restricts hydrogen.cfg output to functions passing the filter,
similar to what --hydrogen-filter does for optimization in general.

This is useful for investigating large repro cases where tracing all
functions would lead to an impractically large hydrogen.cfg file, but
restricting optimization using --hydrogen-filter is undesirable
(e.g. because it might cause the issue to no longer reproduce).

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 13:30:02 +00:00
rossberg@chromium.org
dbbbaa3a38 Prepare push to trunk. Now working on version 3.21.4.
R=verwaest@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 13:27:24 +00:00
jochen@chromium.org
064c91be57 Snapshot i18n Javascript code
BUG=v8:2745
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 13:24:48 +00:00
verwaest@chromium.org
cd9be4139c Revert "Get rid of ConvertFieldToDescriptor and simplify related code."
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 13:21:01 +00:00
verwaest@chromium.org
f457809c08 Get rid of ConvertFieldToDescriptor and simplify related code.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:52:59 +00:00
bmeurer@chromium.org
abb83a6b81 Add comment about avoiding VS runtime support to OS::DebugBreak.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:51:34 +00:00
bmeurer@chromium.org
c769647995 Get rid of duplicated CPU::DebugBreak() method.
We already have OS::DebugBreak(), which does the right thing.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:43:30 +00:00
jochen@chromium.org
de7352db92 Temporarily disable optimization for StringWrappers to use native valueOf
V8 stores this information directly in the map of the wrapper, however,
it is not invalidated when the prototype of the wrapper is changed, so
once the bit is set, it is no longer possible to override valueOf.

This bug is currently hidden in Chrome since the i18n extension always
modifies the String.prototype, and so the optimization never kicks in.
Disabling the optimization temporarily allows for snapshotting i18n now.

BUG=v8:2855
R=yangguo@chromium.org
TEST=mjsunit/regress/regress-2855.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:31:18 +00:00
jkummerow@chromium.org
88e74d525a Delete dead FloatingPointHelper functions
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:06:49 +00:00
bmeurer@chromium.org
17ec357ac7 Fix crash due RegExpAtom method called on RegExpCharacterClass object.
In the RegExpUnparser::VisitText(RegExpText* that, void* data) function always RegExpUnparser::VisitAtom function called via that->elements()->at(i).data.u_atom->Accept(this, data); even if the type of the object is RegExpCharacterClass.

The problem shows using g++ 4.7(.2, .3) since r16232, since GCC optimizes virtual method calls to direct calls based on __final/final hints. Tested on MIPS and x64:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000588928 in v8::internal::RegExpUnparser::VisitAtom(v8::internal::RegExpAtom*, void*) ()

This cleans up the TextElement class to avoid the unsafe+unchecked union access, that caused the crash.

TEST=cctest/test-regexp/ParserRegression
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 11:06:16 +00:00
rossberg@chromium.org
971df386b3 Fix scoping of function declarations in eval inside non-trivial local scope
R=mstarzinger@chromium.org
BUG=v8:2594

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 09:25:37 +00:00
yurys@chromium.org
47c77181e3 Fix compilation on Windows after r16284
BUG=None
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 08:43:57 +00:00
yurys@chromium.org
969aba8fc0 Rewrite SamplingCircularQueue
The new implementation:
* uses MemoryBarriers to make sure up-to-date data is accessed on both producer and consumer threads
* will not allow to overwrite records
* doesn't have notion of chunks, instead each entry is aligned on the cache line boundaries

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 08:22:07 +00:00
jkummerow@chromium.org
183090464d Clean up the redundant Int32Constant check which is covered by double case
BUG=
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 08:11:12 +00:00
bmeurer@chromium.org
7a2c253e24 Move OS/compiler/feature detection to public v8config.h header.
From now on the v8config.h header should be the one and
only file where we do (freaky) checks to detect OS, C++
compiler or certain compiler features. Since we need that
both internally and for the public API, the new v8config.h
is the proper place to add (everything is prefixed with V8_
so we are safe).

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-23 07:32:25 +00:00
yangguo@chromium.org
be48c5ae26 Rename "parallel recompilation" to "concurrent recompilation".
Also introduced macros for flag aliases for temporary backwards compatibility.

R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 16:14:37 +00:00
mstarzinger@chromium.org
a8e5b658fc Make HConstant::InstanceOf less ambiguous.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 14:22:55 +00:00
mstarzinger@chromium.org
0ecd03ab4c Fix hidden properties on object with frozen prototype.
This fixes a corner-case where a frozen prototype with existing hidden
properties might prevent setting hidden properties on another object.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 13:51:32 +00:00
verwaest@chromium.org
22942716db Remove special case code for generalizing constants to fields.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 13:43:06 +00:00
titzer@chromium.org
e886eff3bf Remove dead methods related to InformativeDefinitions.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 13:21:53 +00:00
titzer@chromium.org
6f3169e571 Fix deoptimization bug, where recursive call can frighten and confuse the unwitting, simple, poor caveman that is Runtime_NotifyDeoptimized.
BUG=274164
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 13:03:40 +00:00
verwaest@chromium.org
6d137c3f50 Prepare push to trunk. Now working on version 3.21.3.
R=yangguo@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 12:26:30 +00:00
verwaest@chromium.org
eb6cbe1486 Never clear debug-stub call ICs. Make a clear distinction between is_debug_stub
used everywhere but the debugger, and IsDebugBreak, used by the debugger.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 12:16:00 +00:00
bmeurer@chromium.org
ee718489fe Drop unused rdtsc instruction.
We do not use rdtsc anywhere and we won't ever use that in the
future, as it is totally unusable with multicore and out of
order execution.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 11:58:20 +00:00
svenpanne@chromium.org
40f81949d3 Cleaned up nil comparisons in Hydrogen.
This consists basically of 2 parts:

   * Restructured BuildCompareNil to make the logic behind it clearer.
     Note that it is intentionally written in a quite stylized way.

   * Replaced a usesless IfBuilder by a plain HInstruction, removing
     some empty blocks.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-22 06:44:34 +00:00
mstarzinger@chromium.org
3e8effb0bd Fix migration checks and extend them to the Scavenger.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 18:31:13 +00:00
jkummerow@chromium.org
e814a9b96b Fix "Hole" leak in TryBuildConsolidatedElementLoad
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 15:31:03 +00:00
yangguo@chromium.org
0cc3a7fde9 Allow both "--no<flag>" and "--no-<flag>" to disable <flag>.
We shouldn't need to know whether to use --no or --no- as prefix.
The latter is more intuitive and also what chromium uses.

R=machenbach@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 15:17:23 +00:00
verwaest@chromium.org
6337281204 Pass checked values to HLoadNamedField, removing the need for extra type-check field.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 14:49:56 +00:00
mstarzinger@chromium.org
34417e1d0f Cleanup FooSpace::VerifyObject and ElementsAccessor::Validate.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 13:39:20 +00:00
verwaest@chromium.org
df48b2f831 Prepare push to trunk. Now working on version 3.21.2.
R=hpayer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 11:16:05 +00:00
bmeurer@chromium.org
125d3390a3 Improve detection of C++11 features.
Also improve detection of V8_INFINITY while we're at it.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 10:43:50 +00:00
yangguo@chromium.org
09668ec3f6 Use CheckUsesForFlag to check flag in uses list
BUG=
R=yangguo@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-21 08:28:59 +00:00
plind44@gmail.com
4c113989a1 MIPS: Fix bug that prevents JALR to JAL optimizations.
TEST=

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 22:10:20 +00:00
palfia@homejinni.com
5d718d96b9 MIPS: Remove platform-specific dead code for KeyedStores
Port r16227 (02df4098)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 18:07:22 +00:00
jkummerow@chromium.org
dea98eee53 Fix a bug in Div when all uses are truncating
Refine the related test cases to cover truncating cases

BUG=
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 13:57:01 +00:00
dslomov@chromium.org
02fdc4114f Promote ArrayBuffer, DataView and typed arrays to non-experimental.
The primary reason for this change is to bake these guys into the
snapshot.

Flag definitions (--harmony-typed-arrays, --harmony-array-buffer) are
still there so that Blink does not complain, but they are noop and
default to true.

R=mstarzinger@chromium.org
BUG=270527

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

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 13:55:52 +00:00
olivf@chromium.org
383a167279 Add X87 implementations for Integer32ToDouble, DoubleToI, DoubleToSmi
Additionally refactor the X87Stack tracking

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 13:01:54 +00:00
dslomov@chromium.org
1bff3fd516 Replace OS::MemCopy with memcpy in typed array initialization.
This is an attempt to fix a weird perf regression on MacOS X 10.6 bot.
Perf regression is not reproducible on MacOS X 10.8.
This difference in memory-copying routines is the only reasonable
difference in the algorithm. We should try and see.

R=bmeurer@chromium.org
BUG=270642

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 11:14:56 +00:00
bmeurer@chromium.org
c2c6b2813d Reland "Use V8_FINAL and V8_OVERRIDE in various places, fixing bugs revealed by them.".
- Use V8_FINAL and V8_OVERRIDE in Ast classes.
- Use V8_FINAL and V8_OVERRIDE in Lithium mips backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium arm backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium x64 backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium ia32 backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium classes.
- Use V8_FINAL and V8_OVERRIDE in Hydrogen classes.

TBR=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 11:10:24 +00:00
bmeurer@chromium.org
60e7d4b1e3 Revert "Use V8_FINAL and V8_OVERRIDE in various places, fixing bugs revealed by them."
This reverts commit r16232 for breaking the
tools/gen-postmortem-metadata.py script. Will reland without the
objects.{cc,h} changes.

TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 10:52:23 +00:00
bmeurer@chromium.org
1a560b1a5e Visual Studio 2012 and later support the C++11 final keyword.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 09:37:21 +00:00
mstarzinger@chromium.org
8a1abf6279 Consistently use CompilationInfo::AbortOptimization.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:53:34 +00:00
jochen@chromium.org
943d5cc27a Move i18n break iterator C++ code to runtime
BUG=v8:2745
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:46:36 +00:00
jochen@chromium.org
bd30d3aa54 Fix null handle deref in InternalDateFormat
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:17:43 +00:00
bmeurer@chromium.org
c3778ade30 Fix non-Xcode build on Mac with clang.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:14:19 +00:00
jkummerow@chromium.org
31691477b7 Avoid -O3 in nacl as it does not play well with -W.
Also cleans up some uninitialized data I saw while investigating
the problem.

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

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

Patch from Ken Mixter <kmixter@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:12:19 +00:00
jochen@chromium.org
800f9f7d35 Don't use Persistent in runtime
R=dcarney@chromium.org, mstarzinger@chromium.org
BUG=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:07:52 +00:00
jochen@chromium.org
76a820a91e During bootstrapping, the script's name is not necessarily set.
So check whether the name is actually set before printing it when
throwing an exception.

BUG=none
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 08:06:48 +00:00
bmeurer@chromium.org
9929a9cd12 Use V8_FINAL and V8_OVERRIDE in various places, fixing bugs revealed by them.
- Use V8_FINAL and V8_OVERRIDE in objects.
- Use V8_FINAL and V8_OVERRIDE in Ast classes.
- Use V8_FINAL and V8_OVERRIDE in Lithium mips backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium arm backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium x64 backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium ia32 backend.
- Use V8_FINAL and V8_OVERRIDE in Lithium classes.
- Use V8_FINAL and V8_OVERRIDE in Hydrogen classes.

R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 07:27:06 +00:00
bmeurer@chromium.org
cb4eb5b3e1 Add V8_FINAL and V8_OVERRIDE macros for C++11 final/override.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 06:51:58 +00:00
bmeurer@chromium.org
c44ccc2d79 Revert "Add FINAL and OVERRIDE macros for C++11 final/override."
This reverts commit r16222 for not using V8_ prefix.

TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 06:39:04 +00:00
dslomov@chromium.org
80ec7fab15 Revert "Promote ArrayBuffer, DataView and typed arrays to non-experimental."
This reverts commit r16137 for breaking Windows build.
TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 01:37:09 +00:00
dslomov@chromium.org
62505a3901 Promote ArrayBuffer, DataView and typed arrays to non-experimental.
The primary reason for this change is to bake these guys into the
snapshot.

Flag definitions (--harmony-typed-arrays, --harmony-array-buffer) are
still there so that Blink does not complain, but they are noop and
default to true.

R=mstarzinger@chromium.org
BUG=270527

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-20 00:48:25 +00:00
danno@chromium.org
ca9a3c71a1 Remove platform-specific dead code for KeyedStores
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 22:12:46 +00:00
mstarzinger@chromium.org
bbf9018c0f Fix invalid out-of-bounds store in MacroAssembler::Allocate.
This fixes an out-of-bounds store in inlined allocations when double
alignment and pretenuring into old-data-space have been requested.

R=hpayer@chromium.org, jkummerow@chromium.org, plind44@gmail.com
BUG=chromium:263515

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 17:46:43 +00:00
palfia@homejinni.com
8bb2b9307f MIPS: Remove wrong restriction in GenerateDeoptJumpTable.
* This Abort condition does not apply to MIPS, since the
  assembler can also emit long Branches automatically, when
  it is needed.

TEST=mjsunit/math-floor-of-div,benchmarks/octane/gbemu,benchmarks/octane/mandreel

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 16:02:50 +00:00
bmeurer@chromium.org
254482e4a3 Add FINAL and OVERRIDE macros for C++11 final/override.
We also use new the constant naming scheme for Yield::Kind values to avoid
clash with the FINAL macro.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 14:46:35 +00:00
bmeurer@chromium.org
a04490517a ARM: Fix register misuse bug in Allocate().
The bug is triggered if flags contains DOUBLE_ALIGNMENT and the
object_size is not an ARM immediate value. In this case, the code
for DOUBLE_ALIGNMENT uses the scratch2 register, which is aliased
to obj_size_reg containing the object_size.

Instead of pre-loading the object_size, which is difficult since
we are out of registers here, we simply generate a non-empty
sequence of add instructions for the addition of the constant
object_size (carefully handling possible overflow in each step).

Also turn static ASSERT into STATIC_ASSERT in Allocate().

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 13:37:57 +00:00
mstarzinger@chromium.org
665a6d8a94 Prevent empty handle dereference in Runtime_InternalNumberFormat.
R=jochen@chromium.org
BUG=chromium:275467

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 13:03:58 +00:00
verwaest@chromium.org
20ca26f494 Improve generalization / migration tracing.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 12:32:50 +00:00
mstarzinger@chromium.org
d52f489c79 Clarify side effects of HTransitionElementsKind.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 10:55:51 +00:00
rossberg@chromium.org
17046dbe14 Prepare push to trunk. Now working on version 3.21.1.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 09:34:18 +00:00
bmeurer@chromium.org
8fa088b273 Drop broken and unnecessary RequiredInputRepresentation() in HMathFloorOfDiv.
R=titzer@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 07:25:25 +00:00
mstarzinger@chromium.org
c5c6c23a23 Handlify Accessors::FunctionSetPrototype method.
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-16 21:27:11 +00:00
mstarzinger@chromium.org
3fa964bf53 Remove check for empty handle for CodeGenerator::MakeCodeEpilogue.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-16 19:52:29 +00:00
verwaest@chromium.org
d81af53131 Store copied value rather than the original double.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-16 15:43:42 +00:00
mstarzinger@chromium.org
3e4fbd0e85 Mark HStringCompareAndBranch as potentially causing GCs.
This also adds a %SetAllocationTimout runtime function which helps to
write regression tests that need to trigger a GC at a certain point in
program execution.

R=hpayer@chromium.org
BUG=chromium:274438
TEST=mjsunit/regress/regress-crbug-274438

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-16 15:10:07 +00:00
jochen@chromium.org
aabfd6d610 Revert "make Intl non-enumerable"
This reverts commit 327355efe28995f5d91aadb54c71ea1d292c8428.

TBR=svenpanne@chromium.org,dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-16 14:10:08 +00:00
palfia@homejinni.com
aaeca64dd6 MIPS: Never hchange nan-hole to hole or hole to nan-hole. Only allow changing hole to nan if all uses allow undefined as nan.
Port r16183 (1858bc57)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 23:07:48 +00:00
danno@chromium.org
48ff27831c Prepare push to trunk. Now working on version 3.21.0
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 17:10:14 +00:00
danno@chromium.org
6bcca144a9 Fix GC Mole warning
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 17:03:19 +00:00
danno@chromium.org
6cd9ae7bc1 Fix src/version.cc number to be consistent with next trunk push
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 17:00:16 +00:00
verwaest@chromium.org
928b07f558 Fix no-sse2 part 2.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 16:58:14 +00:00
danno@chromium.org
7aa3fedaab Fix Crankshafted CompareNil of constant values
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 16:13:58 +00:00
verwaest@chromium.org
ea14c000bc Fix CmpHoleAndBranch on no-sse2
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16192 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 15:50:23 +00:00
bmeurer@chromium.org
051a196723 Revert "Drop broken and unnecessary RequiredInputRepresentation() in HMathFloorOfDiv."
This reverts r16190.

TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 14:50:15 +00:00
bmeurer@chromium.org
6be103c041 Drop broken and unnecessary RequiredInputRepresentation() in HMathFloorOfDiv.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 14:34:40 +00:00
jkummerow@chromium.org
1fcccc22ee Revert "Make GlobalHandle::NodeBlock deletable"
This reverts r16040 due to OOM crashes.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 12:40:44 +00:00
jkummerow@chromium.org
e71a91ca08 Fix Math.round/floor that had bogus Smi representation
BUG=chromium:272564
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 12:14:08 +00:00
verwaest@chromium.org
8e11d9c5c0 Load size in signed int before making negative.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 09:47:27 +00:00
verwaest@chromium.org
169f5a9d7b Never hchange nan-hole to hole or hole to nan-hole.
Only allow changing hole to nan if all uses allow undefined as nan.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-14 08:54:27 +00:00
palfia@homejinni.com
e12b6ff35d MIPS: Store doubles before calling into the elements transition stub
Port r16172 (cc2b6204)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 23:34:34 +00:00
jkummerow@chromium.org
6f800f90ee Fix overflow check computation for Smi Phis
BUG=v8:2836
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 18:18:24 +00:00
jkummerow@chromium.org
b3b99969b0 Fix overwriting order of object literal properties for MATERIALIZED_LITERALs
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 17:27:58 +00:00
danno@chromium.org
bbd28067a2 Prepare push to trunk. Now working on version 3.20.17.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 17:08:20 +00:00
yangguo@chromium.org
1041f58e8f Use Cell instead of PropertyCell in DoCheckFunction (in case of new space object).
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 16:58:14 +00:00
yangguo@chromium.org
415b61e12e Fix bug in HPhi::SimplifyConstantInput
R=jkummerow@chromium.org
BUG=269679

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 16:47:27 +00:00
jkummerow@chromium.org
b9d8275ba0 Make HToFastProperties GC safe.
The runtime call can cause a GC, so the instruction must have proper flags set.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 16:26:53 +00:00
verwaest@chromium.org
145f240060 Store doubles before calling into the elements transition stub on ARM
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 15:06:17 +00:00
jochen@chromium.org
edd8714aca Fix gcmole bugs in i18n code
R=mstarzinger@chromium.org,dcarney@chromium.org
BUG=v8:2745

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 12:24:44 +00:00
verwaest@chromium.org
e8d6f44183 Mark CheckMaps that can cause migration with ChangesNewSpacePromotion.
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 09:38:46 +00:00
palfia@homejinni.com
d2129c0df1 MIPS: Make assert more accurate
Port r16147 (1ced433a)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-13 00:45:24 +00:00
jkummerow@chromium.org
b1a1d5bbcb ia32: Calls to the TranscendentalCacheStub must ensure that esi is set to something safe.
BUG=v8:2827
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-12 16:54:12 +00:00
palfia@homejinni.com
ba8b106059 MIPS: Replace LoadNamedFieldPolymorphic with explicit branches.
Port r16133 (dce32514)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-12 15:02:57 +00:00
yangguo@chromium.org
c52b7bba05 Fix regressions triggered by map invalidation during graph creation.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-12 14:10:25 +00:00
yangguo@chromium.org
c0d1ba2ede Do not materialize uninitialized const for debug evaluate.
R=prybin@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-12 13:35:46 +00:00
verwaest@chromium.org
508159bd52 Make assert more accurate
BUG=
R=verwaest@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-12 09:34:55 +00:00
verwaest@chromium.org
641fda8d05 Break typecheck dependency in escape analysis.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-12 09:26:18 +00:00
jochen@chromium.org
00a2d793b0 Return i18n object holders directly.
BUG=none
R=dcarney@chromium.org,mstarzinger@chromium.org

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-12 08:19:06 +00:00
verwaest@chromium.org
ee53b0a5ed Make all load-named-fields depend on their map-check, unless explicitly ignored.
BUG=
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 18:40:10 +00:00
dslomov@chromium.org
d63e29ba78 Revert "Promote ArrayBuffer, DataView and typed arrays to non-experimental."
This reverts commit r16137 for breaking tests on Windows.

TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 16:23:00 +00:00
dslomov@chromium.org
30375b0937 Promote ArrayBuffer, DataView and typed arrays to non-experimental.
The primary reason for this change is to bake these guys into the
snapshot.

Flag definitions (--harmony-typed-arrays, --harmony-array-buffer) are
still there so that Blink does not complain, but they are noop and
default to true.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 15:57:31 +00:00
mstarzinger@chromium.org
6989edf771 Make sure polymorphic element access creates non-replaying phis.
R=danno@chromium.org
BUG=v8:2815

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 15:23:15 +00:00
mstarzinger@chromium.org
cc3b7a007f Allow HPhis to have an invalid merge index.
All phis that do not represent local variables or values on the operand
stack are not allowed to carry a merge index, as the replay of the
HEnvironment during LChunkBuilder time might get out of sync due to
colliding indexes.

R=danno@chromium.org
BUG=v8:2815

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 15:18:23 +00:00
yurys@chromium.org
f0cb71a3b8 Set bailout reason to kCodeGenerationFailed only when it is not set yet
BUG=None
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 15:10:06 +00:00
verwaest@chromium.org
3715358145 Replace LoadNamedFieldPolymorphic with explicit branches.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 14:04:47 +00:00
bmeurer@chromium.org
770e6ee8b8 Fix/unify root handling in code generation.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 13:43:46 +00:00
mvstanton@chromium.org
201c512dc7 Deoptimization is easier to diagnose when there is a text reason.
BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 12:50:42 +00:00
verwaest@chromium.org
5f9ff709f0 Reduce some code duplication
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 12:33:06 +00:00
verwaest@chromium.org
d435819e36 Replace MathFloor/Round by HChange if the input representation does not match the output representation
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 12:03:40 +00:00
verwaest@chromium.org
19659646ca Fix smi-based math floor.
BUG=chromium:270268
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 11:21:03 +00:00
jochen@chromium.org
ebadc421e4 Move i18n collator code to runtime.
BUG=v8:2745
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 09:51:09 +00:00
mstarzinger@chromium.org
899e80130e Fix handle unsafety in Deoptimizer::MaterializeNextHeapObject.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 09:49:15 +00:00
bmeurer@chromium.org
1086e02fef openbsd: fix platform build
R=bmeurer@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 09:07:46 +00:00
mvstanton@chromium.org
ab066fae6f Add flag trap_on_stub_deopt. We want to be able to trap on hydrogen stub bailouts.
BUG=
R=svenpanne@chromium.org, verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 08:24:29 +00:00
svenpanne@chromium.org
f0305bd83e Instance-type-related fixes and cleanup.
Things got quite a bit out of sync (don't we all love copy-n-paste?):

   * TypeToString didn't handle SLICED_STRING_TYPE,
     SLICED_ASCII_STRING_TYPE, FIXED_DOUBLE_ARRAY_TYPE,
     JS_FUNCTION_PROXY_TYPE and JS_DATE_TYPE.

   * INSTANCE_TYPE_LIST was missing entries for
     SLICED_ASCII_STRING_TYPE, JS_SET_TYPE, and JS_MAP_TYPE.

To improve this maintenance nightmare a little bit, the missing
instance types were added to the INSTANCE_TYPE_LIST macro and this
list is now used via our beloved 2nd order macro technique in
TypeToString. As a side-effect, the strings returned by TypeToString
have a "_TYPE" suffix now, but this doesn't really matter and is a
small price to pay for consistency.

Removed INVALID_TYPE on the way, it had no real use.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 08:22:46 +00:00
yurys@chromium.org
85d8178d87 Deprecate self and total time getters and total sample count getter on CpuProfileNode
All of these values are derived from the self samples count and there is no need to evaluate them in v8 when clients can do that when needed on their side.

Also added unsigned GetHitCount() which should be used instead of double GetSelfSamplesCount(). I'm going to deprecate the latter one once Blink has switched to GetHitCount.

BUG=267595
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-09 07:38:26 +00:00
palfia@homejinni.com
e3f1ec4b1a MIPS: Patch to enhance the source code line information for profiler.
Port r16114 (2d1bf399)

Original commit message:
This patch is to enhance the source code line information for profiler.

For the Hydrogen compilation, most of the source code line information
is not copied from the HInstruction the to corresponding LInstruction.

This patch defines one PositionBits field for LInstruction and copies the
sorce code position value from the HInstruction.

When Generating the native code, we use RecordPosition(..) function to
write LInstruction's position value to position recorder.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 18:36:25 +00:00
yurys@chromium.org
4f56107e2f Revert "Deprecate self and total time getters and total sample count getter on CpuProfileNode"
This reverts commit r16116 due to WebKit compilation breakage. Will reland it once Blink r155755 is rolled into Chromium.

TBR=svenpanne@chromium.org
BUG=None

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 14:43:44 +00:00
yurys@chromium.org
122327d1c6 Deprecate self and total time getters and total sample count getter on CpuProfileNode
All of these values are derived from the self samples count and there is no need to evaluate them in v8 when clients can do that when needed on their side.

Also added unsigned GetHitCount() which should be used instead of double GetSelfSamplesCount(). I'm going to deprecate the latter one once Blink has switched to GetHitCount.

BUG=267595
R=loislo@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 13:39:57 +00:00
plind44@gmail.com
ca09758499 MIPS: Optimize DoCheckMaps.
This simple change moves the Deoptimize call into the Deopt table
where it belongs, and shortens the inline map-check.

Gives a surprisingly large performance gain, around 4% on Octane.

BUG=
R=gergely@homejinni.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 05:04:42 +00:00
haitao.feng@intel.com
fb5857ceb8 Patch to enhance the source code line information for profiler.
This patch is to enhance the source code line information for profiler.

For the Hydrogen compilation, most of the source code line information
is not copied from the HInstruction the to corresponding LInstruction.

This patch defines one PositionBits field for LInstruction and copies the
sorce code position value from the HInstruction.

When Generating the native code, we use RecordPosition(..) function to
write LInstruction's position value to position recorder.

For the MIPS platform, I did not touch because I have no devices
to verify the modification on it.

R=danno@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 02:16:12 +00:00
haitao.feng@intel.com
f54aa8b6ad tweak of Math.abs in its x64 stub
R=jkummerow@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-08 01:29:33 +00:00
plind44@gmail.com
bbbf78e78c MIPS: Refactor and improve inlined double-aligned allocations
Additionally, fix object size register clobbering in Allocate routine.

Based on 13284 (d42bf80).

BUG=
R=plind44@gmail.com

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 21:54:03 +00:00
verwaest@chromium.org
e5afd32129 Fix Object.freeze, Object.observe wrt CountOperation and CompoundAssignment.
BUG=2774,2779
R=adamk@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 18:45:41 +00:00
verwaest@chromium.org
56ca64e98c Revert "mod does not rely on a fixed register anymore, the arguments are passed via the stack."
Due to buildbot failures.

BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 17:22:17 +00:00
yurys@chromium.org
707fdd4c6a Support idle time in CPU profiler
This change provides an API for the embedder to tell CPU profiler if it is idle or busy with some task. This way we can discriminate between idle time and some native code execution.

BUG=268947
R=alph@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 17:04:27 +00:00
olivf@chromium.org
ca4457e8ed mod does not rely on a fixed register anymore, the arguments are passed via the stack.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 16:47:24 +00:00
palfia@homejinni.com
5021e72675 MIPS: First implementation of allocation elimination in Hydrogen.
Port r16098 (328ff5f7)

Original commit message:
This change implements a simple data-flow analysis pass over captured
objects to the existing escape analysis. It tracks the state of values
in the Hydrogen graph through CapturedObject marker instructions that
are used to construct an appropriate translation for the deoptimizer to
be able to materialize these objects again.

This can be considered a combination of scalar replacement of loads and
stores on captured objects and sinking of unused allocations.

TEST=mjsunit/compiler/escape-analysis

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 16:34:20 +00:00
jkummerow@chromium.org
371ac893f9 Check for empty handle in JSON stringifier
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 16:34:13 +00:00
svenpanne@chromium.org
f3a36593be Removed wrong ASSERTs on MIPS.
R=palfia@homejinni.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 13:42:46 +00:00
svenpanne@chromium.org
a8e12c5a02 Handle Symbols in the LBranch instruction on x64.
This was an omission in https://code.google.com/p/v8/source/detail?r=14051.

R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 13:33:41 +00:00
prybin@chromium.org
29bb553b1d Fix step in positions (include various calls and exclude current pc point), add a test
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 12:27:22 +00:00
jochen@chromium.org
5a92a95676 Move i18n's number-format C++ code to runtime
BUG=v8:2745
R=dcarney@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 12:14:50 +00:00
mstarzinger@chromium.org
63defee477 First implementation of allocation elimination in Hydrogen.
This change implements a simple data-flow analysis pass over captured
objects to the existing escape analysis. It tracks the state of values
in the Hydrogen graph through CapturedObject marker instructions that
are used to construct an appropriate translation for the deoptimizer to
be able to materialize these objects again.

This can be considered a combination of scalar replacement of loads and
stores on captured objects and sinking of unused allocations.

R=titzer@chromium.org
TEST=mjsunit/compiler/escape-analysis

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 11:24:14 +00:00
yangguo@chromium.org
ef8d394f12 Re-reland "Flush parallel recompilation queues on context dispose notification"
BUG=
R=hpayer@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:33:09 +00:00
yangguo@chromium.org
5818d831c5 Make JSON::Parse return Local<Value>
It should be able to return Smi, etc. Not only JSObject.

BUG=v8:2821
TEST=cctest/test-api/JSONParseNumber
R=yangguo@chromium.org

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

Patch from Takeshi Yoshino <tyoshino@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:11:39 +00:00
dslomov@chromium.org
5ad4a8458a Prepare push to trunk. Now working on version 3.20.15.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 09:05:59 +00:00
dcarney@chromium.org
cd74a09886 expose eternal handle api
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 08:26:23 +00:00
jkummerow@chromium.org
a9efd655a5 Pacify Win7 builders
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 08:25:44 +00:00
bmeurer@chromium.org
db1436ab65 Handle external reference values properly in HConstant::ImmortalImmovable().
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 07:08:50 +00:00
jochen@chromium.org
02914097b2 Move i18n extension's date-format C++ code to runtime
BUG=v8:2745
R=dcarney@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 03:40:44 +00:00
palfia@homejinni.com
213fd4b678 MIPS: Fix Sunspider 1.0/crypto-aes.
* This makes sure that DoModI calculates correct result even when
  the left register is the same as the result register.
* Microoptmization: it generates smaller code when left and result
  are different registers.

TEST=benchmarks/sunspider/crypto-aes.js

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-07 00:39:49 +00:00
dslomov@chromium.org
03172d9da8 Handlify factory methods for typed array, ArrayBuffer and DataView.
These factory methods used pointers for constructor fucntions, therefore
those pointers could corrupt if allocation triggered gc.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 19:14:51 +00:00
dslomov@chromium.org
d0adaefc55 Fix Win64 build after r16079.
TBR=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 19:13:15 +00:00
ulan@chromium.org
3511f7a428 Fix Array index dehoisting.
BUG=264203
TEST=test/mjsunit/regress/regress-264203
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 16:38:39 +00:00
jkummerow@chromium.org
25ffcc3407 ARM/MIPS: Fix Constant-to-DoubleRegister moves in LGapResolver
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:46:50 +00:00
yangguo@chromium.org
fa2381eb75 Wrap back edge table in an iterator.
R=titzer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:38:30 +00:00
rossberg@chromium.org
f56ad9cab7 Turn assert into runtime assertion to make fuzzer happy
R=mstarzinger@chromium.org
BUG=265369

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 14:19:13 +00:00
yangguo@chromium.org
8fb95efdda Improve internal stringifcation for custom Error objects.
If an developer attempts to "subclass" Error by running
`MyError.prototype = new Error();`, then the internal v8::Message object
that's produced and handed off to `window.onerror` handlers is poorly
stringified as "[object Object]".

This patch adjusts the stringification process for these objects to
include not only native Error objects, but also objects that have Error
in their prototype chain, and haven't overwritten Error.toString with
some custom variant.

BUG=2822
R=mstarzinger@chromium.org, yangguo@chromium.org

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

Patch from Mike West <mkwst@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:58:21 +00:00
rossberg@chromium.org
92bd4d1f2d I found this working on
https://codereview.chromium.org/19541010/

The main problem is that if you called Object.getNotifier(obj) on an object, %SetObserved(object) would never get called on it, and thus it would be unobservable (new test added for this).

Additionally, Runtime::SetObserved was asserting obj->IsJSObject() which would fail if called on a proxy.

It just happens that our existing test always called getNotifier() before Object.observe on proxies, and thus we never previously attempted to transition the map of a proxy.

Both issues are now fixed and properly tested.

R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:49:10 +00:00
svenpanne@chromium.org
bc6fe88030 Desugar bitwise negation into XOR and kill all UnaryOp stuff.
R=mstarzinger@chromium.org, verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:34:51 +00:00
dslomov@chromium.org
45f4b685bf Update Array Iterator to use numeric indexes
At the last face-to-face meeting it was decided that we should use
numeric indexes for the Array Iterator values.

https://github.com/rwldrn/tc39-notes/blob/master/es6/2013-07/july-24.md#514-keys-entries-return-numbers-for-array-index-properties

BUG=v8:2818
R=dslomov@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 13:10:07 +00:00
jkummerow@chromium.org
665c45c92d Un-revert "Implement simple effect typing for variables" and "Handle switch effects"
This re-lands r15776 and r15777, reverting the revert in r15786.

R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 12:57:23 +00:00
bmeurer@chromium.org
548062ea52 r11951 changed the existing check for the __SOFTFP__ define in ARM platforms
to a check for __SOFTP. Most other programs look for __SOFTFP__ [1], so
look for both to increase the chances of not erroring out when using GCC 4.5.

[1] Based on http://codesearch.debian.net/search?q=__SOFTFP__ vs
    http://codesearch.debian.net/search?q=__SOFTFP[^_]

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

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

Patch from Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 11:08:32 +00:00
yurys@chromium.org
4e6041d595 Use standard routine to compute pointer hashs in heap profiler
BUG=None
R=alph@chromium.org, yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:49:05 +00:00
verwaest@chromium.org
206a35763a Fix DeferredInstanceMigration to store the result to temp rather than temp to result.
Thanks to Akos Palfi for finding the bug.

BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:26:31 +00:00
yurys@chromium.org
e06343431a Return start/end profiling time in microseconds instead of milliseconds
The start and end time are now measured in microseconds and the type is int64_t.
This way it seems more natural as we are going to support submilisecond sampling
rate soon. Also it fixes cctest/test-cpu-profiler/ProfileStartEndTime test
failure caused by comparison between long double and double.

TEST=cctest/test-cpu-profiler/ProfileStartEndTime
BUG=v8:2824
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:00:58 +00:00
danno@chromium.org
61a496f4e4 Prepare push to trunk. Now working on version 3.20.14.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 07:31:23 +00:00
dcarney@chromium.org
982fa4d381 delete eternal handle blocks correctly
TBR=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 06:34:54 +00:00
palfia@homejinni.com
8575ae5530 MIPS: Migrate instance of deprecated maps in HCheckMaps.
Port r16057 (b73ae514)

Original commit message:
Currently only direct map checks are supported. Otherwise only polymorphic cases with a generic fallback behave properly, regular polymorphic cases still need to be adapted.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 01:12:10 +00:00
haitao.feng@intel.com
fe7df8c703 Make some constants' meaning clear for X64
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 00:09:01 +00:00
palfia@homejinni.com
3b347f45a6 MIPS: Replace HCheckPrototypeMaps by explicit map checks of constant values.
Port r16055 (7567e57f)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 17:04:10 +00:00
verwaest@chromium.org
2622158aa0 Change environment padding value to value with smi representation.
BUG=
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 16:53:28 +00:00
mstarzinger@chromium.org
e9f6a2d7b4 Use first hit when dumping heap constants.
This makes sure that the first hit is used when dumping heap constants
and hence "TheHoleValue" is not overwritten with other roots that are
initialized to the hole as well.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 16:47:45 +00:00
verwaest@chromium.org
9d9930ce99 Migrate instance of deprecated maps in HCheckMaps.
Currently only direct map checks are supported. Otherwise only polymorphic cases with a generic fallback behave properly, regular polymorphic cases still need to be adapted.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 16:42:39 +00:00
verwaest@chromium.org
04b5e7fa63 Replace HCheckPrototypeMaps by explicit map checks of constant values.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 13:45:16 +00:00
hpayer@chromium.org
983a8621e0 More cleanup regarding the maximum non-large object allocation size.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 12:52:53 +00:00
haitao.feng@intel.com
e8fe083eb0 Introduce Push and Pop register macro instructions for all platforms
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 12:43:04 +00:00
bmeurer@chromium.org
274f254236 Revert "Return start/end profiling time in microseconds instead of milliseconds"
This reverts r16049 for breaking build on windows.

TBR=svenpanne@chromium.org,machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 12:27:12 +00:00
yurys@chromium.org
d38bbe354b Return start/end profiling time in microseconds instead of milliseconds
The start and end time are now measured in microseconds and the type is int64_t. This way it seems more natural as we are going to support submilisecond sampling rate soon. Also it fixes cctest/test-cpu-profiler/ProfileStartEndTime test failure caused by comparison between long double and double.

TEST=cctest/test-cpu-profiler/ProfileStartEndTime
BUG=v8:2824
R=alph@chromium.org, bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 11:48:24 +00:00
jochen@chromium.org
cb68e2cd9b Expose JSON parser through V8 API
BUG=v8:2821
TEST=cctest/test-api/JSONParse
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 11:14:46 +00:00
dcarney@chromium.org
207396101f introduce eternal handles
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:46:23 +00:00
mstarzinger@chromium.org
a50827e044 Add explicit transition flag to HStoreNamedField.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:35:18 +00:00
yangguo@chromium.org
b58093c953 Add notice when parallel recompilation is disabled by tracing.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:28:22 +00:00
yangguo@chromium.org
1ed4df6b57 Disable parallel recompilation for --trace-hydrogen-stubs.
R=bmeurer@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 09:02:47 +00:00
verwaest@chromium.org
251c191824 Fix the loop-builder to tag the entire body as part of the loop.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 08:59:55 +00:00
dcarney@chromium.org
14ed15e7e1 Make GlobalHandle::NodeBlock deletable
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 07:34:29 +00:00
yurys@chromium.org
411d21b2b1 Add start and end profiling time to v8::CpuProfile
I'm going to change CPU profiler API and deprecate GetSelfTime, GetTotalTime and GetTotalSamplesCount on CpuProfileNode as all of those values are derived from self samples count and sampling rate. The sampling rate in turn is calculate based on the profiling duration so having start/end time and total sample count is enough for calculating smpling rate.

BUG=267595
R=alph@chromium.org, bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 07:17:08 +00:00
svenpanne@chromium.org
e544f130c5 Remove unused UNARY_MINUS builtin.
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 07:00:38 +00:00
dcarney@chromium.org
eb52c66fd0 IsNearDeath needs to include pending nodes
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 06:58:48 +00:00
svenpanne@chromium.org
d5b9616991 Clean some unuse code of unary negation
R=svenpanne@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-05 06:34:26 +00:00
palfia@homejinni.com
ea38ee8782 MIPS: Avoid redundant smi check for Math.abs
Port r16021 (d79f4450)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 18:35:19 +00:00
haitao.feng@intel.com
dfda85a91a Introduce PopReturnAddressTo and PushReturnAddressFrom macro-assembler instructions for X64
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 13:42:02 +00:00
dslomov@chromium.org
5230c19d8b Add size_t length argument to v8::ArrayBuffer::Allocator::Free.
The previous implementation of Free is a deprecated overload now.

R=mstarzinger@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 13:03:06 +00:00
dslomov@chromium.org
f8b80ca66d Revert "Add size_t length argument to v8::ArrayBuffer::Allocator::Free."
This reverts r16031 for breaking shared build.

TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 12:56:53 +00:00
dslomov@chromium.org
1688f3c167 Add size_t length argument to v8::ArrayBuffer::Allocator::Free.
The previous implementation of Free is a deprecated overload now.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 12:19:22 +00:00
svenpanne@chromium.org
bf71023ba5 Replaced unary negation by multiplication with -1.
This fixes a deopt loop in the Epic Citadel demo and removes some code. Apart from that, this change is performance-neutral.

When we do something similar for BIT_NOT, the whole UnaryOp stuff can go away.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 11:56:35 +00:00
mstarzinger@chromium.org
1e296936eb Store transition on HStoreNamedField as HConstant.
This allows optimization passes that run in the parallel compiler thread
to use the map that a store transitions to for further analysis even
though the map handle cannot be dereferenced.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 11:24:55 +00:00
titzer@chromium.org
af2663afd8 Remove instructions and infrastructure related to IDEFs that is now obsolete (and was never turned on). The new bounds check elimination phase doesn't make use of these features, as they were the first parts of the previous approach which was never completed.
BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 11:17:26 +00:00
mstarzinger@chromium.org
c87abd1117 Add new Harmony methods to Array.prototype object.
Array.prototype.find
Array.prototype.findIndex

http://people.mozilla.org/~jorendorff/es6-draft.html

BUG=v8:2776,v8:2777
TEST=mjsunit/harmony/array-find,mjsunit/harmony/array-findindex
R=mstarzinger@chromium.org

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

Patch from Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 10:57:48 +00:00
loislo@chromium.org
d2c443b774 Extract hardcoded error strings into a single place and replace them with enum.
I'd like to propagate bailout reason to cpu profiler.
So I need to save it into heap object SharedFunctionInfo.
But:
1) all bailout reason strings spread across all the sources.
2) they are native strings and if I convert them into String then I may have a performance issue.
3) one byte is enough for 184 bailout reasons. Otherwise we need 8 bytes for the pointer.

Also I think it would be nice to have error strings collected in one place.
In that case we will get additional benefits:

It allows us to keep this set of messages under control.
It gives us a chance to internationalize them.
It slightly reduces the binary footprint.

From the other hand the developers have to add new strings into that enum.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 09:53:11 +00:00
mstarzinger@chromium.org
477b41c89b Fix Mac build after r16022.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 09:35:44 +00:00
mstarzinger@chromium.org
12c8d36331 Generate grokdump constants with 'make grokdump' now.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 09:02:02 +00:00
jkummerow@chromium.org
a47705644e Avoid redundant smi check for Math.abs
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 08:59:02 +00:00
jkummerow@chromium.org
15c1d23fbc Use test(reg, imm) when the operand is a register on ia32
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 08:55:26 +00:00
jkummerow@chromium.org
865582e02b TSan: Move definition of AtomicOps_x86CPUFeatureStruct into v8::internal namespace
This matches other atomicops_internals_* files.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-02 08:52:59 +00:00
jochen@chromium.org
738237e877 Move helper methods from i18n extension into runtime.
BUG=v8:2475
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 19:25:27 +00:00
jochen@chromium.org
71cad9edb6 Fix incorrect #ifdef statements for I18N support.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 19:21:16 +00:00
danno@chromium.org
40dff5067c Prepare push to trunk. Now working on version 3.20.13.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 16:57:58 +00:00
jkummerow@chromium.org
61f531cf23 Remove buggy ToNumber truncation
BUG=v8:2813
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 16:12:31 +00:00
ulan@chromium.org
4de5d18077 Fix mozilla regress-398085-01 failure on windows.
Make sure that all stack pages are mapped before accessing them.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 12:55:19 +00:00
dslomov@chromium.org
f62ffeef31 Calling Map etc without new should throw TypeError
Even though we do not yet allow Map, Set, WeakMap and WeakSet to be
subclassed we need to ensure that we do not allow them to be [[Call]]ed
to allow them to be subclassed in the future.

BUG=v8:2819
R=dslomov@chromium.org, mstarzinger@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 09:18:28 +00:00
dslomov@chromium.org
4ebeda216d Speed-up 'new TypedArray(arrayLike)'.
Handle specially the cases when the argument is a typed array,
in particular of the same type as the one we create.

Allocate backing store uninitialized in cases when we can guarantee
complete initialization.

R=bmeurer@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:52:21 +00:00
hpayer@chromium.org
3e7e3f70a6 Pretenure heap number in high promotino mode if a store requires a mutable heap number to be allocated.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:49:27 +00:00
dslomov@chromium.org
791e1a9cb2 Revert "Speed-up 'new TypedArray(arrayLike)'."
This reverts commit r15998 for breaking NaCl build.

TBR=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:47:39 +00:00
bmeurer@chromium.org
3da5d1ad7b Get rid of HStringLength.
Use HLoadNamedField to load the string length field instead.

Depends on: https://codereview.chromium.org/21488002

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:42:47 +00:00
mstarzinger@chromium.org
2e7c5d4988 Fix printing of Harmony Set and Map instances.
R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:36:21 +00:00
hpayer@chromium.org
9e8058146e Cleaning up HAllocate space and double alignment selection.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:34:36 +00:00
bmeurer@chromium.org
9f8d162471 Fix broken HCheckInstanceType::Canonicalize().
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:27:46 +00:00
dslomov@chromium.org
d208eea478 Speed-up 'new TypedArray(arrayLike)'.
Handle specially the cases when the argument is a typed array,
in particular of the same type as the one we create.

Allocate backing store uninitialized in cases when we can guarantee
complete initialization.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:19:51 +00:00
bmeurer@chromium.org
a4c072ed47 Fix a crash when generating forward jumps to labels at very high assembly offsets
The first jump to a specific label was marked as jump to absolute
position -4. This value was stored in the assembly as a branch to a
offset (-4 - (instruction offset + 8)). The offset is only 24 bit
long on ARM. Thus instruction offsets higher than 2^23 - 12 would overflow
the offset.

Fix by denoting the first jump to a label by storing the jump
instruction location as the target. This will result in offset of -8,
which of course always fits in the branch instruction.

BUG=2736
TEST=cctest/test-assembler-arm/17
R=bmeurer@chromium.org, svenpanne@chromium.org

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

Patch from Kimmo Kinnunen <kkinnunen@nvidia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 08:13:08 +00:00
hpayer@chromium.org
68271ddc0e Print HAllocate flags in --trace-hydrogen.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-01 07:56:36 +00:00
verwaest@chromium.org
e53471dbaa Remove elements transitions from the transition array.
This is preparatory work for reordering the transition tree. Since elements transitions will be at the root of the transition tree, runtime access to them is slow since we have to walk the transition tree backwards first. Hence remove the optimization that promoted them to a special field, requiring a pointer (mostly NULL) in every non-simple transition array.

R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 17:08:50 +00:00
danno@chromium.org
04a9f00238 Make sure that bce creates constants of right type
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15992 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 16:41:51 +00:00
danno@chromium.org
e5e0100504 Fix overzealous casting that erroneously lead to ASSERTs
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 15:40:24 +00:00
danno@chromium.org
4cdffbf4fe Improve instruction creating/adding shorthand in HGraphBuilder
Add multi-argument templates for New, NewUncasted, Add and AddUncasted that
call boilerplate HInstruction::New methods rather than the constructor directly.
This allows for automatic passing of the zone and context for instructions that
need them.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 14:58:39 +00:00
bmeurer@chromium.org
8c0f2eabbf Stores to external references don't need write barriers.
This also applies to stores with an external field representation.

Also cleans up the CreateAllocationSiteStub.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15989 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 13:45:51 +00:00
ulan@chromium.org
7ad3db7485 Fix SHL when shift amount is zero for arm and mips.
BUG=v8:2817
R=titzer@chromium.org
TEST=octane

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 12:46:54 +00:00
dslomov@chromium.org
693301702b Reimplement TypedArray.set in Javascript.
Implement all cases for TypedArray.set in Javascript, except the case
where memmove is used. This makes it many times faster.

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 12:10:49 +00:00
bmeurer@chromium.org
44e4c2756a Avoid the use of set_type() in instruction constructors.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:56:46 +00:00
bmeurer@chromium.org
8823e8e89f Get rid of HLinkObjectInList.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:47:44 +00:00
verwaest@chromium.org
3143f5f88b Remove special handling of fields in combination with elements transitions in Crankshaft.
Instead first try to keep ICs monomorphic if elements kinds generalize. If that fails, use standard polymorphic handling. The Try*PolymorphicAsMonomorphic methods will automatically produce code similar to the previous approach using CheckMapsWithTransitions.

BUG=
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:08:05 +00:00
bmeurer@chromium.org
843cf1f654 Compile fix for older GCCs.
TBR=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 10:03:59 +00:00
bmeurer@chromium.org
bacc626f57 Fix HType handling for HConstant with external references.
We cannot use set_type() with HType::None() in the HConstant
constructor, since set_type() asserts that the new type is a
subtype of the previous one, but HType::None() is not a subtype
of HType::Tagged() which is the initial type set by the HValue
constructor.

This patch adds an optional type parameter to the HValue,
HInstruction and HTemplateInstruction constructors.

R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 09:38:37 +00:00
titzer@chromium.org
d87296eb1f Eagerly set the types of many kinds of hydrogen instructions.
BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 09:29:30 +00:00
mstarzinger@chromium.org
a1c7478a38 Fix stale unhandlified value in JSObject::SetPropertyForResult.
R=danno@chromium.org
BUG=chromium:265894

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 08:51:18 +00:00
bmeurer@chromium.org
e9fcf8fc98 Revert the latest set of platform changes.
Revert "Fix NaCl build."
Revert "Revert target arch detection."
Revert "Fix typo."
Revert "Simplify implementation of Mutex."
Revert "Fix for older clang releases that lack __has_extension."
Revert "Reland initial bits of "Implement correct OS and CC detection.""

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:51:46 +00:00
dcarney@chromium.org
a5e87c8459 make Intl non-enumerable
R=jochen@chromium.org, svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:17:34 +00:00
hpayer@chromium.org
2bd5405dc2 Free slots buffer entries when tearing down the heap.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:17:03 +00:00
bmeurer@chromium.org
662958c56c Fix NaCl build.
TBR=machenbach@chromium.org,svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:08:52 +00:00
bmeurer@chromium.org
ae2c2ad46d Revert target arch detection.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:04:30 +00:00
hpayer@chromium.org
b6a6fc76dc Allocation space decisions are precisely made in hydrogen.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 07:03:16 +00:00
bmeurer@chromium.org
dff0e84b1b Fix typo.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 06:56:02 +00:00
haitao.feng@intel.com
e0eaee29d3 Introduce StackOperandForReturnAddress operand for X64 to access return address in the stack
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-31 00:19:32 +00:00
haitao.feng@intel.com
e4cdcc6576 Introduce the SetFp function in StackHandler
The FP setting is different for X32 than the other platforms as
kFPOnStackSize is double the kPointerSize and we have to clear the
higher 32 bits to 0.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 23:59:55 +00:00
palfia@homejinni.com
bfc98bc0c8 MIPS: Fix flaky mjsunit/harmony/generators-iteration test failure.
This fixes the result allocation in EmitCreateIteratorResult,
when a GC is required. The Runtime call returns the allocated
pointer in v0 register, but the rest of the function was
expected it in a0 register. Refactored the function to use v0 for
the result in the whole function.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 22:28:54 +00:00
bmeurer@chromium.org
64bfd42a4c Simplify implementation of Mutex.
Also moves Mutex to its own file mutex.{cc,h}.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:12:49 +00:00
mstarzinger@chromium.org
96fc677d25 Pipe a script's CORS status through V8 during compilation.
In order to properly sanitize exception data during a 'window.onerror'
handler, we need to know whether a script was served with proper CORS
headers at the time it was loaded into V8. This patch adds a single bool
to ScriptOrigin, and pipes that through the compiler to land on the
Script object. We can then retrieve the parameter when calling the
embedder's exception callback.

BUG=crbug.com/159566
R=mstarzinger@chromium.org

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

Patch from Mike West <mkwst@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:05:50 +00:00
mstarzinger@chromium.org
8a019050ff Reland "Compilation type and state allocate an unnecessary Smi on v8::Script" (r15940).
It turns out that this change is not related to the test failures.

TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 17:00:05 +00:00
verwaest@chromium.org
2af164f4d9 Mark maps as unstable if their instances potentially transition away.
Use this as a prerequisite for adding code dependencies.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 16:33:58 +00:00
mstarzinger@chromium.org
0627d433b0 Add new Harmony methods to String.prototype object.
String.prototype.repeat
String.prototype.startsWith
String.prototype.endsWith
String.prototype.contains

http://people.mozilla.org/~jorendorff/es6-draft.html

BUG=v8:2796,v8:2797,v8:2798,v8:2799
TEST=mjsunit/string-repeat,mjsunit/string-startswith,mjsunit/string-endswith,mjsunit/string-contains
R=mstarzinger@chromium.org

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

Patch from Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 16:33:08 +00:00
bmeurer@chromium.org
306d944e3e Fix for older clang releases that lack __has_extension.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 14:49:44 +00:00
titzer@chromium.org
0af94e4ac4 Don't generate a shift left by one if can deoptimize on ia32 and arm and mips.
BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 13:30:03 +00:00
danno@chromium.org
f3fff3c2f4 Revert 15940: "Compilation type and state allocate an unnecessary Smi on v8::Script."
Due to Mozilla test failures on Win32 debug

TBR=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 11:24:11 +00:00
danno@chromium.org
570138742e Prepare push to trunk. Now working on version 3.20.12.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 11:08:56 +00:00
bmeurer@chromium.org
a59d3ba977 Reland initial bits of "Implement correct OS and CC detection."
This adds the OS and CC detection and cleans up the globals.h to
some degree. It also places all of the C++11 feature detection into
globals.h.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 10:36:58 +00:00
bmeurer@chromium.org
82e4ba6f70 Turn mark deoptimize on undefined into a proper HPhase.
This patch also removes the implicit recursion on phi operands,
using a loop and a worklist instead, to avoid potential stack
overflows.

R=dslomov@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 10:25:20 +00:00
verwaest@chromium.org
f328c2c77c HasNonSmiUse should ignore tagged uses
R=verwaest@chromium.org

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

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 09:06:42 +00:00
mstarzinger@chromium.org
3202e1d795 Re-revert "Flush parallel recompilation queues on context dispose notification" (r15883).
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 08:35:48 +00:00
svenpanne@chromium.org
31e56df122 Prepare some ValueOf renamings.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 07:05:15 +00:00
yurys@chromium.org
6ba502fa4d Simplify sampling rate calculation
Sampling rate is now calculated as total number of samples divided by profiling time in ms. Before the patch the sampling rate was updated once per 100ms which doesn't have any obvious advantage over the simpler method.

Also we are going to get rid of the profile node self and total time calculation in the v8 CPU profiler and only expose profiling start/end time for CpuProfile and number of ticks on each ProfileNode and let clients do all the math should they need it.

BUG=None
R=bmeurer@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 07:01:16 +00:00
haitao.feng@intel.com
1f9dc8b1bf This patch is to support Vtune on Android platform.
The Vtune API provides the support for Android platform. So we fix the
compilation issue and it works on Android platform.

R=danno@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-30 01:01:04 +00:00
yurys@chromium.org
c301f8203c Remove unused methods from RuntimeProfiler
Also removed Logger fields that used to be used for writing compressed logs.

BUG=None
R=bmeurer@chromium.org, loislo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 19:02:16 +00:00
mstarzinger@chromium.org
9f4fc77e1e Compilation type and state allocate an unnecessary Smi on v8::Script.
This patch combines them into a single field, and adjusts the accessors
and setters to take the enum type directly, rather than converting to and
from a Smi value.

R=mstarzinger@chromium.org

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

Patch from Mike West <mkwst@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 17:59:02 +00:00
verwaest@chromium.org
4ab26b7ed4 Revert "Smi-support for HSar."
Reverting https://chromiumcodereview.appspot.com/21049003

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 17:17:19 +00:00
verwaest@chromium.org
480729ff79 Smi-support for HSar.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 17:07:28 +00:00
bmeurer@chromium.org
b019910a38 This adds generic support for ExternalReferences in Hydrogen (and Lithium), as required for AddIncrementCounter.
R=danno@chromium.org, titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 13:56:51 +00:00
titzer@chromium.org
37ee4a0369 Fix IsDeletable() for HStringAdd, HStringCharCodeAt, HStringCharFromCode.
BUG=
R=mstarzinger@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 12:35:43 +00:00
bmeurer@chromium.org
e3901e919d Revert new OS and CC detection and related changes since r15923.
Revert "Attempt to fix leftover test breakage on Mac."
Revert "Fix d8 build error when V8_SHARED is unset on Linux."
Revert "Fix V8_GNUC_PREREQ macro."
Revert "Fix typo."
Revert "Implement correct OS and CC detection."

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 12:12:39 +00:00
danno@chromium.org
837276829e Fix HasResult method of LTemplateInstruction to properly handle LCheckSmi
LCheckSmi sometimes has a result register and sometimes not, even though its
LTemplateInstruction alwasys has room for one. Debug output use HasResult to
determine whether it was ok to de-ref result(), but HasResult doesn't check for
the case where LTemplateInstruction has a result but it's NULL.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:57:42 +00:00
danno@chromium.org
504f94fcbd Make it easier to get JS stack crawls from gdb
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:56:45 +00:00
mvstanton@chromium.org
e9cc78af7e Fix for V8 issue 2795: Check fails with deopt for mjsunit/array-store-and-grow
(https://code.google.com/p/v8/issues/detail?id=2795)

The reason is when allocating and building arrays in hydrogen we need to ensure
we do any int32-to-smi conversions BEFORE the allocation. These conversions can
at least theoretically deoptimize. If this happens before all the fields of the
newly allocated object are filled in, we will have a corrupted heap.

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:50:39 +00:00
bmeurer@chromium.org
41a4831fd9 Attempt to fix leftover test breakage on Mac.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:38:34 +00:00
bmeurer@chromium.org
4d56810eeb Fix d8 build error when V8_SHARED is unset on Linux.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 10:23:07 +00:00
bmeurer@chromium.org
ac5e3e080c Fix V8_GNUC_PREREQ macro.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:56:34 +00:00
titzer@chromium.org
f403969d1f Remove Uninitialized from HType.
BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:42:57 +00:00
bmeurer@chromium.org
45e77c2b66 Fix typo.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:29:00 +00:00
bmeurer@chromium.org
2e7193f897 Implement correct OS and CC detection.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:19:10 +00:00
bmeurer@chromium.org
709012021a The compiled_transitions flag was enabled for quite some time now and seems to work out quite well, so time has come to remove the obsolete code paths and remove the unused methods.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:12:16 +00:00
bmeurer@chromium.org
3126012664 Really fix break in r15919 now.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 08:33:57 +00:00
bmeurer@chromium.org
0f5178dcba Fix break in r15919.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 08:07:52 +00:00
bmeurer@chromium.org
c147c58c59 Properly implement OS::GetRandomMmapAddr() for Win32.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 07:50:56 +00:00
danno@chromium.org
c1e7d38f49 Prepare push to trunk. Now working on version 3.20.11.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 07:45:01 +00:00
palfia@homejinni.com
7ac6d35d1d MIPS: Fix debug mode webkit failures.
* Handles SMI case in EmitLoadRegister correctly.
* Fix minor mistake in the assembler.

BUG=v8:2808
TEST=webkit/dfg-dead-min-two-args,webkit/fast/js/excessive-comma-usage

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-27 01:07:53 +00:00
palfia@homejinni.com
bac2da6421 MIPS: Add Smi support to Shl
Port r15910 (8e65c434)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 23:56:03 +00:00
loislo@chromium.org
141ada02f2 Logger: introduce abstract interface for CodeEvent listeners.
New abstract class CodeEventListener was created.

CodeEventLogger which is the base class for Jit, LowLevel
and CodeAddressMap loggers was inherited from CodeEventListener.

CodeAddressMap class was moved to serializer.cc because serializer is the only user for it. Actually it collects code names and pushes them to the standard log as SnapshotCodeNameEvent. So I extracted this code into separate function CodeNameEvent. It happens that this method works only when Serializer serializes an object. So I added direct log call there.

CodeEventLogger class declaration was moved to the header
because CodeAddressMap needs it.
The code for the nested class CodeEventLogger::NameBuffer was left in the cc file.

CpuProfiler now is inherit CodeEventListener but not used
the loggers infrastructure yet due to the complex initialization schema. I'd like to fix that in a separate cl.

BUG=none
TEST=current test set.
R=yangguo@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:50:23 +00:00
verwaest@chromium.org
7471ae893e Add Smi support to Shl
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:35:44 +00:00
yurys@chromium.org
630999d1a2 Remove --prof-auto flag
There is already --prof-lazy flag which should be enough.

BUG=None
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:18:56 +00:00
yangguo@chromium.org
b62a6d0e2e Do not allow external strings in old pointer space.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 12:32:06 +00:00
verwaest@chromium.org
565699669e Fix Smi-based MathMinMax on x64, and reenable smi mode.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 12:06:22 +00:00
yangguo@chromium.org
372763897d Lazy call to custom stack trace formatting using Error.prepareStackTrace.
This enables custom stack trace formatting for stack overflow.
A consequence is that stack trace formatting is now easily observable,
but we already established that the default stack trace formatting can
be observed anyways. It is only triggered by the .stack getter, and
it has to be explicitly called, (e.g. not implicitly after GC).

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 11:28:08 +00:00
mstarzinger@chromium.org
aded201670 Revert "Check that ExternalString objects get aligned resources" (r15894).
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 10:40:00 +00:00
jkummerow@chromium.org
a6a1163036 Prepare push to trunk. Now working on version 3.20.10.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:22:45 +00:00
mstarzinger@chromium.org
40d5faea73 Check that ExternalString objects get aligned resources.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:02:34 +00:00
jkummerow@chromium.org
e9046dccb3 Disable Smi representation support for HMathMinMax
because it's incomplete on x64.

BUG=v8:2808
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:00:43 +00:00
bmeurer@chromium.org
90249cf92b Inline platform-tls*.h files into platform.h.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:00:07 +00:00
palfia@homejinni.com
61a78e2a11 MIPS: Adding Smi support to Add, Sub, Mul, and Bitwise
Port r15879 (ec1e278b)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 19:57:10 +00:00
palfia@homejinni.com
c12a0774ea MIPS: New array bounds check elimination pass (focused on induction variables and bitwise operations).
Port r15866 (52e8581c)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 19:55:55 +00:00
jochen@chromium.org
0826f85a02 Put object templates of the i18n extension on the heap object.
Using function local statics doesn't work, as we need the templates per
isolate.

I'm not #ifdef'ing the definitions out, because kEmptyStringRootIndex
changes depending on whether the two additional slots are present or
not.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 16:01:02 +00:00
m.m.capewell@googlemail.com
cc9398cd42 ARM: Make double registers low/high safe
This patch prevents taking the low/high part of a double-precision VFP register that has no corresponding single-precision VFP registers.

BUG=none
TEST=Added to test-disasm-arm.cc, test-assembler-arm.cc

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:04:38 +00:00
jkummerow@chromium.org
32e2e37230 Fix JSArray-specific length lookup in polymorphic array handling
BUG=chromium:263276
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:04:21 +00:00
yangguo@chromium.org
14e205e9cf Reland "Flush parallel recompilation queues on context dispose notification."
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:01:23 +00:00
mstarzinger@chromium.org
f06f57f7fb Make standalone D8 trace to single hydrogen.cfg file.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 14:11:53 +00:00
verwaest@chromium.org
8e719ea472 Remove support for smi-based keyed accesses on 64bit.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 12:22:23 +00:00
hpayer@chromium.org
b832d8e089 Ignore external strings in old pointer space migration invariant check.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 12:10:45 +00:00