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
kmillikin@chromium.org [Tue, 22 Feb 2011 06:25:01 +0000 (06:25 +0000)]
Shorten live ranges for arguments to runtime calls.
Before, the live ranges of the arguments extended to the call itself, and
they were pushed immediately before the call. Now, they are spilled eagerly
as soon as their value is available and they are spilled to the right place.
The inlined runtime calls in the optimized backend are changed to work as in
all the other backends: they get their arguments untranslated and can choose
their own custom evaluation order.
Review URL: http://codereview.chromium.org/6526047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6876
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 22 Feb 2011 01:10:28 +0000 (01:10 +0000)]
Fix Xcode project.
TBR= ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6551006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6875
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 22 Feb 2011 00:39:21 +0000 (00:39 +0000)]
CallIC and KeyedCallIC not wrapping this for strict mode functions.
Fix CallIC and KeyedCallIC to correctly use Handle<Object>.
Review URL: http://codereview.chromium.org/6523052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6874
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 21 Feb 2011 18:28:20 +0000 (18:28 +0000)]
Minor refactoring: unify lazy function compilation for in loop and no in loop variants.
Review URL: http://codereview.chromium.org/6542017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6873
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Mon, 21 Feb 2011 17:17:26 +0000 (17:17 +0000)]
Bug: OS::MemoryMappedFile::open() should not truncate a pre-existing file.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6543039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6872
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 21 Feb 2011 16:49:39 +0000 (16:49 +0000)]
Change the baseline compiler to match the Hydrogen graph builder.
The Hydrogen graph translation does not build a branch for unary negation in
an effect context, so the baseline compiler should not do so either.
Review URL: http://codereview.chromium.org/6546050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6871
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 21 Feb 2011 16:11:46 +0000 (16:11 +0000)]
Heap::gc_count_, last_gc_count, and kGCsBetweenCleanup should be unsigned
in order to not be vulnerable to overflow issues.
Patch by Mark Lam of Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/5966001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6870
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 21 Feb 2011 15:59:23 +0000 (15:59 +0000)]
Implement pixel array elements access in the presence of an
interceptor that does not handle the elements load.
Review URL: http://codereview.chromium.org/6551001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6869
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 21 Feb 2011 13:27:36 +0000 (13:27 +0000)]
Fix broken build by removing more const qualifiers.
Review URL: http://codereview.chromium.org/6532085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6867
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 21 Feb 2011 12:05:17 +0000 (12:05 +0000)]
Remove const qualifier in a few places in the hydrogen IR files.
This is a preparation step for a larger refactoring of the
hydrogen instructions.
Review URL: http://codereview.chromium.org/6542042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6866
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 21 Feb 2011 11:58:19 +0000 (11:58 +0000)]
Remove passing tests from ARM test expectations. Yay!
TBR=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6548006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6865
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 21 Feb 2011 11:55:45 +0000 (11:55 +0000)]
Remove passing tests from expectations. Yay!
Review URL: http://codereview.chromium.org/6488028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6864
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 21 Feb 2011 11:32:28 +0000 (11:32 +0000)]
X64 Crankshaft: Add ModI and ModT to x64 optimizing compiler.
Review URL: http://codereview.chromium.org/6548005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6863
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 21 Feb 2011 11:29:45 +0000 (11:29 +0000)]
Unifying the handling of storing and loading from safepoint stack
slots across architectures.
Review URL: http://codereview.chromium.org/6541051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6862
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Mon, 21 Feb 2011 10:30:25 +0000 (10:30 +0000)]
ARM: Implement DoMathRound in the lithium code generator.
Review URL: http://codereview.chromium.org/6519051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6860
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Mon, 21 Feb 2011 07:54:55 +0000 (07:54 +0000)]
x64: implement apply with arguments in lithium backend.
Includes the plumbing to make sure that all calls generated by the macroassembler for lithium will generate record a safepoint.
Review URL: http://codereview.chromium.org/6469053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6859
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Fri, 18 Feb 2011 16:29:41 +0000 (16:29 +0000)]
Adjust pointer maps for branches when connecting live ranges.
Review URL: http://codereview.chromium.org/6541024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6858
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 18 Feb 2011 16:16:17 +0000 (16:16 +0000)]
x64: Fix safepoint register index calculation.
We leave room for all registers on the stack so we have to add a bit.
This is not nicely factored and I need to do that. This will fix the breakage and I
will fix the rest on Monday.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/6544017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6857
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 18 Feb 2011 14:34:17 +0000 (14:34 +0000)]
X64 Crankshaft: Implement MathRound, MathFloor, MathSqrt, and MathPowHalf UnaryMathOperations in optimizing code generator. Remove unneeded bailout on Math.pow(-0, 0.5) from ia32 and x64 platforms - we produce the correct value without bailing out.
Review URL: http://codereview.chromium.org/6532054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6856
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 18 Feb 2011 14:22:29 +0000 (14:22 +0000)]
Minor cleanup.
Do not relookup code object and use optimized_code instead
shadowing existing code local.
Review URL: http://codereview.chromium.org/6541020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6855
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 18 Feb 2011 14:10:42 +0000 (14:10 +0000)]
Fix presubmit.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/6532055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6854
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 18 Feb 2011 14:00:46 +0000 (14:00 +0000)]
x64: Implement regexp literals and string CharCodeAt in lithium backend.
Review URL: http://codereview.chromium.org/6469052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6853
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Fri, 18 Feb 2011 12:54:43 +0000 (12:54 +0000)]
x64: Implement the missing generic load and store operations.
Review URL: http://codereview.chromium.org/6541019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6852
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 18 Feb 2011 12:06:52 +0000 (12:06 +0000)]
X64 Crankshaft: Implement LValueOf and (dummy) LArgumentsObject.
Review URL: http://codereview.chromium.org/6542011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6850
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 18 Feb 2011 10:53:38 +0000 (10:53 +0000)]
Use [[DefineOwnProperty]] to put 'constructor' field on the protoype object.
That better follows ECMA-262 (see 13.2 Creating Function Objects) and allows
to ignore nasty JS accessors for 'constructor' property.
BUG=v8:1172
TEST=test/mjsunit/regress/regress-1172.js
Review URL: http://codereview.chromium.org/6531037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6849
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 18 Feb 2011 10:39:02 +0000 (10:39 +0000)]
Add access checks to Object.preventExtensions + add regression test for 1027.
Object.preventExtensions can currently be used cross-domain. With this
change we follow firefox (IE9 has our current behaviour). In addition
this includes a regression test for 1027 and access tests for
Object.seal and Object.freeze.
Review URL: http://codereview.chromium.org/6534019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6848
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Thu, 17 Feb 2011 21:56:37 +0000 (21:56 +0000)]
Revert "This is not wrapped for strict mode and builtin functions."
This reverts commit 6845
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6847
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 17 Feb 2011 21:04:53 +0000 (21:04 +0000)]
Change behavior of global declarations in the presence of setters.
Call accessors in the global object prototype when initializing global
variables. Function declarations are special cased for compatibility
with Safari and setters are not called for them. If this special
casing was not done webkit layout tests would fail.
Make the declaration of global const variables in the presence of
callbacks a redeclaration error.
Handle const context slot declarations conflicting with a CALLBACK as
a redeclaration error. That is, unless it is on a context extension
object which is not a real object and therefore conceptually have no
accessors in prototype chains. Accessors in prototype chains of
context extension objects are explicitly ignored in SetProperty.
Review URL: http://codereview.chromium.org/6534029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6846
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Thu, 17 Feb 2011 17:52:03 +0000 (17:52 +0000)]
This is not wrapped for strict mode and builtin functions.
CallIC and KeyedCallIC do not wrap this when calling builtin
and strict mode functions.
Review URL: http://codereview.chromium.org/6523052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6845
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Thu, 17 Feb 2011 17:21:59 +0000 (17:21 +0000)]
Make OutOfMemory exception thrown from JS call into FatalProcessOutOfMemory as well.
That unifies the behaviour with CALL_HEAP_FUNCTION macro.
BUG=v8:1165
Review URL: http://codereview.chromium.org/6528050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6844
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 17 Feb 2011 16:54:49 +0000 (16:54 +0000)]
Revert change to const and global variable declarations. It causes
may WebKit layout test failures.
I will look into it tomorrow.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/6537021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6843
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 17 Feb 2011 16:33:10 +0000 (16:33 +0000)]
Cygwin support
Patch by Bert Belder.
BUG=v8:64
BUG=v8:964
BUG=v8:1029
Review URL: http://codereview.chromium.org/6525028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6842
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Thu, 17 Feb 2011 16:30:15 +0000 (16:30 +0000)]
Call accessors in the global object prototype when initializing global
variables.
Make the declaration of global const variables in the presence of
callbacks a redeclaration error.
Handle const context slot declarations conflicting with a CALLBACK as
a redeclaration error. That is, unless it is on a context extension
object which is not a real object and therefore conceptually have no
accessors in prototype chains. Accessors in prototype chains of
context extension objects are explicitly ignored in SetProperty.
Review URL: http://codereview.chromium.org/6519050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6841
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 17 Feb 2011 16:02:12 +0000 (16:02 +0000)]
Avoid clobbering register containing name in CompilerStoreGlobal.
Review URL: http://codereview.chromium.org/6519052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6840
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 17 Feb 2011 15:25:38 +0000 (15:25 +0000)]
ARM: Port new version of ParallelMove's GapResolver to ARM. Fix error in vstr(DoubleRegister, MemOperand), where it was implemented as a vldr, in r6830.
Review URL: http://codereview.chromium.org/6311010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6839
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 17 Feb 2011 14:13:25 +0000 (14:13 +0000)]
Revert 6832.
The test contains a syntax error that shouldn't be detected, but it sometimes is.
TBR: kmillikin@chromium.org
Review URL: http://codereview.chromium.org/6519049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6836
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 17 Feb 2011 13:05:49 +0000 (13:05 +0000)]
Fix incorrect deoptimization for logical not in an effect context.
The baseline compiler does not materialize a value for expressions of
the form !expr in an effect context so the graph translation should
not produce such an environment, otherwise we risk targeting it by
deoptimization.
BUG=v8:1167
Review URL: http://codereview.chromium.org/6537018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6833
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 17 Feb 2011 12:23:18 +0000 (12:23 +0000)]
Handle exceptions thrown while parsing lazy functions for inlining.
We currently leave the exception as pending without returning a Failure::Exception() value. This is either caught immediately if running with --debug-code, or caught later by an assert in debug mode.
This change makes the pending exception be cleared before returning from the failed optimization attempt.
BUG=v8::1145
TEST=test/mjsunit/regress/regress-1145.js
Review URL: http://codereview.chromium.org/6524039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6832
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Thu, 17 Feb 2011 11:06:50 +0000 (11:06 +0000)]
Fix a bug in deoptimization after logical expressions in an effect context.
When deoptimizing to after an expression of the form (expr0 || expr1)
or (expr0 && expr1) in an effect context, the unoptimized code could
incorrectly see the value of the expression.
Handle the short-circuit binary operators specially in effect contexts.
This fixes the issue and will generate better code when the left
subexpression is boolean-valued.
BUG=v8:1166
Review URL: http://codereview.chromium.org/6519046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6831
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 17 Feb 2011 10:07:13 +0000 (10:07 +0000)]
ARM: Enable loads and stores of VFP registers with offsets >= 1024 bytes.
Review URL: http://codereview.chromium.org/6530002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6830
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 17 Feb 2011 07:47:05 +0000 (07:47 +0000)]
ARM: Don't try to flush the icache when there is nothing to flush
The simulator implementation of the icache did not like size being zero.
BUG=v8:1090
Review URL: http://codereview.chromium.org/6526052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6829
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 16 Feb 2011 17:40:28 +0000 (17:40 +0000)]
GBDJIT: Do not check unwinding information correctness on x64.
This does not affect correctness of most common use cases.
Review URL: http://codereview.chromium.org/6525053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6827
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 16 Feb 2011 15:45:45 +0000 (15:45 +0000)]
X64 Crankshaft: Start using LCallFunction, remove errors in it.
Review URL: http://codereview.chromium.org/6529053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6826
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 16 Feb 2011 15:15:52 +0000 (15:15 +0000)]
X64 Crankshaft: Implement LCallFunction.
Review URL: http://codereview.chromium.org/6529052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6825
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 16 Feb 2011 15:15:20 +0000 (15:15 +0000)]
X64 Crankshaft: Implement InstanceOf and InstanceOfKnownGlobal
Review URL: http://codereview.chromium.org/6529024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6824
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 16 Feb 2011 14:48:41 +0000 (14:48 +0000)]
ARM: Remove crankshaft dependency on the generic binary operation stub
The crankshaft code now only relies on the type recording binary operation stub.
Added check for overwritable heap number in the type recording binary operation stub.
Review URL: http://codereview.chromium.org/6529050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6823
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 16 Feb 2011 13:59:26 +0000 (13:59 +0000)]
Fix syntax error, feel sheepish.
Review URL: http://codereview.chromium.org/6525052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6822
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Feb 2011 13:56:23 +0000 (13:56 +0000)]
Attempt to disambiguate RUNTIME_FUNCTION for win64 build in serialization tests.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6526049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6821
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 16 Feb 2011 13:52:46 +0000 (13:52 +0000)]
Fix presubmit problem.
Review URL: http://codereview.chromium.org/6526048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6820
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Feb 2011 13:42:26 +0000 (13:42 +0000)]
Blargh. Yet another shot in the dark attempt to fix win64 compile.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6480116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6819
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Feb 2011 13:37:26 +0000 (13:37 +0000)]
Another attempt to fix win64 compile.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6525051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6818
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 16 Feb 2011 13:31:12 +0000 (13:31 +0000)]
Implement crankshaft support for pixel array stores.
Review URL: http://codereview.chromium.org/6528013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6817
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Feb 2011 13:24:40 +0000 (13:24 +0000)]
Speculative fix for win64 build breakage.
strstr returns a pointer and we are using an int to store a pointer difference. Using intptr_t instead.
Review URL: http://codereview.chromium.org/6529049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6816
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 16 Feb 2011 12:19:14 +0000 (12:19 +0000)]
Prepare push to trunk. We are now working on version 3.1.6.
Review URL: http://codereview.chromium.org/6530001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6811
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Feb 2011 12:10:48 +0000 (12:10 +0000)]
Handle indexed properties on value objects correctly.
As with named properties, search the value wrapper prototypes for properties.
Review URL: http://codereview.chromium.org/6526046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6810
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 16 Feb 2011 11:40:48 +0000 (11:40 +0000)]
Properly process try/finally blocks.
In some circumstances, try/finally block can actually catch the exception:
function f() {
try {
throw 42;
} finally {
return 0;
}
}
Therefore when propagating exception to v8::TryCatch, we must be sure
there is no try/finally blocks as well.
When bulding the messages we should be more conservative and expect that
any v8::TryCatch with no JS try/catch in between can potentionally
be the right exception handler.
Plus various minor refactorings.
BUG=1147
TEST=cctest/test-api/TryCatchAndFinallyHidingException, cctest/test-api/TryCatchAndFinally
Review URL: http://codereview.chromium.org/6526016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6809
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 16 Feb 2011 10:10:59 +0000 (10:10 +0000)]
X64: Enable OSR as default on x64
Review URL: http://codereview.chromium.org/6480109
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6808
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 16 Feb 2011 09:20:16 +0000 (09:20 +0000)]
ARM: Add inlined smi binary operations in full code generator
Review URL: http://codereview.chromium.org/6529022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6806
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 16 Feb 2011 09:18:19 +0000 (09:18 +0000)]
Fix non-simulated ARM calling of RegExp code.
Review URL: http://codereview.chromium.org/6526043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6805
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Wed, 16 Feb 2011 08:21:45 +0000 (08:21 +0000)]
ARM: Implement GetCachedArrayIndex in the lithium code generator.
Add GetCachedArrayIndex to the Hydrogen instruction set and implement GetCachedArrayIndex in the lithium code generator. The x64 and ia32 code generators implementations abort in the chunk builder.
Review URL: http://codereview.chromium.org/6499014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6803
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Wed, 16 Feb 2011 08:10:47 +0000 (08:10 +0000)]
Fix bug 1137. No longer allow the RegExp /(*)/.
BUG=v8:1137
TEST=test/mjsunit/regexp.js
Review URL: http://codereview.chromium.org/6499016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6802
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Tue, 15 Feb 2011 21:11:31 +0000 (21:11 +0000)]
Added gdb-jit interface support for ARM. Compressed .debug_line table by 1)
removing duplicate adjacent entries having the same line number, and 2) using
special opcodes to encode multiple machine register state changes in one byte.
Also made a fix involving the order in which static initializers are performed.
Patch by Shasank Chavan of Hewlett-Packard Development Company, LP
BUG=none
TEST=Try building for arm
Review URL: http://codereview.chromium.org/6524020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6801
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 15 Feb 2011 19:15:59 +0000 (19:15 +0000)]
Fix presubmit.
TBR= ager@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6800
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 15 Feb 2011 18:57:37 +0000 (18:57 +0000)]
Strict mode "this" transformation in Function.call/Function.apply.
In strict mode the transformation of "this" is skipped.
Code review feedback.
Testing memory operand against 8 bit IMM on ia32 and x64.
Review URL: http://codereview.chromium.org/6524006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6799
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Tue, 15 Feb 2011 16:37:40 +0000 (16:37 +0000)]
Enable compound assignment to context slots.
Review URL: http://codereview.chromium.org/6523025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6798
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 15 Feb 2011 16:12:46 +0000 (16:12 +0000)]
Fix wrong assert in ia32 deoptimizer.
In revision 6795 I introduced an assertion in the deoptimizer that was
wrong. We check that curr_address - prev_address > patch_size(), but
prev_address is actually the address right after the last patched
call, so we just need to be larger than or equal to prev_address.
Review URL: http://codereview.chromium.org/6480068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6797
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 15 Feb 2011 15:12:51 +0000 (15:12 +0000)]
Fix issue 1160: check array elements in ArrayJoin.
Review URL: http://codereview.chromium.org/6529020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6796
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 15 Feb 2011 14:36:12 +0000 (14:36 +0000)]
Make sure we always have room for patching the reloc info during lazy deoptimization (fixes issue 1156).
Before we could have calls to builtins that would not be in the
relocation info since this used a register as target. Whenever we have
this case (from lithium codegen) we now emit a comment in the reloc
info.
Review URL: http://codereview.chromium.org/6499015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6795
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 15 Feb 2011 13:53:51 +0000 (13:53 +0000)]
Change native RegExp call code to properly set C++ structures and
to handle exceptions on return from RegExp.
BUG=1108
TEST=
Review URL: http://codereview.chromium.org/6489001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6794
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 15 Feb 2011 13:53:30 +0000 (13:53 +0000)]
Fix issue 1152: temporary JS array invariant violation in ArrayConcat.
Review URL: http://codereview.chromium.org/6524010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6793
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 15 Feb 2011 13:37:10 +0000 (13:37 +0000)]
x64: Port OSR to the x64 platform.
Review URL: http://codereview.chromium.org/6515012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6791
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 15 Feb 2011 12:17:53 +0000 (12:17 +0000)]
X64 Crankshaft: Fix another error in pushed registers at safepoints.
Review URL: http://codereview.chromium.org/6525014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6789
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Tue, 15 Feb 2011 12:17:42 +0000 (12:17 +0000)]
Fix FastPixelArrayStore on X64 platform.
TEST=test-api/PixelArray
Review URL: http://codereview.chromium.org/6529014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6788
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 15 Feb 2011 10:50:09 +0000 (10:50 +0000)]
Fix ARM debug build: remove ASSERT.
TBR=ricow@
Review URL: http://codereview.chromium.org/6528011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6787
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 15 Feb 2011 10:39:22 +0000 (10:39 +0000)]
Add access check when Object.keys is called on the global js proxy (fixes issue 1154)
I will land access checks for a range of ES5 features in another patch (we added a bunch of cases like this in the past few weeks, i.e., cases where we simply use the global object instead of the js global proxy).
Review URL: http://codereview.chromium.org/6499013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6786
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 15 Feb 2011 10:22:24 +0000 (10:22 +0000)]
ARM: Implement DoHasCachedArrayIndex and DoHasCachedArrayIndexAndBranch.
Review URL: http://codereview.chromium.org/6519009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6785
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 15 Feb 2011 08:47:14 +0000 (08:47 +0000)]
ARM: Enable OSR by default.
Review URL: http://codereview.chromium.org/6526012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6784
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Tue, 15 Feb 2011 07:58:04 +0000 (07:58 +0000)]
Refactor construction of polymorphic loads, stores, and calls.
Rather than passing in a pair of unequal-length lists, pass the default
subgraph separately. Construct the typecase from the top down rather than
the bottom up, so it doesn't need an intermediate zone list.
Also, change a basic block's 'last' instruction field to really be its last
instruction by correctly updating it when inserting and removing
instructions.
Review URL: http://codereview.chromium.org/6516016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6783
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Mon, 14 Feb 2011 23:41:47 +0000 (23:41 +0000)]
Strict mode delete of non-configurable property.
Strict mode flag is passed to runtime DELETE function
and then to JSObject::Delete(Property/Element) as STRICT_DELETION enum.
When deleting non-configurable property/eleemnt, TypeError is thrown.
Adding mozilla test to .gitignore.
Incorporate CR feedback.
Review URL: http://codereview.chromium.org/6515005/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6782
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 14 Feb 2011 21:21:33 +0000 (21:21 +0000)]
Implement specialized IC code stubs for pixel array stores.
Review URL: http://codereview.chromium.org/6478027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6781
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Mon, 14 Feb 2011 18:44:26 +0000 (18:44 +0000)]
Strict mode delete of unqualified identifier.
SyntaxError is reported in strict mode when deleting
an unqualified identifier. (11.4.1 of Ecma-262 5th ed)
Review URL: http://codereview.chromium.org/6516003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6780
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 14 Feb 2011 18:34:05 +0000 (18:34 +0000)]
X64 Crankshaft: Fix bug in pushed registers at safepoints. Fixes issue 1153 completely.
BUG=1153
TEST=mjsunit/mul-exhaustive
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/6475012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6779
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Mon, 14 Feb 2011 17:33:06 +0000 (17:33 +0000)]
Refactoring codegen for delete.
* keep handling of VariableProxy and Property together
* place clauses in the order of discovery
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6778
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Mon, 14 Feb 2011 17:25:12 +0000 (17:25 +0000)]
Introduce new runtime function to make join with lower memory usage.
Do not use generic StringBuilderConcat which requires array passed
to keep both elements and separator (which roughly double size
of the array). That should be faster as well.
BUG=crbug.com/54580
Review URL: http://codereview.chromium.org/6520004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6777
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 14 Feb 2011 16:02:02 +0000 (16:02 +0000)]
X64 Crankshaft: Fix error in pushed register indices for safepoints. Fixes issue 1153.
BUG=1153
TEST=mjsunit/date-parse
Review URL: http://codereview.chromium.org/6518007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6776
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 14 Feb 2011 13:57:15 +0000 (13:57 +0000)]
X64 Crankshaft: Add test that fails on x64 Crankshaft build to list of skipped mjsunit tests. Fix comments and remove unused function from date.js.
BUG=1153
TEST=mjsunit/date-parse
Review URL: http://codereview.chromium.org/6516011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6775
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Mon, 14 Feb 2011 13:39:53 +0000 (13:39 +0000)]
Change kPointerSize to kIntSize in ia32 specific stack check patching.
The call uses a 32 bit displacement relative to the next instruction. Althoug this has no actual impact on the 32 bit platform I think this is more correct (and will make the x64 and ia32 code more alike).
Review URL: http://codereview.chromium.org/6515011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6774
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 14 Feb 2011 13:13:41 +0000 (13:13 +0000)]
Fix a potential crash bug in keyed calls for non-string keys.
BUG=v8:1146
Review URL: http://codereview.chromium.org/6517010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6773
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 14 Feb 2011 12:51:25 +0000 (12:51 +0000)]
Fix a duplicate AST ID recorded for for/in.
Avoid visiting the subexpressions of a variable that rewrites to a property
when occurring as the 'left-hand side' of for/in.
BUG=v8:1149
Review URL: http://codereview.chromium.org/6475009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6772
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00