platform/upstream/v8.git
11 years agoConvert CONSTANT_FUNCTION to CONSTANT
verwaest@chromium.org [Wed, 24 Jul 2013 12:34:50 +0000 (12:34 +0000)]
Convert CONSTANT_FUNCTION to CONSTANT

R=yangguo@chromium.org

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

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

11 years agoMore Math.abs tweaks for Intel platforms.
svenpanne@chromium.org [Wed, 24 Jul 2013 12:17:45 +0000 (12:17 +0000)]
More Math.abs tweaks for Intel platforms.

Made ia32/x64 code more uniform. Minor jump tweaks.

R=mstarzinger@chromium.org

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

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

11 years agoRestore test and behavior prior to deferred stack trace formatting.
yangguo@chromium.org [Wed, 24 Jul 2013 12:16:02 +0000 (12:16 +0000)]
Restore test and behavior prior to deferred stack trace formatting.

R=mstarzinger@chromium.org
TEST=stack-traces-overflow.js

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

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

11 years agoAdd deopt fuzzer tool.
machenbach@chromium.org [Wed, 24 Jul 2013 12:04:29 +0000 (12:04 +0000)]
Add deopt fuzzer tool.

Can be run as a stand-alone script like run-tests.

Executes first all tests of a given test suite to collect the maximum number of possible deopt points. Runs then a fuzzing phase with artificial deoptimizations triggered during testing.

Works for now with mjsunit and ia32 only.

R=jkummerow@chromium.org

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

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

11 years agoFactor out common code from platform-specific deoptimization. Fix Deoptimizer not...
titzer@chromium.org [Wed, 24 Jul 2013 11:12:17 +0000 (11:12 +0000)]
Factor out common code from platform-specific deoptimization. Fix Deoptimizer not to need to partition functions, but revoke their code before patching, allowing deoptimizing_code_list to be removed from Code; Add DeoptimizeCodeList API to deoptimizer, which works on a ZoneList<Code*>.

BUG=
R=mstarzinger@chromium.org, ulan@chromium.org

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

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

11 years agoRemove HCompareConstantEqAndBranch (never used), and its corresponding Lithium instru...
titzer@chromium.org [Wed, 24 Jul 2013 10:48:16 +0000 (10:48 +0000)]
Remove HCompareConstantEqAndBranch (never used), and its corresponding Lithium instructions.

BUG=
R=bmeurer@chromium.org, mvstanton@chromium.org

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

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

11 years agoExtend existing blink test expectations for slow tests.
machenbach@chromium.org [Wed, 24 Jul 2013 09:46:49 +0000 (09:46 +0000)]
Extend existing blink test expectations for slow tests.

The test plugins/js-from-destroy.html has crash and timeout expectations for some configurations but not on windows release. Add 'slow', since there is a timeout only on the v8 waterfall and only for windows release.

BUG=webkit.org/b/48655
R=mstarzinger@chromium.org

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

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

11 years agoAdded check to debug object migration crashes.
hpayer@chromium.org [Wed, 24 Jul 2013 09:19:55 +0000 (09:19 +0000)]
Added check to debug object migration crashes.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoObjects can no longer be migrated or evacuated into large object space.
hpayer@chromium.org [Wed, 24 Jul 2013 08:50:03 +0000 (08:50 +0000)]
Objects can no longer be migrated or evacuated into large object space.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoRemoved usesless test instruction.
svenpanne@chromium.org [Wed, 24 Jul 2013 08:32:21 +0000 (08:32 +0000)]
Removed usesless test instruction.

R=mstarzinger@chromium.org

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

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

11 years agoPrepare push to trunk. Now working on version 3.20.9.
yangguo@chromium.org [Wed, 24 Jul 2013 08:17:32 +0000 (08:17 +0000)]
Prepare push to trunk.  Now working on version 3.20.9.

R=jkummerow@chromium.org
BUG=

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

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

11 years agoAvoid adding HWrapReceiver during graph building.
mstarzinger@chromium.org [Wed, 24 Jul 2013 08:05:49 +0000 (08:05 +0000)]
Avoid adding HWrapReceiver during graph building.

This adds an early check to the graph builder which prevents adding an
HWrapReceiver instruction if the receiver type is already known at graph
building time. Also HAllocate no longer unnecessarily postpones setting
it's type until type inference but sets it right away. These changes are
in preparation for escape analysis.

R=titzer@chromium.org

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

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

11 years agoFix assert/crash in HandlePolymorphicCallNamed
jkummerow@chromium.org [Wed, 24 Jul 2013 08:00:52 +0000 (08:00 +0000)]
Fix assert/crash in HandlePolymorphicCallNamed

R=jkummerow@chromium.org
TEST=Ryan Sturgell's test runs through without crashing

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

Patch from Daniel Clifford <danno@chromium.org>.

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

11 years agoRevert "Flush parallel recompilation queues on context dispose notification."
yangguo@chromium.org [Wed, 24 Jul 2013 07:45:54 +0000 (07:45 +0000)]
Revert "Flush parallel recompilation queues on context dispose notification."

This reverts r15833.

R=jkummerow@chromium.org
BUG=

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

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

11 years agoSimplified large object allocation strategy.
hpayer@chromium.org [Tue, 23 Jul 2013 20:01:38 +0000 (20:01 +0000)]
Simplified large object allocation strategy.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoSupport double allocations when folding allocation.
hpayer@chromium.org [Tue, 23 Jul 2013 19:27:00 +0000 (19:27 +0000)]
Support double allocations when folding allocation.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoFix TargetSpace() method for box type.
hpayer@chromium.org [Tue, 23 Jul 2013 19:05:00 +0000 (19:05 +0000)]
Fix TargetSpace() method for box type.

BUG=
R=danno@chromium.org

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

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

11 years agoFlush parallel recompilation queues on context dispose notification.
yangguo@chromium.org [Tue, 23 Jul 2013 15:15:00 +0000 (15:15 +0000)]
Flush parallel recompilation queues on context dispose notification.

R=jkummerow@chromium.org
BUG=

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

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

11 years agoFix call stack sampling for the case when native callback invokes JS function
yurys@chromium.org [Tue, 23 Jul 2013 15:01:38 +0000 (15:01 +0000)]
Fix call stack sampling for the case when native callback invokes JS function

The SafeStackFrameIterator used by CPU profiler checked if Isolate::c_entry_fp is null and if it is not it would think that the control flow currently is in some native code. This assumption is wrong because the native code could have called a JS function but JSEntryStub would not reset c_entry_fp to NULL in that case. This CL adds a check in SafeStackFrameIterator::IsValidTop for the case when there is a JAVA_SCRIPT frame on top of EXIT frame.

Also this CL changes ExternalCallbackScope behavior to provide access to the whole stack of the scope objects instead of only top one. This allowed to provide exact callback names for those EXIT frames where external callbacks are called. Without this change it was possible only for the top most native call.

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

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

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

11 years agoMIPS: Eliminate map checks of constant values.
palfia@homejinni.com [Tue, 23 Jul 2013 14:29:04 +0000 (14:29 +0000)]
MIPS: Eliminate map checks of constant values.

Port r15819 (a453a0e)

BUG=

Review URL: https://codereview.chromium.org/19876006
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoAvoid duplication of OS::Thread methods for every POSIX platform.
bmeurer@chromium.org [Tue, 23 Jul 2013 13:47:50 +0000 (13:47 +0000)]
Avoid duplication of OS::Thread methods for every POSIX platform.

R=svenpanne@chromium.org

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

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

11 years agoIntroduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants
haitao.feng@intel.com [Tue, 23 Jul 2013 13:46:10 +0000 (13:46 +0000)]
Introduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants

BUG=None
R=danno@chromium.org

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

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

11 years agoDeprecate v8::V8::Pause/ResumeProfiler
yurys@chromium.org [Tue, 23 Jul 2013 13:44:15 +0000 (13:44 +0000)]
Deprecate v8::V8::Pause/ResumeProfiler

The methods were added to the public API in r1185 when Chrome DevTools were using the same output as produced for tick processor when --prof option is specified.

I don't see any existing clients of these methods and since they add a noticeable complexity to the profiler code I'd like to remove them.

BUG=None
R=yangguo@chromium.org

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

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

11 years agoUnify SoftDeoptimize and Deoptimize hydrogen instructions
danno@chromium.org [Tue, 23 Jul 2013 13:35:10 +0000 (13:35 +0000)]
Unify SoftDeoptimize and Deoptimize hydrogen instructions

BUG=chromium:258519
R=jkummerow@chromium.org

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

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

11 years agoRevert "Addressed danno's comments" and "Introduce kRegisterSize, kPCOnStackSize...
haitao.feng@intel.com [Tue, 23 Jul 2013 13:30:44 +0000 (13:30 +0000)]
Revert "Addressed danno's comments" and "Introduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants"

BUG=None
R=jkummerow@chromium.org

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

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

11 years agoAddressed danno's comments
haitao.feng@intel.com [Tue, 23 Jul 2013 13:01:59 +0000 (13:01 +0000)]
Addressed danno's comments

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

11 years agoIntroduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants
haitao.feng@intel.com [Tue, 23 Jul 2013 13:01:42 +0000 (13:01 +0000)]
Introduce kRegisterSize, kPCOnStackSize and kFPOnStackSize constants

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

11 years agoAlso eliminate map checks with transitions.
verwaest@chromium.org [Tue, 23 Jul 2013 10:01:06 +0000 (10:01 +0000)]
Also eliminate map checks with transitions.

R=ulan@chromium.org

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

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

11 years agoFix duplicated methods for POSIX platforms.
bmeurer@chromium.org [Tue, 23 Jul 2013 09:59:14 +0000 (09:59 +0000)]
Fix duplicated methods for POSIX platforms.

No need to duplicate OS::NumberOfCores() for every POSIX platform.
No need to duplicate OS::Sleep() for every POSIX platform.
No need to duplicate OS::Abort() and OS::DebugBreak() for every POSIX platform.
No need to duplicate OS::Free() for every POSIX platform.
Move #ifdef'd OS::ProtectCode() and OS::Guard() to platform-posix.cc.
No need to duplicate OS::AllocateAlignment() for every POSIX platform.
No need to duplicate OS::PostSetUp() for every POSIX platform.

R=svenpanne@chromium.org

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

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

11 years agoEliminate map checks of constant values.
verwaest@chromium.org [Tue, 23 Jul 2013 09:18:42 +0000 (09:18 +0000)]
Eliminate map checks of constant values.

R=ulan@chromium.org

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

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

11 years agoAvoid tagged values for Instructions that truncate the operands with ToNumber.
olivf@chromium.org [Tue, 23 Jul 2013 09:13:59 +0000 (09:13 +0000)]
Avoid tagged values for Instructions that truncate the operands with ToNumber.

I case the ToNumber is applied to a non numeric value but its not observable (some constants and oddballs) we should already do it in hydrogen...

BUG=
R=verwaest@chromium.org

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

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

11 years agoMove CpuProfiler code create events behind Logger code api.
loislo@chromium.org [Tue, 23 Jul 2013 08:12:15 +0000 (08:12 +0000)]
Move CpuProfiler code create events behind Logger code api.

CpuProfiler has almost the same api for CodeCreate* events
but it was calling separately.

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

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

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

11 years agoRip out infrastructure for deferred stack trace formatting.
yangguo@chromium.org [Tue, 23 Jul 2013 07:41:46 +0000 (07:41 +0000)]
Rip out infrastructure for deferred stack trace formatting.

R=mstarzinger@chromium.org
BUG=

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

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

11 years agoCosmetic changes.
yangguo@chromium.org [Tue, 23 Jul 2013 07:31:46 +0000 (07:31 +0000)]
Cosmetic changes.

R=bmeurer@chromium.org
BUG=

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

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

11 years agoTurn ToNumberStub into a hydrogen code stub.
bmeurer@chromium.org [Tue, 23 Jul 2013 06:02:54 +0000 (06:02 +0000)]
Turn ToNumberStub into a hydrogen code stub.

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

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

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

11 years agoMIPS: Ensure space for lazy deoptimization before calling IC.
palfia@homejinni.com [Mon, 22 Jul 2013 22:00:41 +0000 (22:00 +0000)]
MIPS: Ensure space for lazy deoptimization before calling IC.

Port r15808 (cc16b500)

Original commit message:
If IC triggers deoptimization, then subsequent patching might get invalid
target address that was overwritten.

BUG=

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

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

11 years agoAdd test case for issue 2793 about experimental natives.
mstarzinger@chromium.org [Mon, 22 Jul 2013 18:18:55 +0000 (18:18 +0000)]
Add test case for issue 2793 about experimental natives.

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

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

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

11 years agoMIPS: Prefill pre-allocated memory of folded allocation with one pointer fillers...
palfia@homejinni.com [Mon, 22 Jul 2013 18:16:44 +0000 (18:16 +0000)]
MIPS: Prefill pre-allocated memory of folded allocation with one pointer fillers when heap verifier is on.

Port r15798 (3b92806)

BUG=

Review URL: https://codereview.chromium.org/19485006
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoARM: Ensure space for lazy deoptimization before calling IC.
ulan@chromium.org [Mon, 22 Jul 2013 17:21:41 +0000 (17:21 +0000)]
ARM: Ensure space for lazy deoptimization before calling IC.

If IC triggers deoptimization, then subsequent patching might get invalid
target address that was overwritten.

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

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

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

11 years agoAdd fixed array to Type::LubBitset
verwaest@chromium.org [Mon, 22 Jul 2013 15:27:38 +0000 (15:27 +0000)]
Add fixed array to Type::LubBitset

R=mvstanton@chromium.org

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

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

11 years agoAvoid repeated rewrites of global store to constant IC due to store of same value.
verwaest@chromium.org [Mon, 22 Jul 2013 14:15:58 +0000 (14:15 +0000)]
Avoid repeated rewrites of global store to constant IC due to store of same value.

R=mvstanton@chromium.org

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

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

11 years agoExclude const-strings from global constant tracking.
verwaest@chromium.org [Mon, 22 Jul 2013 12:43:01 +0000 (12:43 +0000)]
Exclude const-strings from global constant tracking.

R=mvstanton@chromium.org

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

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

11 years agoLimit the amount of memory that can be folded together.
hpayer@chromium.org [Mon, 22 Jul 2013 12:34:23 +0000 (12:34 +0000)]
Limit the amount of memory that can be folded together.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoTrack all non-hole global constants.
verwaest@chromium.org [Mon, 22 Jul 2013 12:15:13 +0000 (12:15 +0000)]
Track all non-hole global constants.

R=mvstanton@chromium.org

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

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

11 years agoPrefill pre-allocated memory of folded allocation with one pointer fillers when heap...
hpayer@chromium.org [Mon, 22 Jul 2013 11:07:43 +0000 (11:07 +0000)]
Prefill pre-allocated memory of folded allocation with one pointer fillers when heap verifier is on.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoIn MacroAssembler::JumpIfNotBothSequentialAsciiStrings a custom mask
mvstanton@chromium.org [Mon, 22 Jul 2013 09:55:14 +0000 (09:55 +0000)]
In MacroAssembler::JumpIfNotBothSequentialAsciiStrings a custom mask
helps us decide if we have two ascii strings. We don't care if they
are internalized or not. A few days ago we flipped the meaning of the
internalized bit in INSTANCE_TYPE, and that broke this custom mask.
This CL effects a repair.

BUG=
R=yangguo@chromium.org

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

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

11 years agoPrepare push to trunk. Now working on version 3.20.8.
jkummerow@chromium.org [Mon, 22 Jul 2013 09:19:43 +0000 (09:19 +0000)]
Prepare push to trunk.  Now working on version 3.20.8.

R=mstarzinger@chromium.org

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

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

11 years agoTurn on parallel recompilation for tests that assert optimization status.
yangguo@chromium.org [Mon, 22 Jul 2013 09:16:33 +0000 (09:16 +0000)]
Turn on parallel recompilation for tests that assert optimization status.

R=mvstanton@chromium.org
BUG=

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

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

11 years agoES6: Implement WeakSet
mstarzinger@chromium.org [Mon, 22 Jul 2013 08:32:24 +0000 (08:32 +0000)]
ES6: Implement WeakSet

WeakSets work similar to ordinary Sets but the value (which must be an
object) is held weakly.

This is available under --harmony-collections

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

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

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

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

11 years agoReplace BuildExternalArrayElementAccess() with AddExternalArrayElementAccess().
bmeurer@chromium.org [Mon, 22 Jul 2013 08:20:47 +0000 (08:20 +0000)]
Replace BuildExternalArrayElementAccess() with AddExternalArrayElementAccess().

This is trivial cleanup. All calls to BuildExternalArrayElementAccess()
pass the result to AddInstruction().

R=svenpanne@chromium.org

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

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

11 years agoAdd AssertSmi() in x64 MacroAssembler::SmiTest().
bmeurer@chromium.org [Mon, 22 Jul 2013 07:09:13 +0000 (07:09 +0000)]
Add AssertSmi() in x64 MacroAssembler::SmiTest().

R=svenpanne@chromium.org

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

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

11 years agoReplace BuildFastElementAccess() with AddFastElementAccess().
bmeurer@chromium.org [Mon, 22 Jul 2013 07:00:46 +0000 (07:00 +0000)]
Replace BuildFastElementAccess() with AddFastElementAccess().

This is trivial cleanup. All calls to BuildFastElementAccess() pass
the result to AddInstruction().

R=svenpanne@chromium.org

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

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

11 years agoFix invalid SMI test in x64 ToNumberStub::Generate().
bmeurer@chromium.org [Mon, 22 Jul 2013 06:13:45 +0000 (06:13 +0000)]
Fix invalid SMI test in x64 ToNumberStub::Generate().

TBR=svenpanne@chromium.org

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

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

11 years agoUnify SMI case inlining for ToNumberStub.
bmeurer@chromium.org [Mon, 22 Jul 2013 05:50:10 +0000 (05:50 +0000)]
Unify SMI case inlining for ToNumberStub.

Use ShouldInlineSmiCase() on arm, mips and x64 similar to the ia32 port.

R=dslomov@chromium.org

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

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

11 years agoRevert "Implement simple effect typing for variables" and "Handle switch effects".
jkummerow@chromium.org [Fri, 19 Jul 2013 19:55:09 +0000 (19:55 +0000)]
Revert "Implement simple effect typing for variables" and "Handle switch effects".

This reverts r15776 and r15777 due to compile failures on Chromium Mac bots.

TBR=rossberg@chromium.org

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

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

11 years agoLogger: reorder methods in log.cc
loislo@chromium.org [Fri, 19 Jul 2013 15:57:18 +0000 (15:57 +0000)]
Logger: reorder methods in log.cc

No logic changes.

BUG=none
TEST=current test set
TBR=yurys@chromium.org

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

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

11 years agoLogger: extract CodeEventLogger classes.
loislo@chromium.org [Fri, 19 Jul 2013 14:58:53 +0000 (14:58 +0000)]
Logger: extract CodeEventLogger classes.

The idea is to extract all the CodeEvent loggers into separate classes
make an interface for code events and put them into a listeners array.

I extracted code that works with name_buffer into a separate base class CodeEventLogger.
And made JitLogger, LowLevelLogger and new CodeMap its descendants.

As a side effect I converted NameBuffer into nested class of CodeEventLogger
and converted NameMap into nested class of CodeMap.

BUG=260203
R=yangguo@chromium.org, yurys@chromium.org

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

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

11 years agoMIPS: With >= 64 non-string instance types, I removed an optimization that allowed...
palfia@homejinni.com [Fri, 19 Jul 2013 14:56:43 +0000 (14:56 +0000)]
MIPS: With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test.

Port r15773 (60aa9f0)

Original commit message:
With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test. (https://code.google.com/p/v8/source/detail?r=15358) But that change caused a regression, so here is an improvement:

Put the internalized string types in the lower 64 entries of
INSTANCE_TYPE, and non-internalized string types in the next 64 entries.
This way we can restore the single bit check.

BUG=

Review URL: https://codereview.chromium.org/19723008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

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

11 years agoFix unaligned accesses in back_edge tables.
palfia@homejinni.com [Fri, 19 Jul 2013 14:46:23 +0000 (14:46 +0000)]
Fix unaligned accesses in back_edge tables.

This patch fixes the step size of masm->pc_ in back_edge tables to words (4 bytes) to ensure 4 bytes alignment for read/write operations. Read and write of words (4 bytes) data from aligned space (address % 4 == 0) is more efficient on all platforms and especially on MIPS where without this alignment fix a kernel exception handler is used for every unaligned access.

This patch increases the size of back_edge tables by 3 bytes in every row. By the test it seem the back_edge table quite small in every/most cases (maximal length is 18 so in that case there are only 54 additional bytes with this patch).

BUG=

Patch from Douglas Leung <Douglas.Leung@imgtec.com>

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

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

11 years agoProxies: Make 'with' work, plus minor other fixes
rossberg@chromium.org [Fri, 19 Jul 2013 14:07:23 +0000 (14:07 +0000)]
Proxies: Make 'with' work, plus minor other fixes

Also fixes internal exception handling in several places of the runtime.

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

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

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

11 years agoFix deopt in store with effect context.
ulan@chromium.org [Fri, 19 Jul 2013 13:45:26 +0000 (13:45 +0000)]
Fix deopt in store with effect context.

R=verwaest@chromium.org

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

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

11 years agoAdd gitignore entries for MSVS files
jochen@chromium.org [Fri, 19 Jul 2013 13:39:21 +0000 (13:39 +0000)]
Add gitignore entries for MSVS files

BUG=none
R=jkummerow@chromium.org

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

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

11 years agoRename AllocationSiteInfo to AllocationMemento
mvstanton@chromium.org [Fri, 19 Jul 2013 13:30:49 +0000 (13:30 +0000)]
Rename AllocationSiteInfo to AllocationMemento

This is just a rename change with the exception of a bug found along the way in
CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub(). There, the
intent is to get the boilerplate object from an AllocationSite. But the wrong
HObjectAccess was used. It only succeeds because it happened to be the same
offset :).

BUG=
R=bmeurer@chromium.org

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

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

11 years agoHandle switch effects
rossberg@chromium.org [Fri, 19 Jul 2013 13:04:41 +0000 (13:04 +0000)]
Handle switch effects

R=titzer@chromium.org
BUG=

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

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

11 years agoImplement simple effect typing for variables
rossberg@chromium.org [Fri, 19 Jul 2013 12:54:27 +0000 (12:54 +0000)]
Implement simple effect typing for variables

For that, we maintain an abstract store typing of all variables with LOCAL location (i.e., those that do not escape the function's own scope). We treat assignments as sequential effects that modify this store.

When control flow branches, we have to compute the disjunction of possible effects. To that end, we represent the store as a stack of effect sets, such that we can cheaply push and pop "local" effects when control flow has to branch.

In cases of non-local control transfer from an unknown source, we currently erase all knowledge about the store.

The 'switch' statement is still to come.

For a formulation of the typing rules, see:

https://docs.google.com/a/google.com/file/d/0B3wuXSv9YKuKeUNkVXZDemZ0Z1E

;)

R=jkummerow@chromium.org
BUG=

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

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

11 years agoCleanup StringAddFlags.
bmeurer@chromium.org [Fri, 19 Jul 2013 11:52:42 +0000 (11:52 +0000)]
Cleanup StringAddFlags.

Avoid duplication of StringAddFlags in the platform specific code stubs header files.
Fix the inverted flag logic, replacing it with a scheme that is easier to understand.

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

R=mvstanton@chromium.org

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

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

11 years agoCleanup useless parameter object_is_smi for NumberToStringStub::GenerateLookupNumberS...
bmeurer@chromium.org [Fri, 19 Jul 2013 11:42:57 +0000 (11:42 +0000)]
Cleanup useless parameter object_is_smi for NumberToStringStub::GenerateLookupNumberStringCache().

object_is_smi was always false so there's no need to actually have it.

R=svenpanne@chromium.org

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

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

11 years agoWith >= 64 non-string instance types, I removed an optimization that allowed us to...
mvstanton@chromium.org [Fri, 19 Jul 2013 11:29:11 +0000 (11:29 +0000)]
With >= 64 non-string instance types, I removed an optimization that allowed us to detect internalized strings with a single bit test. (https://code.google.com/p/v8/source/detail?r=15358) But that change caused a regression, so here is an improvement:

Put the internalized string types in the lower 64 entries of
INSTANCE_TYPE, and non-internalized string types in the next 64 entries.
This way we can restore the single bit check.

BUG=
R=yangguo@chromium.org

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

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

11 years agoAdd support for explicit octal and binary integer literals
rossberg@chromium.org [Fri, 19 Jul 2013 09:57:35 +0000 (09:57 +0000)]
Add support for explicit octal and binary integer literals

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

ES6 extends the numeric literals to support explicit support
for binary and octal literals using the following syntax:

  0b10101
  0o777

This is currently behind the flag, --harmony-numeric-literals

BUG=2783
R=rossberg@chromium.org

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

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

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

11 years agoConsistently use HStringAdd instead of HCallStub with CodeStub::StringAdd.
bmeurer@chromium.org [Fri, 19 Jul 2013 09:42:15 +0000 (09:42 +0000)]
Consistently use HStringAdd instead of HCallStub with CodeStub::StringAdd.

Previously there were two ways to actually use the StringAddStub
from Hydrogen:

- Either using HStringAdd (which implied NO_STRING_CHECK_IN_STUB
  and and does the argument handling internally),
- or using HCallStub with CodeStub::StringAdd (which implied
  NO_STRING_ADD_FLAGS and expected the arguments to be on the
  stack already).

R=mvstanton@chromium.org

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

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

11 years agoMove FindCodeObject from Heap to Isolate.
svenpanne@chromium.org [Fri, 19 Jul 2013 09:39:01 +0000 (09:39 +0000)]
Move FindCodeObject from Heap to Isolate.

This removes the isolate=>heap=>isolate nonsense and has the additional bonus
that it re-enables printing of code objects in GDB. NOT: To make the latter
work, one has to adapt GDB any macros using FindCodeObject! Keeping things as it
is and outlining Isolate::heap() was not really an option...

Side note: Currently we are lucky that we still have Isolate::Current()
available in GDB, although it is marked as INLINE. :-}

R=verwaest@chromium.org

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

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

11 years agoDeprecate some debugger methods
yurys@chromium.org [Fri, 19 Jul 2013 09:38:18 +0000 (09:38 +0000)]
Deprecate some debugger methods

These methods have been superceeded by equivalents accepting object arguments exposing more details.

This is exactly the same change as r15708 which was reverted in r15710 due to pending Blink changes. Now that Blink is rolled to 154493 it should be safe to land this (required Blink change is 154386).

BUG=None
TBR=yangguo@chromium.org

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

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

11 years agoUse kPointerSize to compute the call instruction offset in the PatchedReturnSequence...
haitao.feng@intel.com [Fri, 19 Jul 2013 08:49:47 +0000 (08:49 +0000)]
Use kPointerSize to compute the call instruction offset in the PatchedReturnSequence for X64

BUG=
R=danno@chromium.org

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

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

11 years agoFix wrong bailout id in polymorphic stores.
verwaest@chromium.org [Fri, 19 Jul 2013 08:45:47 +0000 (08:45 +0000)]
Fix wrong bailout id in polymorphic stores.

BUG=chromium:259787
R=titzer@chromium.org, ulan@chromium.org

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

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

11 years agoFix %NeverOptimizeFunction runtime call.
mstarzinger@chromium.org [Fri, 19 Jul 2013 08:25:44 +0000 (08:25 +0000)]
Fix %NeverOptimizeFunction runtime call.

The current usage of this runtime function is broken as it does not
prevent inlining of the affected function but rather bails out from the
whole unit of compilation after trying to inline affected functions.
This simplifies said runtime function to avoid accidental misuse.

R=titzer@chromium.org
TEST=mjsunit/never-optimize

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

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

11 years agox64 support for d-to-i (truncated)
danno@chromium.org [Fri, 19 Jul 2013 08:21:41 +0000 (08:21 +0000)]
x64 support for d-to-i (truncated)

R=yangguo@chromium.org

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

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

11 years agoLogger: remove dependency between Logger and LogMessageBuilder.
loislo@chromium.org [Thu, 18 Jul 2013 17:19:31 +0000 (17:19 +0000)]
Logger: remove dependency between Logger and LogMessageBuilder.

LogMessageBuilder is a helper class for Log.
So I made it a nested class and removed the dependency from Logger.

BUG=none
TEST=no changes in the logic
R=yangguo@chromium.org, yurys@chromium.org

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

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

11 years agoDo not inline printing functions typically used via GDB.
svenpanne@chromium.org [Thu, 18 Jul 2013 14:40:59 +0000 (14:40 +0000)]
Do not inline printing functions typically used via GDB.

R=verwaest@chromium.org

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

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

11 years agoOne more Windows compilation fix after r15750
yurys@chromium.org [Thu, 18 Jul 2013 14:32:06 +0000 (14:32 +0000)]
One more Windows compilation fix after r15750

BUG=None
TBR=yangguo@chromium.org

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

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

11 years agoFix Windows compilation after r15750
yurys@chromium.org [Thu, 18 Jul 2013 14:28:00 +0000 (14:28 +0000)]
Fix Windows compilation after r15750

BUG=None
TBR=yangguo@chromium.org

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

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

11 years agoAdd named links to dependent_code in Map objects in heap snapshot.
alph@chromium.org [Thu, 18 Jul 2013 14:14:56 +0000 (14:14 +0000)]
Add named links to dependent_code in Map objects in heap snapshot.

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

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

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

11 years agoHandlify Accessors::FunctionGetArguments method.
mstarzinger@chromium.org [Thu, 18 Jul 2013 14:00:53 +0000 (14:00 +0000)]
Handlify Accessors::FunctionGetArguments method.

R=yangguo@chromium.org

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

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

11 years agoFix data race in SamplingCircularQueue
yurys@chromium.org [Thu, 18 Jul 2013 13:42:04 +0000 (13:42 +0000)]
Fix data race in SamplingCircularQueue

This change fixes data race described in the bug by adding Acquire_Load to SamplingCircularQueue::StartDequeue and Acquire_Store to SamplingCircularQueue::Enqueue.

Also the queue implementation imposed a constraint on the records it stored: the first AtomicWord in each record was a marker. For that purpose TickSampleEventRecord had filter field of type int. This approach is error prone, e.g. on x64 sizeof(AtomicWord) is 8 while sizeof(int) is 4. Moreover the queue needs such marker only at the beginning of chunk. I changed the queue so that it stores the marker explicitly as the first Cell in chunk and removed the filter field.

BUG=251218
R=loislo@chromium.org, yangguo@chromium.org

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

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

11 years agoExtract JitLogger from Logger class.
loislo@chromium.org [Thu, 18 Jul 2013 13:18:46 +0000 (13:18 +0000)]
Extract JitLogger from Logger class.

Second patch from the set.

BUG=260203
TEST=logic wasn't changed
R=yangguo@chromium.org, yurys@chromium.org

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

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

11 years agoFix --track_gc_object_stats option.
danno@chromium.org [Thu, 18 Jul 2013 13:00:40 +0000 (13:00 +0000)]
Fix --track_gc_object_stats option.

 - Update ObjectStatsVisitTracker::Visit function to check if CodeCache is of
   CodeCache type, and extract the FixedArray from the struct if so
 - Fix typo in v8-counters.h where count_of_FIXED_ARRAY_XXX fields weren't being
   initialized.

BUG=v8:2780
R=danno@chromium.org, hpayer@chromium.org

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

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

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

11 years agoFix GC issue in Runtime_DebugEvaluate.
yangguo@chromium.org [Thu, 18 Jul 2013 12:25:22 +0000 (12:25 +0000)]
Fix GC issue in Runtime_DebugEvaluate.

R=hpayer@chromium.org
BUG=

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

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

11 years agoUpdate blink test expectations.
machenbach@chromium.org [Thu, 18 Jul 2013 12:22:23 +0000 (12:22 +0000)]
Update blink test expectations.

The original expectations from blink contain crash expectations for these three tests. We overwrote those by adding timeout.

R=jkummerow@chromium.org

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

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

11 years agoDisable some tests for nacl runs.
machenbach@chromium.org [Thu, 18 Jul 2013 12:21:46 +0000 (12:21 +0000)]
Disable some tests for nacl runs.

These tests fail with the nacl/v8 builders.

Patch from bradchen@chromium.org.

R=bmeurer@chromium.org

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

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

11 years agoFix NaCl regression caused by pepper revision 28.
machenbach@chromium.org [Thu, 18 Jul 2013 12:18:35 +0000 (12:18 +0000)]
Fix NaCl regression caused by pepper revision 28.

Patch from bradchen@chromium.org.

Prevents use of PROT_EXEC for NaCl builds

R=bmeurer@chromium.org

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

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

11 years agoHydrogen array accesses: switch from elements_kind to map based polymorphism
jkummerow@chromium.org [Thu, 18 Jul 2013 09:46:56 +0000 (09:46 +0000)]
Hydrogen array accesses: switch from elements_kind to map based polymorphism

R=verwaest@chromium.org

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

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

11 years agoUse C++11 deleted functions feature if available.
bmeurer@chromium.org [Thu, 18 Jul 2013 09:25:54 +0000 (09:25 +0000)]
Use C++11 deleted functions feature if available.

Implement DISALLOW_COPY_AND_ASSIGN and DISALLOW_IMPLICIT_CONSTRUCTORS
using C++11 deleted functions if possible.

R=svenpanne@chromium.org

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

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

11 years agoFixed type feedback in presence of negative lookups.
svenpanne@chromium.org [Thu, 18 Jul 2013 09:12:44 +0000 (09:12 +0000)]
Fixed type feedback in presence of negative lookups.

To fix the issue at hand regarding constant function calls and perhaps
other hidden issues regarding negative lookups, we basically add a
"marker instruction", just for harvesting purposes. Our type feedback
oracle is really, really fragile, we should better switch to some more
explicit and robust scheme soon.

BUG=chromium:252797
R=mstarzinger@chromium.org

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

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

11 years agoDouble align fast literals of fast double elements kind.
hpayer@chromium.org [Thu, 18 Jul 2013 08:42:03 +0000 (08:42 +0000)]
Double align fast literals of fast double elements kind.

BUG=
R=mstarzinger@chromium.org

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

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

11 years agoMake deoptimization stress count global.
machenbach@chromium.org [Thu, 18 Jul 2013 08:12:01 +0000 (08:12 +0000)]
Make deoptimization stress count global.

Store the deopt stress counter per isolate instead of per shared function info. The old field is removed.

Enable output of the counter value with a new flag.

R=mstarzinger@chromium.org

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

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

11 years agoHandlify JSFunction::SetPrototype method.
mstarzinger@chromium.org [Thu, 18 Jul 2013 07:59:48 +0000 (07:59 +0000)]
Handlify JSFunction::SetPrototype method.

R=verwaest@chromium.org

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

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

11 years agoJust check for C++ version.
bmeurer@chromium.org [Thu, 18 Jul 2013 07:50:33 +0000 (07:50 +0000)]
Just check for C++ version.

This fixes build breakage introduced with r15736.

TBR=svenpanne@chromium.org

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

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

11 years agoUse C++11 static_assert() if available.
bmeurer@chromium.org [Thu, 18 Jul 2013 07:43:41 +0000 (07:43 +0000)]
Use C++11 static_assert() if available.

R=svenpanne@chromium.org

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

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

11 years agoRevert "Deprecate some debugger methods"
yurys@chromium.org [Thu, 18 Jul 2013 07:34:19 +0000 (07:34 +0000)]
Revert "Deprecate some debugger methods"

This reverts commit 69957c36edaebe0b9b614099eb1b067fb0208671. Blink roll this patch depends on was reverted for some reason.

BUG=None
TBR=yangguo@chromium.org

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

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

11 years agoDeprecate some debugger methods
yurys@chromium.org [Thu, 18 Jul 2013 06:51:03 +0000 (06:51 +0000)]
Deprecate some debugger methods

These methods have been superceeded by equivalents accepting object arguments exposing more details.

This is exactly the same change as r15708 which was reverted in r15710 due to pending Blink changes.

BUG=None
TBR=yangguo@chromium.org

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

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

11 years agoMIPS: Improve code aging sequence.
palfia@homejinni.com [Wed, 17 Jul 2013 23:57:32 +0000 (23:57 +0000)]
MIPS: Improve code aging sequence.

Port r15697 (61d56196)

Original commit message:
The code aging sequence contains a load which is unecessary for optimised
function. This has been replaced by a nop.

BUG=

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

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