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
ricow@chromium.org [Thu, 24 Feb 2011 10:29:01 +0000 (10:29 +0000)]
Fix wrong assertion in assembler causing the shell to crash with --code-comments.
Since writting a code comment can include a pc-jump the assertion
should just check that we are greater than or equal to
kMinRelocCommentSize (renamed from kRelocCommentSize), not that we are
actually equal to.
Review URL: http://codereview.chromium.org/6580028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6928
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Thu, 24 Feb 2011 10:07:35 +0000 (10:07 +0000)]
ARM: Fix DoubleToI.
BUG=1811
TEST=test/mjsunit/regress/regress-1181.js
Review URL: http://codereview.chromium.org/6573004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6925
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 24 Feb 2011 09:54:37 +0000 (09:54 +0000)]
Prepare push to trunk. Now working on version 3.1.7.
Review URL: http://codereview.chromium.org/6580027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6924
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 24 Feb 2011 08:23:37 +0000 (08:23 +0000)]
Remove old Python version of tickprocessor
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6922
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 24 Feb 2011 08:23:08 +0000 (08:23 +0000)]
Fix presubmit error.
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/6580026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6921
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 24 Feb 2011 07:17:43 +0000 (07:17 +0000)]
ARM: 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.
Review URL: http://codereview.chromium.org/6572003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6920
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 24 Feb 2011 06:38:45 +0000 (06:38 +0000)]
Land update to sputnik tests.
Original cl:
http://codereview.chromium.org/6542066/
Landing to ensure sync with buildbot update.
Review URL: http://codereview.chromium.org/6579032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6918
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 23 Feb 2011 15:25:04 +0000 (15:25 +0000)]
Fix debug tracing of live ranges and remove unused code.
When printing the sub-parts of a live range, only print the use intervals
belonging to each part.
Add a flag to print all use positions (incl. environment uses)
Review URL: http://codereview.chromium.org/6566005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6917
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 23 Feb 2011 13:52:11 +0000 (13:52 +0000)]
Temporarily disable DoStoreContextSlot in x64 lithium codegen to diagnose non-reproducible buildbot error. Fix presubmit error.
Review URL: http://codereview.chromium.org/6572002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6915
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 23 Feb 2011 13:26:28 +0000 (13:26 +0000)]
X64 Crankshaft: Add DoOuterContext to x64 lithium.
Review URL: http://codereview.chromium.org/6570008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6914
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 23 Feb 2011 11:59:18 +0000 (11:59 +0000)]
Remove most uses of HSubgraph as an argument.
In a lot of cases where we were passing a subgraph (a pair of basic blocks),
we actually only needed a basic block.
Review URL: http://codereview.chromium.org/6570006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6913
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 23 Feb 2011 11:29:11 +0000 (11:29 +0000)]
X64 Crankshaft: Add Typeof and TypeofIs to x64 lithium. Fix presubmit.
Review URL: http://codereview.chromium.org/6568004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6912
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Wed, 23 Feb 2011 11:25:27 +0000 (11:25 +0000)]
Fix presubmit for r6908.
TBR=whesse
Review URL: http://codereview.chromium.org/6568005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6911
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 23 Feb 2011 11:19:50 +0000 (11:19 +0000)]
HIR refactoring.
Review URL: http://codereview.chromium.org/6538080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6910
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Wed, 23 Feb 2011 10:41:13 +0000 (10:41 +0000)]
ARM: Implement DoPower in the lithium code generator.
Review URL: http://codereview.chromium.org/6532020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6909
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 23 Feb 2011 10:33:49 +0000 (10:33 +0000)]
X64 Crankshaft: Disable incompletely implemented on-stack replacement.
Review URL: http://codereview.chromium.org/6567003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6908
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 23 Feb 2011 10:10:47 +0000 (10:10 +0000)]
x64: Implement delete property in lithium backend.
Review URL: http://codereview.chromium.org/6570005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6907
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 23 Feb 2011 09:51:53 +0000 (09:51 +0000)]
x64: Implement context stores and loads, unknown osr value, and osr
entry in lithium backend.
Review URL: http://codereview.chromium.org/6566002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6906
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 23 Feb 2011 06:55:47 +0000 (06:55 +0000)]
Properly reset external catcher if exception couldn't be externally caught.
We can wrongly assume that exception which is not intended to be caught
by external try/catch should be caught if this exception inherits
external catcher from some previous exception. To prevent that,
clear external catcher when processing exceptions which cannot be
externally caught.
BUG=v8:1184
TEST=test/mjsunit/regress/regress-1184.js
Review URL: http://codereview.chromium.org/6538081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6905
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 22 Feb 2011 17:20:25 +0000 (17:20 +0000)]
Fix for bug code.google.com/p/v8/issues/detail?id=1176.
Review URL: http://codereview.chromium.org/6469083/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6904
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 22 Feb 2011 16:56:57 +0000 (16:56 +0000)]
Optimize functions needing a local context.
Allocate the context in the prologue. Two issues had to be solved:
(1) deoptimization needs to handle functions with a local context,
(2) we need a safepoint in the prologue.
(Thanks to Kevin.)
Review URL: http://codereview.chromium.org/6534022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6903
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Tue, 22 Feb 2011 16:31:24 +0000 (16:31 +0000)]
Fix CPU profiling for Crankshaft.
The main issue was due to multiple recompilations of functions. Now
code objects are grouped by function using SFI object address.
JSFunction objects are no longer tracked, instead we track SFI object
moves. To pick a correct code version, we now sample return addresses
instead of JSFunction addresses.
tools/{linux|mac|windows}-tickprocessor scripts differentiate
between code optimization states for the same function
(using * and ~ prefixes introduced earlier).
DevTools CPU profiler treats all variants of function code as
a single function.
ll_prof treats each optimized variant as a separate entry, because
it can disassemble each one of them.
tickprocessor.py not updated -- it is deprecated and will be removed.
BUG=v8/1087,b/3178160
TEST=all existing tests pass, including Chromium layout tests
Review URL: http://codereview.chromium.org/6551011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6902
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 22 Feb 2011 14:40:13 +0000 (14:40 +0000)]
X64 Crankshaft: Implement CallKeyed in optimizing compiler.
Review URL: http://codereview.chromium.org/6541069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6897
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 22 Feb 2011 14:25:26 +0000 (14:25 +0000)]
grokdump: Simple windows minidump analysis on linux.
Analyses full minidump (.dmp) files.
Shows the processor state at the point of exception including the
stack of the active thread and the referenced objects in the V8
heap. Code objects are disassembled and the addresses linked from the
stack (pushed return addresses) are marked with "=>".
Review URL: http://codereview.chromium.org/6312058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6896
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 22 Feb 2011 12:42:40 +0000 (12:42 +0000)]
Add file left out of last commit.
Review URL: http://codereview.chromium.org/6549016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6895
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 22 Feb 2011 12:28:33 +0000 (12:28 +0000)]
Add more generic version of reloc info padding to ensure enough space for reloc patching during deoptimization (fixes issue 1174).
The old version only added extra space when we did indirect calls, but
the problem remains the same with normal calls that can be represented
as a single byte. When doing patching each call will always be at
least 2 bytes long because we use RUNTIME_ENTY as the reloc mode.
Review URL: http://codereview.chromium.org/6541053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6894
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 22 Feb 2011 12:27:36 +0000 (12:27 +0000)]
Fix second half of issue 1151, the first change (r6765) only fixed FunctionGetPrototype, not FunctionSetPrototype.
Review URL: http://codereview.chromium.org/6548008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6893
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 22 Feb 2011 12:26:31 +0000 (12:26 +0000)]
X64: Refactor the string add in the type recording binary operation stub
This makes the code have the same structore as on IA32 and ARM, and will also support possible fast adding a smi and string where the string is to the right and fast adding of String objects.
Review URL: http://codereview.chromium.org/6542060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6892
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 22 Feb 2011 12:14:53 +0000 (12:14 +0000)]
Fix bug with input representation of HValueOf.
The class did not correctly implement the RequiredInputRepresentation.
I changed this functions to be abstract so that all hydrogen classes
must implement it.
As a convention instructions with zero input operands return None as input
representation.
Instructions that can handle all input representations without converting before
also have None as required input representation (e.g. HTest)
All other instructions need a proper required input representation.
Review URL: http://codereview.chromium.org/6538088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6891
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 22 Feb 2011 12:02:47 +0000 (12:02 +0000)]
X64 Crankshaft: Implement DoubleToI in optimizing compiler.
Review URL: http://codereview.chromium.org/6551009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6889
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Tue, 22 Feb 2011 11:21:15 +0000 (11:21 +0000)]
Improve parseInt.
Review URL: http://codereview.chromium.org/6546055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6888
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 22 Feb 2011 10:32:16 +0000 (10:32 +0000)]
Partial refactoring of subgraphs.
Change the interface to the Hydrogen graph builder to appear like it
directly holds a current basic block and a current environment.
Remove some direct accesses to the current subgraph, and remove
subgraph accessors that simply forwarded to the exit block.
Review URL: http://codereview.chromium.org/6532088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6887
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 22 Feb 2011 10:05:30 +0000 (10:05 +0000)]
Refactored PathTracer in heap.cc.
This is so that it can be reused by LOL code later.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6541044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6886
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 22 Feb 2011 09:35:37 +0000 (09:35 +0000)]
ARM: Add support for just one string argument in the string add stub
Having a string add stub which can handle a string in just one of the arguments is essencial for the type recording binary operation stub when expecting strings. Otherwise string added with e.g. smi will always call the runtime for a type transition which will be back to the same types as the transition code keeps it in string arguments when one argument is a string.
This fixes the regression (especially Delta Blue) caused by replacing the generic binary operation stub with the type recording binary operation stub in the ARM lithium code generator.
Review URL: http://codereview.chromium.org/6551008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6882
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 22 Feb 2011 09:14:47 +0000 (09:14 +0000)]
Revert "Expand fast case of parseInt to include radix == 10 and radix == 0."
Causes Mozilla failures.
TBR=sandholm@chromium.org
Review URL: http://codereview.chromium.org/6542056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6880
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sandholm@chromium.org [Tue, 22 Feb 2011 09:01:06 +0000 (09:01 +0000)]
Expand fast case of parseInt to include radix == 10 and radix == 0.
Review URL: http://codereview.chromium.org/6532087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6879
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 22 Feb 2011 08:40:10 +0000 (08:40 +0000)]
Change the translation of break/continue into Hydrogen.
Resolve break and continue when we see them, rather then deferring
them until later.
Review URL: http://codereview.chromium.org/6541060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6878
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 22 Feb 2011 06:41:32 +0000 (06:41 +0000)]
Fix presubmit failure.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6552001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6877
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00