platform/upstream/v8.git
11 years agoUse signals for cpu profiling on Mac OS X
yurys@chromium.org [Mon, 26 Aug 2013 11:53:29 +0000 (11:53 +0000)]
Use signals for cpu profiling on Mac OS X

A while ago in r2315 Mac OS X cpu profiler implementation was changed to pause sampled thread instead of sending SIGPROF signal. That was done because at that point profiler send the signal to the whole process and it was handled on a random thread. Now that signal-based implementation uses pthread_kill it may well be used on Mac OS X too.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd a trap_on_abort flag
olivf@chromium.org [Mon, 26 Aug 2013 11:22:39 +0000 (11:22 +0000)]
Add a trap_on_abort flag

By setting this flag assertions behind --debug-code will trigger a
breakpoint instead of a call into Abort. This eases debugging, as the
call site is less cluttered and the backtrace starts where it should.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd V8_ALIGNAS() and V8_ALIGNOF() and use that in lazy-instance.h.
bmeurer@chromium.org [Mon, 26 Aug 2013 11:18:28 +0000 (11:18 +0000)]
Add V8_ALIGNAS() and V8_ALIGNOF() and use that in lazy-instance.h.

This renames the existing V8_ALIGNAS() to V8_ALIGNED(), and introduces
V8_ALIGNAS(type, alignment) which aligns according to the type and falls
back to aligning according to alignment.

Also use __attribute__((aligned(n))) instead of __attribute__((__aligned__(n))).

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agofix 16316 debug check
dcarney@chromium.org [Mon, 26 Aug 2013 10:11:43 +0000 (10:11 +0000)]
fix 16316 debug check

TBR=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoabstract eternal into class
dcarney@chromium.org [Mon, 26 Aug 2013 09:41:22 +0000 (09:41 +0000)]
abstract eternal into class

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix the CPU feature detection.
bmeurer@chromium.org [Mon, 26 Aug 2013 09:37:39 +0000 (09:37 +0000)]
Fix the CPU feature detection.

Move all of the CPU detection logic to the CPU class, and make
all other code use the CPU class for feature detection.

This also fixes the ARM CPU feature detection logic, which was
based on fragile string search in /proc/cpuinfo. Now we use
ELF hwcaps if available, falling back to sane(!!) parsing of
/proc/cpuinfo for CPU features.

The ia32 and x64 code was also cleaned up to make it usable
outside the assembler.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFurther cleanup of test for V8_INFINITY.
bmeurer@chromium.org [Mon, 26 Aug 2013 08:17:38 +0000 (08:17 +0000)]
Further cleanup of test for V8_INFINITY.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoRevert "Add V8_ALIGNOF() and use that in lazy-instance.h."
bmeurer@chromium.org [Mon, 26 Aug 2013 08:12:08 +0000 (08:12 +0000)]
Revert "Add V8_ALIGNOF() and use that in lazy-instance.h."

This reverts commit r16311 for breaking build with certain compilers.
Will reland once sorted out.

TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDeprecate CpuProfileNode::GetSelfSamplesCount
yurys@chromium.org [Mon, 26 Aug 2013 08:10:10 +0000 (08:10 +0000)]
Deprecate CpuProfileNode::GetSelfSamplesCount

This method is being replaced by GetHitCount.

BUG=267595
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd V8_ALIGNOF() and use that in lazy-instance.h.
bmeurer@chromium.org [Mon, 26 Aug 2013 08:06:15 +0000 (08:06 +0000)]
Add V8_ALIGNOF() and use that in lazy-instance.h.

Also fix the inconsistent attribute naming, and make V8_GNUC_PREREQ() test work for GCC compatible compilers.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoSupport higher CPU profiler sampling rate on posix systems
yurys@chromium.org [Mon, 26 Aug 2013 07:17:12 +0000 (07:17 +0000)]
Support higher CPU profiler sampling rate on posix systems

New flag is added that allows to specify CPU profiler sampling rate in microseconds as command line argument. It was tested to work fine with 100us interval(currently it is 1ms). Default values are kept the same as in the current implementation. The new implementation is enabled only on POSIX platforms which use signals to collect samples. Other platforms that pause thread being sampled are to follow.

SIGPROF signals are now sent on the profiler event processor thread to make sure that the processing thread does fall far behind the sampling.

The patch is based on the previous one that was rolled out in r13851. The main difference is that the circular queue is not modified for now.

On Linux sampling for CPU profiler is initiated on the profiler event processor thread, other platforms to follow.

CPU profiler continues to use SamplingCircularQueue, we will probably replace it with a single sample buffer when Mac and Win ports support profiling on the event processing thread.

When --prof option is specified profiling is initiated either on the profiler event processor thread if CPU profiler is on or on the SignalSender thread as it used to be if no CPU profiles are being collected.

ProfilerEventsProcessor::ProcessEventsAndDoSample now waits in a tight loop, processing collected samples until sampling interval expires. To save CPU resources I'm planning to change that to use nanosleep as only one sample is expected in the queue at any point.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoWorkaround 'inlining failed' build error with older GCC 4.x releases.
bmeurer@chromium.org [Sat, 24 Aug 2013 16:58:32 +0000 (16:58 +0000)]
Workaround 'inlining failed' build error with older GCC 4.x releases.

R=bmeurer@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoReplace mapcheck dependency on HStoreNamedField with object.
verwaest@chromium.org [Fri, 23 Aug 2013 17:55:22 +0000 (17:55 +0000)]
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

11 years agoAdd source map support to tick processor.
jkummerow@chromium.org [Fri, 23 Aug 2013 17:20:54 +0000 (17:20 +0000)]
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

11 years agoFix dependency of loading the heap-number for a double-field store to be the mapcheck.
verwaest@chromium.org [Fri, 23 Aug 2013 16:31:31 +0000 (16:31 +0000)]
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

11 years agoFix mjsunit/debug-script after r16298
jochen@chromium.org [Fri, 23 Aug 2013 13:45:24 +0000 (13:45 +0000)]
Fix mjsunit/debug-script after r16298

TBR=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd --trace-hydrogen-filter flag.
jkummerow@chromium.org [Fri, 23 Aug 2013 13:30:02 +0000 (13:30 +0000)]
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

11 years agoPrepare push to trunk. Now working on version 3.21.4.
rossberg@chromium.org [Fri, 23 Aug 2013 13:27:24 +0000 (13:27 +0000)]
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

11 years agoSnapshot i18n Javascript code
jochen@chromium.org [Fri, 23 Aug 2013 13:24:48 +0000 (13:24 +0000)]
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

11 years agoRevert "Get rid of ConvertFieldToDescriptor and simplify related code."
verwaest@chromium.org [Fri, 23 Aug 2013 13:21:01 +0000 (13:21 +0000)]
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

11 years agoSkip test-log/EquivalenceOfLoggingAndTraversal
jochen@chromium.org [Fri, 23 Aug 2013 13:16:10 +0000 (13:16 +0000)]
Skip test-log/EquivalenceOfLoggingAndTraversal

Note that the test crashes if it fails, so the PASS || FAIL annotation
doesn't work.

BUG=v8:2857
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoGet rid of ConvertFieldToDescriptor and simplify related code.
verwaest@chromium.org [Fri, 23 Aug 2013 11:52:59 +0000 (11:52 +0000)]
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

11 years agoAdd comment about avoiding VS runtime support to OS::DebugBreak.
bmeurer@chromium.org [Fri, 23 Aug 2013 11:51:34 +0000 (11:51 +0000)]
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

11 years agoGet rid of duplicated CPU::DebugBreak() method.
bmeurer@chromium.org [Fri, 23 Aug 2013 11:43:30 +0000 (11:43 +0000)]
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

11 years agoTemporarily disable optimization for StringWrappers to use native valueOf
jochen@chromium.org [Fri, 23 Aug 2013 11:31:18 +0000 (11:31 +0000)]
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

11 years agoRemove hacks for GC stress builders from cctests.
mstarzinger@chromium.org [Fri, 23 Aug 2013 11:10:03 +0000 (11:10 +0000)]
Remove hacks for GC stress builders from cctests.

R=machenbach@chromium.org
BUG=cctest

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoDelete dead FloatingPointHelper functions
jkummerow@chromium.org [Fri, 23 Aug 2013 11:06:49 +0000 (11:06 +0000)]
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

11 years agoFix crash due RegExpAtom method called on RegExpCharacterClass object.
bmeurer@chromium.org [Fri, 23 Aug 2013 11:06:16 +0000 (11:06 +0000)]
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

11 years agoCleanup and speedup MarkCompactCollector test case.
mstarzinger@chromium.org [Fri, 23 Aug 2013 11:04:25 +0000 (11:04 +0000)]
Cleanup and speedup MarkCompactCollector test case.

R=bmeurer@chromium.org
TEST=cctest/test-mark-compact/MarkCompactCollector

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix crashes of some CPU profiler tests on Windows after r16284
yurys@chromium.org [Fri, 23 Aug 2013 10:59:29 +0000 (10:59 +0000)]
Fix crashes of some CPU profiler tests on Windows after r16284

All the tests that started crashing create ProfilerEventsProcessor on the stack. After r16284 SamplingCircularQueue buffer is allocated as a field of the queue instead of separate heap object. This increased self size of ProfilerEventsProcessor by about 1Mb. Windows malloc fails to allocate such an object on the stack and crashes.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix scoping of function declarations in eval inside non-trivial local scope
rossberg@chromium.org [Fri, 23 Aug 2013 09:25:37 +0000 (09:25 +0000)]
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

11 years agoFix compilation on Windows after r16284
yurys@chromium.org [Fri, 23 Aug 2013 08:43:57 +0000 (08:43 +0000)]
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

11 years agoRewrite SamplingCircularQueue
yurys@chromium.org [Fri, 23 Aug 2013 08:22:07 +0000 (08:22 +0000)]
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

11 years agogrokdump: fix Oddball printing
jkummerow@chromium.org [Fri, 23 Aug 2013 08:17:54 +0000 (08:17 +0000)]
grokdump: fix Oddball printing

R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoClean up the redundant Int32Constant check which is covered by double case
jkummerow@chromium.org [Fri, 23 Aug 2013 08:11:12 +0000 (08:11 +0000)]
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

11 years agoMove OS/compiler/feature detection to public v8config.h header.
bmeurer@chromium.org [Fri, 23 Aug 2013 07:32:25 +0000 (07:32 +0000)]
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

11 years agoRename "parallel recompilation" to "concurrent recompilation".
yangguo@chromium.org [Thu, 22 Aug 2013 16:14:37 +0000 (16:14 +0000)]
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

11 years agoMake HConstant::InstanceOf less ambiguous.
mstarzinger@chromium.org [Thu, 22 Aug 2013 14:22:55 +0000 (14:22 +0000)]
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

11 years agoFix hidden properties on object with frozen prototype.
mstarzinger@chromium.org [Thu, 22 Aug 2013 13:51:32 +0000 (13:51 +0000)]
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

11 years agoRemove special case code for generalizing constants to fields.
verwaest@chromium.org [Thu, 22 Aug 2013 13:43:06 +0000 (13:43 +0000)]
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

11 years agoRemove dead methods related to InformativeDefinitions.
titzer@chromium.org [Thu, 22 Aug 2013 13:21:53 +0000 (13:21 +0000)]
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

11 years agoFix deoptimization bug, where recursive call can frighten and confuse the unwitting...
titzer@chromium.org [Thu, 22 Aug 2013 13:03:40 +0000 (13:03 +0000)]
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

11 years agoPrepare push to trunk. Now working on version 3.21.3.
verwaest@chromium.org [Thu, 22 Aug 2013 12:26:30 +0000 (12:26 +0000)]
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

11 years agoNever clear debug-stub call ICs. Make a clear distinction between is_debug_stub
verwaest@chromium.org [Thu, 22 Aug 2013 12:16:00 +0000 (12:16 +0000)]
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

11 years agoDrop unused rdtsc instruction.
bmeurer@chromium.org [Thu, 22 Aug 2013 11:58:20 +0000 (11:58 +0000)]
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

11 years agoRevert "Add (mostly Chromium-compatible) V8_OS_* defines to v8.gyp."
bmeurer@chromium.org [Thu, 22 Aug 2013 09:09:39 +0000 (09:09 +0000)]
Revert "Add (mostly Chromium-compatible) V8_OS_* defines to v8.gyp."

This reverts commit r16238 for not being able to use the defines
outside of libv8 (i.e. in tests). Will reland the #define's in a
build config header style.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoCleaned up nil comparisons in Hydrogen.
svenpanne@chromium.org [Thu, 22 Aug 2013 06:44:34 +0000 (06:44 +0000)]
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

11 years agoFix migration checks and extend them to the Scavenger.
mstarzinger@chromium.org [Wed, 21 Aug 2013 18:31:13 +0000 (18:31 +0000)]
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

11 years agoFix "Hole" leak in TryBuildConsolidatedElementLoad
jkummerow@chromium.org [Wed, 21 Aug 2013 15:31:03 +0000 (15:31 +0000)]
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

11 years agoAllow both "--no<flag>" and "--no-<flag>" to disable <flag>.
yangguo@chromium.org [Wed, 21 Aug 2013 15:17:23 +0000 (15:17 +0000)]
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

11 years agoPass checked values to HLoadNamedField, removing the need for extra type-check field.
verwaest@chromium.org [Wed, 21 Aug 2013 14:49:56 +0000 (14:49 +0000)]
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

11 years agoCleanup FooSpace::VerifyObject and ElementsAccessor::Validate.
mstarzinger@chromium.org [Wed, 21 Aug 2013 13:39:20 +0000 (13:39 +0000)]
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

11 years agoPrepare push to trunk. Now working on version 3.21.2.
verwaest@chromium.org [Wed, 21 Aug 2013 11:16:05 +0000 (11:16 +0000)]
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

11 years agoAdding missing operator!= for Handle and Persistent.
mstarzinger@chromium.org [Wed, 21 Aug 2013 10:49:29 +0000 (10:49 +0000)]
Adding missing operator!= for Handle and Persistent.

BUG=
R=mstarzinger@chromium.org

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

Patch from Marja Hölttä <marja@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoImprove detection of C++11 features.
bmeurer@chromium.org [Wed, 21 Aug 2013 10:43:50 +0000 (10:43 +0000)]
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

11 years agoUse CheckUsesForFlag to check flag in uses list
yangguo@chromium.org [Wed, 21 Aug 2013 08:28:59 +0000 (08:28 +0000)]
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

11 years agoMIPS: Fix bug that prevents JALR to JAL optimizations.
plind44@gmail.com [Tue, 20 Aug 2013 22:10:20 +0000 (22:10 +0000)]
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

11 years agoMIPS: Remove platform-specific dead code for KeyedStores
palfia@homejinni.com [Tue, 20 Aug 2013 18:07:22 +0000 (18:07 +0000)]
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

11 years agoFix a bug in Div when all uses are truncating
jkummerow@chromium.org [Tue, 20 Aug 2013 13:57:01 +0000 (13:57 +0000)]
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

11 years agoPromote ArrayBuffer, DataView and typed arrays to non-experimental.
dslomov@chromium.org [Tue, 20 Aug 2013 13:55:52 +0000 (13:55 +0000)]
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

11 years agoAdd warning to cctest when running multiple tests in sequence.
yangguo@chromium.org [Tue, 20 Aug 2013 13:20:40 +0000 (13:20 +0000)]
Add warning to cctest when running multiple tests in sequence.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoAdd X87 implementations for Integer32ToDouble, DoubleToI, DoubleToSmi
olivf@chromium.org [Tue, 20 Aug 2013 13:01:54 +0000 (13:01 +0000)]
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

11 years agoReplace OS::MemCopy with memcpy in typed array initialization.
dslomov@chromium.org [Tue, 20 Aug 2013 11:14:56 +0000 (11:14 +0000)]
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

11 years agoReland "Use V8_FINAL and V8_OVERRIDE in various places, fixing bugs revealed by them.".
bmeurer@chromium.org [Tue, 20 Aug 2013 11:10:24 +0000 (11:10 +0000)]
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

11 years agoRevert "Use V8_FINAL and V8_OVERRIDE in various places, fixing bugs revealed by them."
bmeurer@chromium.org [Tue, 20 Aug 2013 10:52:23 +0000 (10:52 +0000)]
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

11 years agoRemove access-check-failed callback after test.
yangguo@chromium.org [Tue, 20 Aug 2013 10:46:02 +0000 (10:46 +0000)]
Remove access-check-failed callback after test.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoVisual Studio 2012 and later support the C++11 final keyword.
bmeurer@chromium.org [Tue, 20 Aug 2013 09:37:21 +0000 (09:37 +0000)]
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

11 years agoConsistently use CompilationInfo::AbortOptimization.
mstarzinger@chromium.org [Tue, 20 Aug 2013 08:53:34 +0000 (08:53 +0000)]
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

11 years agoMove i18n break iterator C++ code to runtime
jochen@chromium.org [Tue, 20 Aug 2013 08:46:36 +0000 (08:46 +0000)]
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

11 years agoAdd (mostly Chromium-compatible) V8_OS_* defines to v8.gyp.
bmeurer@chromium.org [Tue, 20 Aug 2013 08:29:21 +0000 (08:29 +0000)]
Add (mostly Chromium-compatible) V8_OS_* defines to v8.gyp.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoFix null handle deref in InternalDateFormat
jochen@chromium.org [Tue, 20 Aug 2013 08:17:43 +0000 (08:17 +0000)]
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

11 years agoFix non-Xcode build on Mac with clang.
bmeurer@chromium.org [Tue, 20 Aug 2013 08:14:19 +0000 (08:14 +0000)]
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

11 years agoAvoid -O3 in nacl as it does not play well with -W.
jkummerow@chromium.org [Tue, 20 Aug 2013 08:12:19 +0000 (08:12 +0000)]
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

11 years agoDon't use Persistent in runtime
jochen@chromium.org [Tue, 20 Aug 2013 08:07:52 +0000 (08:07 +0000)]
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

11 years agoDuring bootstrapping, the script's name is not necessarily set.
jochen@chromium.org [Tue, 20 Aug 2013 08:06:48 +0000 (08:06 +0000)]
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

11 years agoUse V8_FINAL and V8_OVERRIDE in various places, fixing bugs revealed by them.
bmeurer@chromium.org [Tue, 20 Aug 2013 07:27:06 +0000 (07:27 +0000)]
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

11 years agoAdd V8_FINAL and V8_OVERRIDE macros for C++11 final/override.
bmeurer@chromium.org [Tue, 20 Aug 2013 06:51:58 +0000 (06:51 +0000)]
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

11 years agoRevert "Add FINAL and OVERRIDE macros for C++11 final/override."
bmeurer@chromium.org [Tue, 20 Aug 2013 06:39:04 +0000 (06:39 +0000)]
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

11 years agoRevert "Promote ArrayBuffer, DataView and typed arrays to non-experimental."
dslomov@chromium.org [Tue, 20 Aug 2013 01:37:09 +0000 (01:37 +0000)]
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

11 years agoPromote ArrayBuffer, DataView and typed arrays to non-experimental.
dslomov@chromium.org [Tue, 20 Aug 2013 00:48:25 +0000 (00:48 +0000)]
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

11 years agoRemove platform-specific dead code for KeyedStores
danno@chromium.org [Mon, 19 Aug 2013 22:12:46 +0000 (22:12 +0000)]
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

11 years agoFix invalid out-of-bounds store in MacroAssembler::Allocate.
mstarzinger@chromium.org [Mon, 19 Aug 2013 17:46:43 +0000 (17:46 +0000)]
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

11 years agoMIPS: Remove wrong restriction in GenerateDeoptJumpTable.
palfia@homejinni.com [Mon, 19 Aug 2013 16:02:50 +0000 (16:02 +0000)]
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

11 years agoAdd FINAL and OVERRIDE macros for C++11 final/override.
bmeurer@chromium.org [Mon, 19 Aug 2013 14:46:35 +0000 (14:46 +0000)]
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

11 years agoARM: Fix register misuse bug in Allocate().
bmeurer@chromium.org [Mon, 19 Aug 2013 13:37:57 +0000 (13:37 +0000)]
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

11 years agoPrevent empty handle dereference in Runtime_InternalNumberFormat.
mstarzinger@chromium.org [Mon, 19 Aug 2013 13:03:58 +0000 (13:03 +0000)]
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

11 years agoImprove generalization / migration tracing.
verwaest@chromium.org [Mon, 19 Aug 2013 12:32:50 +0000 (12:32 +0000)]
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

11 years agoTemporary workaround for GC stress builder.
mstarzinger@chromium.org [Mon, 19 Aug 2013 11:10:08 +0000 (11:10 +0000)]
Temporary workaround for GC stress builder.

R=hpayer@chromium.org, hpayer@google.com
TEST=cctest/test-debug/ScriptCollectedEventContext --gc-interval=500

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoClarify side effects of HTransitionElementsKind.
mstarzinger@chromium.org [Mon, 19 Aug 2013 10:55:51 +0000 (10:55 +0000)]
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

11 years agoPrepare push to trunk. Now working on version 3.21.1.
rossberg@chromium.org [Mon, 19 Aug 2013 09:34:18 +0000 (09:34 +0000)]
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

11 years agoDrop broken and unnecessary RequiredInputRepresentation() in HMathFloorOfDiv.
bmeurer@chromium.org [Mon, 19 Aug 2013 07:25:25 +0000 (07:25 +0000)]
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

11 years agoHandlify Accessors::FunctionSetPrototype method.
mstarzinger@chromium.org [Fri, 16 Aug 2013 21:27:11 +0000 (21:27 +0000)]
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

11 years agoRemove check for empty handle for CodeGenerator::MakeCodeEpilogue.
mstarzinger@chromium.org [Fri, 16 Aug 2013 19:52:29 +0000 (19:52 +0000)]
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

11 years agoStore copied value rather than the original double.
verwaest@chromium.org [Fri, 16 Aug 2013 15:43:42 +0000 (15:43 +0000)]
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

11 years agoMark HStringCompareAndBranch as potentially causing GCs.
mstarzinger@chromium.org [Fri, 16 Aug 2013 15:10:07 +0000 (15:10 +0000)]
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

11 years agoRevert "make Intl non-enumerable"
jochen@chromium.org [Fri, 16 Aug 2013 14:10:08 +0000 (14:10 +0000)]
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

11 years agoFix bug in test-code-stubs-x64 which meant not all registers were being checked.
danno@chromium.org [Fri, 16 Aug 2013 11:29:54 +0000 (11:29 +0000)]
Fix bug in test-code-stubs-x64 which meant not all registers were being checked.

Also change test-code-stubs-ia32 to use the same style as x64.

BUG=
R=danno@chromium.org

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

11 years agoMIPS: Never hchange nan-hole to hole or hole to nan-hole. Only allow changing hole...
palfia@homejinni.com [Wed, 14 Aug 2013 23:07:48 +0000 (23:07 +0000)]
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

11 years agoPrepare push to trunk. Now working on version 3.21.0
danno@chromium.org [Wed, 14 Aug 2013 17:10:14 +0000 (17:10 +0000)]
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

11 years agoFix GC Mole warning
danno@chromium.org [Wed, 14 Aug 2013 17:03:19 +0000 (17:03 +0000)]
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