whesse@chromium.org [Fri, 4 Mar 2011 13:01:47 +0000 (13:01 +0000)]
X64: Fix error in Win64 platform specific code in regexp stub.
Review URL: http://codereview.chromium.org/6626011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7062
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 4 Mar 2011 12:34:05 +0000 (12:34 +0000)]
Fix X64 Crankshaft error on Win64 platform, in deoptimizer-x64.cc parameter passing.
Review URL: http://codereview.chromium.org/6623013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7061
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Fri, 4 Mar 2011 12:09:54 +0000 (12:09 +0000)]
Reorganize code for range analysis and suppress unnecessary debug printing of unknown ranges.
Review URL: http://codereview.chromium.org/6611020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7060
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 4 Mar 2011 10:12:33 +0000 (10:12 +0000)]
Start sampler for the runtime profiler even when we can't setup a signal handler.
Review URL: http://codereview.chromium.org/6625013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7059
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Fri, 4 Mar 2011 10:07:43 +0000 (10:07 +0000)]
Change the translation of polymorphic stores.
They do not use subgraphs or subgraph scopes. Instead of computing a list
of single-block subgraphs and then adding all the edges afterward, build
both the blocks and edges directly.
Review URL: http://codereview.chromium.org/6615014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7058
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 4 Mar 2011 09:36:04 +0000 (09:36 +0000)]
Add missing cast.
Review URL: http://codereview.chromium.org/6623010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7057
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 4 Mar 2011 09:07:31 +0000 (09:07 +0000)]
Remove unused label from lithium-codegen-ia32
Review URL: http://codereview.chromium.org/6615007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7056
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 4 Mar 2011 07:36:52 +0000 (07:36 +0000)]
Minor bug in int32 TypeRecordingBinaryOpStub.
BUG=none
TEST=none
Patch by Rodolph Perfetta from ARM Ltd.
Review URL: http://codereview.chromium.org/6612017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7055
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Fri, 4 Mar 2011 00:28:54 +0000 (00:28 +0000)]
Fix presubmit.
TBR=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6603032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7054
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Fri, 4 Mar 2011 00:21:52 +0000 (00:21 +0000)]
Passing strict mode throughout SetElement.
Throw if assigning to read only element.
Adding tests for element assignment in strict mode.
Fix tests for strict mode SetElement.
Review URL: http://codereview.chromium.org/6613005/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7053
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
cira@chromium.org [Thu, 3 Mar 2011 17:32:18 +0000 (17:32 +0000)]
Adding break iterator support to the i18n api extension.
This is vendor specific, and is prefixed by v8.
WebKit layout tests will be added in a separate CL.
Review URL: http://codereview.chromium.org/6610006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7051
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Thu, 3 Mar 2011 16:17:28 +0000 (16:17 +0000)]
Renaming strict to strict_mode for uniformity.
Review URL: http://codereview.chromium.org/6611003/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7050
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 3 Mar 2011 16:09:52 +0000 (16:09 +0000)]
Revert change 7048
Review URL: http://codereview.chromium.org/6613019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7049
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 3 Mar 2011 15:36:13 +0000 (15:36 +0000)]
X64 Crankshaft: Fix and enable StoreContextSlot in lithium codegen on x64.
Review URL: http://codereview.chromium.org/6614017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7048
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 3 Mar 2011 13:50:16 +0000 (13:50 +0000)]
Mark HChange that convert to int32 with truncation with the appropiate flag.
Before we would compute the flag by iterating over all uses. The truncating
flag is always determined at construction time since we already computed
the flag for all other instructions before inserting HChange instructions.
Review URL: http://codereview.chromium.org/6615012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7047
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 3 Mar 2011 13:36:31 +0000 (13:36 +0000)]
Remove tests for being the normal array constructor from the ArrayConstructCode builtin.
Review URL: http://codereview.chromium.org/6613016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7046
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 3 Mar 2011 13:02:56 +0000 (13:02 +0000)]
Refactor translation of short-circuit logical operations to avoid subgraphs.
Do not use a subgraph or subgraph scope for the Hydrogen translation
of the short-circuit logical operations.
Review URL: http://codereview.chromium.org/6615010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7045
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 3 Mar 2011 12:56:14 +0000 (12:56 +0000)]
More cases of CallFunction that doesn't work correctly.
Review URL: http://codereview.chromium.org/6603015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7044
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 3 Mar 2011 12:44:39 +0000 (12:44 +0000)]
Undo change from .call to %_CallFunction.
The latter doesn't handle promotion of null/undefined to global object as
receiver for non-strict functions.
Review URL: http://codereview.chromium.org/6615013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7043
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 3 Mar 2011 12:21:37 +0000 (12:21 +0000)]
Add new ARM macro assembler function CompareRoot left out of previous commit.
Review URL: http://codereview.chromium.org/6614015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7042
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 3 Mar 2011 12:16:21 +0000 (12:16 +0000)]
Simplify test for typeof x == 'y' on all platforms.
Review URL: http://codereview.chromium.org/6606005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7041
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 3 Mar 2011 11:49:03 +0000 (11:49 +0000)]
Stop using plain Arrays internally in built-in functions.
In built-in code we use arrays for internal computations.
This makes it possible to affect the built-in code by putting getters
or setters on the Array prototype chain.
This adds a new internal Array constructor that creates Arrays with
a very simplistic prototype chain that doesn't include any publicly
visible objects. These Arrays shoudl ofcourse never leak outside the
builtins, since that would expose the prototype object.
The prototype object contains only the array functions that we use:
push, pop and join (and not even a toString, so it doesn't stringify
well).
Also change uses of .call to %_CallFunction.
BUG=1206
Review URL: http://codereview.chromium.org/6602081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7040
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 3 Mar 2011 10:16:22 +0000 (10:16 +0000)]
Handled return-value of SetElement in some cases, or avoided it in other.
SetElement can cause an exception to be thrown. If its return value
isn't checked, this exception might not be handled at the correct time.
In some cases, it's a matter of returning Exception::Failure() from
a runtime function.
In other cases, code using SetElement on a JSArray has been changed
to setting directly on a FixedArray and only creating the JSArray
at the end.
Review URL: http://codereview.chromium.org/6588130
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7039
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 3 Mar 2011 09:46:27 +0000 (09:46 +0000)]
Fix mistake in r7033
TBR=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6614012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7038
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 3 Mar 2011 09:33:08 +0000 (09:33 +0000)]
Add lithium support for %_GetCachedArrayIndex for IA32 and X64
BUG=v8:1093
Review URL: http://codereview.chromium.org/6611014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7037
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 3 Mar 2011 08:50:35 +0000 (08:50 +0000)]
Remove unwanted character
TBR=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6615008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7036
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 3 Mar 2011 08:43:55 +0000 (08:43 +0000)]
Turn on crankshaft as the default for X64 and ARM
Review URL: http://codereview.chromium.org/6603012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7035
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 3 Mar 2011 07:36:04 +0000 (07:36 +0000)]
ARM: Support %_SwapElements in the full compiler
Review URL: http://codereview.chromium.org/6597106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7033
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 3 Mar 2011 07:14:55 +0000 (07:14 +0000)]
Fixed lol SetProperty() calls to specify the needed strict mode.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6615006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7032
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 2 Mar 2011 15:04:20 +0000 (15:04 +0000)]
Add ArithmeticD(MOD) to x64 optimizing code generator. Minor changes to ArithmeticD on other platforms.
Review URL: http://codereview.chromium.org/6594118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7029
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Wed, 2 Mar 2011 14:40:38 +0000 (14:40 +0000)]
ARM: Implement untagged input for TranscendentalCacheStub.
Review URL: http://codereview.chromium.org/6591073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7028
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 2 Mar 2011 14:09:59 +0000 (14:09 +0000)]
Remove some more uses of subgraphs and more cleanup of the graph builder.
Do not use subgraphs to implement the translation of simple branching
control flow, for the function body entry, or for labeled blocks.
Combine all the loop construction functions into a single one.
Resolve a possible problem with duplicate AST IDs used both for joined loop
break blocks, the normal loop exit, and for their common successor, by never
introducing the extra (successor) block and instead making the normal loop
exit a predecessor of the break join block. There is a similar issue with
joined continue blocks.
Remove a (never needed) two-element zone list per each time we replace one
hydrogen value with another.
Review URL: http://codereview.chromium.org/6604002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7027
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 2 Mar 2011 13:51:41 +0000 (13:51 +0000)]
Delete empty directories.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7026
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 2 Mar 2011 13:29:59 +0000 (13:29 +0000)]
Prepare push to trunk. Now working on version 3.2.0.
Review URL: http://codereview.chromium.org/6588118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7022
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 2 Mar 2011 12:26:20 +0000 (12:26 +0000)]
Add MarkAsCall to the LArithmeticD::MOD instruction, that calls a C function, on ia32 platform
Review URL: http://codereview.chromium.org/6596105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7021
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 2 Mar 2011 11:45:31 +0000 (11:45 +0000)]
Generalize fix for overflowing of the frame-element constant pool.
BUG=74627
Review URL: http://codereview.chromium.org/6588116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7018
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 2 Mar 2011 11:09:25 +0000 (11:09 +0000)]
Translate loops without using subgraphs.
Build all loop graphs without using class HSubgraph. This also eliminates a
silly goto for the update expression of a for loop.
Support for peeling loops is removed because it's currently untested.
Review URL: http://codereview.chromium.org/6602031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7017
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 2 Mar 2011 10:16:47 +0000 (10:16 +0000)]
Enable optimizing JSFunctions that are in new-space.
It avoids strange performance behavior where hot functions do not
get optimized if there is no GC to promote them, and it does not seem
to hurt us otherwise.
Review URL: http://codereview.chromium.org/6594073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7016
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 2 Mar 2011 10:12:33 +0000 (10:12 +0000)]
X64: implement DoHasCachedArrayIndex in lithium compiler.
Review URL: http://codereview.chromium.org/6596104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7015
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 2 Mar 2011 09:31:42 +0000 (09:31 +0000)]
Implement int32 TypeRecordingBinaryOp on ARM.
TEST=none
BUG=none
Patch by Rodolph Perfetta from ARM Ltd.
Review URL: http://codereview.chromium.org/6594009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7014
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 2 Mar 2011 09:28:04 +0000 (09:28 +0000)]
X64: Implement StringCharAtStub which is used from lithium codegen.
This fixes issue 1116 and enables the stub in lithium codegen.
Review URL: http://codereview.chromium.org/6588113
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7013
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 2 Mar 2011 09:16:05 +0000 (09:16 +0000)]
Adding files for LiveObjectList implementation.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6357005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7012
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 2 Mar 2011 08:10:38 +0000 (08:10 +0000)]
Adding debugger interface and runtime functions hooks for supporting
LiveObjectList functionality.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6351007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7011
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 2 Mar 2011 07:52:14 +0000 (07:52 +0000)]
X64: Always use rax as left register from DoInstanceOfKnownGlobal.
On IA32 we use InstanceofStub::left(), but on x64 we have just used rax and rdx directly. This fixes the assertion crashes on x64 crankshaft.
Review URL: http://codereview.chromium.org/6596101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7010
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 2 Mar 2011 07:32:59 +0000 (07:32 +0000)]
Remove break iterator support from the i18n api extension. It breaks
the Windows WebCore build.
http://build.chromium.org/p/client.v8/builders/Webkit/builds/854/steps/compile/logs/stdio
TBR=cira@chromium.org
Review URL: http://codereview.chromium.org/6596100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7009
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 2 Mar 2011 07:12:53 +0000 (07:12 +0000)]
Attempt to fix WebCore windows build.
If this does not work I will revert the latests changes to the
experimental i8n extension.
TBR=cira@chromium.org
Review URL: http://codereview.chromium.org/6594111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7008
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Wed, 2 Mar 2011 04:53:43 +0000 (04:53 +0000)]
Assignment to read only properties throws in strict mode.
Review URL: http://codereview.chromium.org/6594037/
Revert "Revert "Assignment to read only properties throws in strict mode.""
This reverts commit
aefcd82e1d36d458dd071ebf4777340f08aa67b1.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7007
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
cira@chromium.org [Tue, 1 Mar 2011 19:43:28 +0000 (19:43 +0000)]
Adding break iterator support to the i18n api extension.
This is vendor specific, and is prefixed by v8.
WebKit layout tests will be added in a separate CL.
Review URL: http://codereview.chromium.org/6598014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7006
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 1 Mar 2011 19:05:06 +0000 (19:05 +0000)]
Allow eval to be overridden with a callable non-function object.
We simply need to remove early checks in the resolve eval runtime
functions. CallFunctionStub that follows will handle non-functions in
the right way.
Review URL: http://codereview.chromium.org/6591075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7005
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 1 Mar 2011 17:38:49 +0000 (17:38 +0000)]
Refactor heap profiler's code to make possible including
into heap snapshots non-HeapObjects. This is needed as a
preparation for adding DOM subtrees tracking.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6596073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7004
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 1 Mar 2011 16:32:30 +0000 (16:32 +0000)]
Revert 6996, causes Mozilla debug failures on x64 with crankshaft.
Review URL: http://codereview.chromium.org/6594076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7003
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 1 Mar 2011 15:41:23 +0000 (15:41 +0000)]
Correctly maintain virtual frame in unary operations on ia32.
Review URL: http://codereview.chromium.org/6591070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7000
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 1 Mar 2011 15:37:24 +0000 (15:37 +0000)]
Add lazy deoptimization environment to instanceof by marking it as a call.
This fixes an assert when an exception is thrown inside instanceof.
BUG=v8:1207
TEST=mjsunit/regress/regress-1207.js
Review URL: http://codereview.chromium.org/6588083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6999
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 1 Mar 2011 15:34:23 +0000 (15:34 +0000)]
Port eval resolve in call optimization from classic to full codegen.
Review URL: http://codereview.chromium.org/6598066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6998
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 1 Mar 2011 14:49:07 +0000 (14:49 +0000)]
Small fix for when not building with OBJECT_PRINT defined.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6602034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6997
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 1 Mar 2011 14:33:33 +0000 (14:33 +0000)]
Reenable DoStoreContextSlot, I can't reproduce any local bugs on this.
Review URL: http://codereview.chromium.org/6588082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6996
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 1 Mar 2011 14:29:27 +0000 (14:29 +0000)]
X64: Add inline SwapElements to fundamental code generator on x64 platform.
Review URL: http://codereview.chromium.org/6594074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6995
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 1 Mar 2011 14:09:23 +0000 (14:09 +0000)]
ARM: Support inlined version of %_FastAsciiArrayJoin on ARM
Review URL: http://codereview.chromium.org/6594071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6994
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 1 Mar 2011 14:00:55 +0000 (14:00 +0000)]
Remove HandleCell and use GlobalHandle and HandleScope::Escape instead.
Added HandleScope::Escape to HandleScope to allow exiting a value
from a scope.
Review URL: http://codereview.chromium.org/6594075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6993
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 1 Mar 2011 13:16:57 +0000 (13:16 +0000)]
Fix several evaluation order sensitive GC-unsafe places.
Review URL: http://codereview.chromium.org/6596070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6991
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 1 Mar 2011 12:26:19 +0000 (12:26 +0000)]
Use correct type for the map-counters flag used in d8.
Review URL: http://codereview.chromium.org/6598063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6989
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 1 Mar 2011 11:36:45 +0000 (11:36 +0000)]
Remove exception for mjsunit/regress/regress-deopt-gc on arm and x64.
This was wrongly marked as skip since we do not need to patch reloc info on x64 and arm when doing deoptization (issue 1094).
Review URL: http://codereview.chromium.org/6597067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6984
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 1 Mar 2011 11:23:29 +0000 (11:23 +0000)]
ARM: Fix unaligned read/write
Fixed Building the simulator with CAN_USE_UNALIGNED_ACCESSES defined.
Fixed a bug in the code generator where it was doing unaliged read and write.
Review URL: http://codereview.chromium.org/6598062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6983
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 1 Mar 2011 10:58:43 +0000 (10:58 +0000)]
Make the materialization of smi constants consistent between the two compilers.
This change makes the full code generator always materialize smi constants to match the behavior
of the environment tracked in the optimizing compiler. The mismatch between environment
and what the non-optimized code causes problems and potentially crashes when doing deoptimization
and OSR.
BUG=67732
Review URL: http://codereview.chromium.org/6592064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6982
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 1 Mar 2011 09:32:45 +0000 (09:32 +0000)]
Fix a stack height mismatch when deoptimizing.
When deoptimizing from the key subexpression of a keyed arguments access,
the unoptimized code expects to find the value of the receiver on the
expression stack. The environment of the optimizing compiler did not
contain this value during evaluation of the key subexpression.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6981
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 1 Mar 2011 09:30:56 +0000 (09:30 +0000)]
X64 Crankshaft: Add DoPower to lithium compiler on x64 platform.
Review URL: http://codereview.chromium.org/6592038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6980
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 1 Mar 2011 08:17:13 +0000 (08:17 +0000)]
Minor change to FullCodeGenerator::EmitFastAsciiArrayJoin
The counting loop is always run at least once, and checking the loop condition once is sufficient.
Review URL: http://codereview.chromium.org/6592010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6979
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 1 Mar 2011 08:09:17 +0000 (08:09 +0000)]
Do not allow non-configurable global properties to be made configurable (fixes issue 1213).
We do not currently check that a global property is actually
configurable before overwriting it with a new property.
Review URL: http://codereview.chromium.org/6597045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6978
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 1 Mar 2011 06:10:41 +0000 (06:10 +0000)]
Revert "Assignment to read only properties throws in strict mode."
This reverts commit
503f2a501e504f330821f247074e731aa649b1f0.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6977
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 1 Mar 2011 01:42:37 +0000 (01:42 +0000)]
Assignment to read only properties throws in strict mode.
Review URL: http://codereview.chromium.org/6594037/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6976
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Mon, 28 Feb 2011 19:07:02 +0000 (19:07 +0000)]
Strict mode - allow function only in SourceElements.
Review URL: http://codereview.chromium.org/6598023/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6975
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Mon, 28 Feb 2011 18:38:17 +0000 (18:38 +0000)]
Disable const in strict mode.
Using const in strict mode yields SyntaxError.
Review URL: http://codereview.chromium.org/6592031/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6974
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 28 Feb 2011 14:57:14 +0000 (14:57 +0000)]
Add MathPowStub to x64 platform, and fix error in stub on ia32 platform.
Review URL: http://codereview.chromium.org/6602007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6973
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 28 Feb 2011 13:57:42 +0000 (13:57 +0000)]
X64: Add a jumptable to for deoptimization checks on X64.
The current version includes an extra jump compared to IA32, because
we need to load the jump address into a register and do an indirect
jump, but in the normal case we just jump over this by negating the
deoptimization conditional.
Review URL: http://codereview.chromium.org/6596032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6972
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 28 Feb 2011 13:29:05 +0000 (13:29 +0000)]
Remove Error.prototype.toStrings prototype property.
I did not use the helper function for adding this builtin function which meant that I missed the removal of the prototype property.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6588050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6971
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 28 Feb 2011 13:20:10 +0000 (13:20 +0000)]
When checking number of parameters in MakeCrankshaft code don't forget about receiver.
BUG=v8:1209
TEST=test/mjsunit/regress/regress-1209.js
Review URL: http://codereview.chromium.org/6591042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6969
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 28 Feb 2011 12:30:11 +0000 (12:30 +0000)]
Prepare push to trunk. Now working on version 3.1.8.
Review URL: http://codereview.chromium.org/6598035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6965
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 28 Feb 2011 12:09:53 +0000 (12:09 +0000)]
Detect overflow of contant pool in virtual frame compiler.
Gracefully fallback to a different code pattern when that happens.
BUG=http://crbug.com/61802
TEST=none
Review URL: http://codereview.chromium.org/6599002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6964
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 28 Feb 2011 11:52:06 +0000 (11:52 +0000)]
ARM: Fix the use of the ToBooleanStub when VFP3 is not available
Review URL: http://codereview.chromium.org/6594045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6963
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 28 Feb 2011 08:52:00 +0000 (08:52 +0000)]
Remove all functionality from class HSubgraph.
Move the member functions of HSubgraph to HGraphBuilder.
Review URL: http://codereview.chromium.org/6573006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6958
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 25 Feb 2011 15:00:46 +0000 (15:00 +0000)]
Flush watermarks after compacting map space on mark-sweep collection.
MapCompact does not use MC-allocation routines so watermarks are not updated automatically and might become inconsistent.
BUG=http://crbug.com/59688
Review URL: http://codereview.chromium.org/6588007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6954
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 25 Feb 2011 13:29:02 +0000 (13:29 +0000)]
ARM: Align full codegen with IA32 version
Use ToBooleanStub in DoTest instead of runtime call.
Try allocation in generated code in VisitRegExpLiteral.
Use TranscendentalCacheStub for sin, cos and log instead of calling runtime.
Minor "alignment" of the full codegen code across platforms.
Review URL: http://codereview.chromium.org/6597003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6953
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 25 Feb 2011 13:22:38 +0000 (13:22 +0000)]
X64 Crankshaft: Fix error in r6897. Restore context register after KeyedCallIC. Only non-trivial change is to lithium-codegen-x64.cc.Update copyright dates on all recently modified X64 platform files.
Review URL: http://codereview.chromium.org/6592008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6952
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Fri, 25 Feb 2011 13:04:07 +0000 (13:04 +0000)]
ARM: Fix instruction double to i
The double to i convertion should round to zero not infinity.
Thes bug was revealed by http://codereview.chromium.org/6597003, where the value of (x * 1.
0000000001) | 0 was x - 1 and not x when x was a negative smi.
I will not commit http://codereview.chromium.org/6597003 before this is committed.
TEST=test/mjsunit/smi-ops-inlined.js
Review URL: http://codereview.chromium.org/6594008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6951
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 25 Feb 2011 12:56:46 +0000 (12:56 +0000)]
Fix assertion failure because of incorrect use of MaybeObjects.
Review URL: http://codereview.chromium.org/6599001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6950
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 25 Feb 2011 12:12:47 +0000 (12:12 +0000)]
X64 Crankshaft: Add untagged version of TranscendentalCacheStub to x64, enable Cos, Sin, and Log in lithium.
Review URL: http://codereview.chromium.org/6580032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6949
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 25 Feb 2011 11:30:22 +0000 (11:30 +0000)]
Fix bug 73940.
I think this actually turns the code in question into dead code, because the current definition of UseSparseVariant only allows arrays in DictionaryMode, and these never return encoded ranges from %GetArrayKeys. This is a subtle link between the definition of %GetArrayKeys and UseSparseVariant, so I would prefer to keep the code rather than having an invisible depeendency.
BUG=73940
Review URL: http://codereview.chromium.org/6596004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6946
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Fri, 25 Feb 2011 11:17:31 +0000 (11:17 +0000)]
Clear exceptions set during attempts to lazily optimize.
Resubmit of patch for issue 1145 with a few additions:
- Now also clears exceptions when calling Runtime_LazyRecompile.
- Sets function where parsing fails to not be optimizable.
BUG=v8:1145
TEST=test/mjsunit/regress/regress-1145.js
Review URL: http://codereview.chromium.org/6469050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6945
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 24 Feb 2011 19:25:22 +0000 (19:25 +0000)]
X64: Implement DoHasInstanceType
Review URL: http://codereview.chromium.org/6581036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6940
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 24 Feb 2011 17:42:56 +0000 (17:42 +0000)]
Get property may throw an exception thanks to JS accessors.
Check result before and bail out if exception has been thrown.
BUG=v8:1172
TEST=test/mjsunit/regress/regress-1172-bis.js
Review URL: http://codereview.chromium.org/6580030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6939
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 24 Feb 2011 15:39:09 +0000 (15:39 +0000)]
Landing for Zaheer.
Direct call accessor getter callbacks (arm implementation).
Original review: http://codereview.chromium.org/6462029/
Review URL: http://codereview.chromium.org/6576035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6938
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 24 Feb 2011 15:26:27 +0000 (15:26 +0000)]
Fix bug in r6930 and r6933
The loading the register used for the null object was to early and it could be clobbered.
TBR=karlklose@chromium.org
BUG=none
TEST=mozilla/ecma_3/Statements/regress-131348
Review URL: http://codereview.chromium.org/6578020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6937
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 24 Feb 2011 15:21:30 +0000 (15:21 +0000)]
X64 Crankshaft: Implement Math.abs on x64 lithium.
Review URL: http://codereview.chromium.org/6576030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6936
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 24 Feb 2011 14:22:36 +0000 (14:22 +0000)]
Fix compile failure from revision 6934 and win64 compile failure from revision 6931.
Review URL: http://codereview.chromium.org/6576033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6935
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 24 Feb 2011 14:00:52 +0000 (14:00 +0000)]
Fix array concat to follow the specification in the presence of element getters.
Also fix issue 1175 and 1177.
BUG=v8:1175
Review URL: http://codereview.chromium.org/6568007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6934
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 24 Feb 2011 13:37:59 +0000 (13:37 +0000)]
X64: Port r5445
r5445: Implement for-in cache validity checking in the full codegen on IA-32.
BUG=v8:867
TEST=none
Review URL: http://codereview.chromium.org/6576028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6933
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 24 Feb 2011 12:41:26 +0000 (12:41 +0000)]
Fix porting bug in r6929
Review URL: http://codereview.chromium.org/6579036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6932
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 24 Feb 2011 12:01:24 +0000 (12:01 +0000)]
X64: Implement DoComputeOsrOutputFrame and fix Generate_OnStackReplacement.
The existing version does not have a correct implementation of
Generate_OnStackReplacement since we do not correctly find the loop
depth. This is mainly because EmitStackCheck in full-codegen-x64.cc
did not write it and partly due to us reading at the wrong offset
(which had no effect when it was not written in the first place, we
simply got a random number from the next instruction).
The DoComputeOsrOoutputFrame is very similar to the ia32 version.
Review URL: http://codereview.chromium.org/6581028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6931
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 24 Feb 2011 11:39:27 +0000 (11:39 +0000)]
ARM: Port r5445
r5445: Implement for-in cache validity checking in the full codegen on IA-32.
Review URL: http://codereview.chromium.org/6581031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6930
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 24 Feb 2011 11:36:14 +0000 (11:36 +0000)]
X64: Port r6635 and r6659
r6635: Remove the redundant load on every context lookup.
r6659: Do not compile the unreachable body of functions with illegal redeclarations.
The crankshaft part of these changes are already ported.
Review URL: http://codereview.chromium.org/6581029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6929
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00