Commit Graph

6120 Commits

Author SHA1 Message Date
mikhail.naganov@gmail.com
c5ff1f2155 Fix typos in include/*.h inline documentation.
Patch by Nicolas Kaiser <nikai@nikai.net>

R=sgjesse@chromium.org
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/7030008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 06:36:43 +00:00
svenpanne@chromium.org
fe2074f580 Removed a "feature envy" bad smell: Moved AssumeRepresentation method to where
it belongs.
Review URL: http://codereview.chromium.org/7015039

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 13:29:02 +00:00
erik.corry@gmail.com
cfd6e000ea Fix uninitialized variable recording how much regexp code
has been generated.
Review URL: http://codereview.chromium.org/7015040

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 11:10:18 +00:00
rossberg@chromium.org
e14402b1df A first skeleton for introducing Harmony proxies.
1) Add new type JSProxy for representing proxy objects.
   Currently devoid of functionality, i.e., all properties are undefined.

2) Some rudimentary global $Proxy functions to create proxies.

Next step: Hook up getProperty and getOwnProperty handlers. Will probably
require introducing a new LookupResult type, which is a mixture of
INTERCEPTOR (handles any property) and CALLBACK (calls back to JS).
Can we unify this somehow?

TODO: Should probably rename existing Proxy type to something like
"Foreign", to avoid confusion.

Review URL: http://codereview.chromium.org/6932068

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 10:58:25 +00:00
svenpanne@chromium.org
edac3d93c2 Remove more dead code.
Review URL: http://codereview.chromium.org/7013045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 09:25:05 +00:00
vitalyr@chromium.org
73c809bb0e Isolates cleanup: move top.cc to isolate.cc.
Review URL: http://codereview.chromium.org/6969042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:54:16 +00:00
svenpanne@chromium.org
ca5dad94a7 Removed dead code (ingenious 3-bit representation of types)
Review URL: http://codereview.chromium.org/6973053

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:21:50 +00:00
svenpanne@chromium.org
78f4dd1208 Use type feedback for unary minus, improving the performance on e.g. 3d-cube by
7.2% and math-cordic by 5.7%.
Review URL: http://codereview.chromium.org/7013025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:21:35 +00:00
sgjesse@chromium.org
2838a3c78b Submit builtins-mips.cc.
This code submission will compile, but is not testable until the majority
of the mips port is in place. This has been tested externally.

BUG=
TEST=

Review URL: http://codereview.chromium.org//7013031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 07:27:46 +00:00
ricow@chromium.org
964dbff40d Only send null or undefined as receiver for es5 natives, not generally
for builtin functions.
Review URL: http://codereview.chromium.org/7012012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 07:26:44 +00:00
vitalyr@chromium.org
658e323e87 Micro-optimize passing of args to HasLocalProperty.
Review URL: http://codereview.chromium.org/7018001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 16:19:03 +00:00
fschneider@chromium.org
5f29f9bd8e Don't use environment values at certain deoptimize-instructions.
If a HDeoptimize does not cut away parts of the control-flow-graph
we don't need to insert uses to correctly elimiate dead phis since
the full function is visible to the optimizing compiler.

This is a small improvement of the change r7221 which fixed a problem
when deoptimizing on never executed case-clauses.
Review URL: http://codereview.chromium.org/7012010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:56:56 +00:00
sgjesse@chromium.org
58161ce6ed Introduce ic-mips.cc.
This code submission will compile, but is not testable until the majority
of the mips port is in place. This has been tested externally.

BUG=
TEST=

Review URL: http://codereview.chromium.org//6973024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:48:20 +00:00
karlklose@chromium.org
b606195012 ARM: Fix disasm for strh, vabs, vneg. Add load/store tests.
Patch from ARM Ltd.

BUG=none
TEST=added to test/cctest/test-disasm-arm.cc

Original review at http://codereview.chromium.org/7013024/.

Review URL: http://codereview.chromium.org/7013027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:44:49 +00:00
svenpanne@chromium.org
a3afc9a896 Made the output of the --trace-representation flag a bit more informative and
centralized its handling.
Review URL: http://codereview.chromium.org/6969034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:36:49 +00:00
sgjesse@chromium.org
b9c771c106 ARM: Reduce amount of code generated for context save on deopt.
BUG=none
TEST=none

Review URL: http://codereview.chromium.org//6930038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:33:14 +00:00
ager@chromium.org
89278730bb Make the code flushing candidate field explicit in code objects.
This way it is counted and the rounding of the size will just work
without extra tweaking if you want to add an extra field to code
objects.

R=vegorov@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6969037

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:13:00 +00:00
vitalyr@chromium.org
bc52ed0850 Extend the fast case of HasLocalProperty.
Review URL: http://codereview.chromium.org/7016016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 12:48:10 +00:00
svenpanne@chromium.org
db563ed204 Fixed TypeFeedbackOracle for unary operations: Record code for the corresponding
type recording IC.
Review URL: http://codereview.chromium.org/6973025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 08:54:13 +00:00
dslomov@chromium.org
adfa56af54 Speculative fix fo MultithreadedParallelIsolates on ARM
It looks like the problem with the test is too many concurrently created isolates.
Cranking the number to 100 on MacOS and Linux produce similar results.

BUG=http://code.google.com/p/v8/issues/detail?id=1375
TBR=vitalyr

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 17:29:47 +00:00
sgjesse@chromium.org
4e18d50834 Add constant splitting for user controlled constants in the full compiler
This is IA32 only for now.

Added a random value to each assembler instance (JIT cookie) to be used for constant splitting. Added safe versions of setting a register with an immediate value and for pushing an immediate value. Used these functions where user controlled immediate values could be emitted in the code stream. I also used it for immediates which are an argument number even though the number of formal arguments is currently limited to 16k.

I found no compares directly with user controlled constants.

I am not sure whether the test is that useful, but it might catch some changes missing constant splitting.

Review URL: http://codereview.chromium.org//7005031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 14:16:24 +00:00
vitalyr@chromium.org
26bf1dfd4a Kill some dead code.
Review URL: http://codereview.chromium.org/6995048

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 13:45:30 +00:00
fschneider@chromium.org
48077e89e9 Remove support for branch hints from the IA32 and X64 assembler.
They were not on by default and should not be needed on modern
platforms.
Review URL: http://codereview.chromium.org/7001025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 13:26:07 +00:00
vitalyr@chromium.org
03c00ee6a6 Support symbol comparison in crankshaft.
Review URL: http://codereview.chromium.org/7000021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 12:50:04 +00:00
whesse@chromium.org
b77f131914 Don't emit code for HContext values with no uses.
BUG=
TEST=

Review URL: http://codereview.chromium.org/6982023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 12:11:23 +00:00
sandholm@chromium.org
fcd9380eda JSON.parse improvement. Call "LookupSymbol" rather than "NewString"
for property string tokens.
Review URL: http://codereview.chromium.org/7004016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:56:15 +00:00
vitalyr@chromium.org
4cc800b3cf Support %_IsUndetectableObject in crankshaft.
Review URL: http://codereview.chromium.org/6995046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:53:43 +00:00
karlklose@chromium.org
7a798fb9e9 Prepare push to trunk. Now working on version 3.3.7.
Review URL: http://codereview.chromium.org/7005029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:34:56 +00:00
fschneider@chromium.org
6db15ae34b Remove peephole optimiziations from IA32 and ARM assembler.
They are not used with Crankshaft anymore.
Review URL: http://codereview.chromium.org/7003025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:29:53 +00:00
ager@chromium.org
8a0b1f5bc9 Allow closures to be optimized if outer contexts that call eval are all in strict mode.
R=kmillikin@chromium.org
BUG=
TEST=mjsunit/compiler/eval-introduced-closure.js

Review URL: http://codereview.chromium.org/6993008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:26:11 +00:00
ricow@chromium.org
fa2a92b45f Add case for EXTERNAL_ARRAY_TRANSITION to JSObject::NormalizeProperties
Review URL: http://codereview.chromium.org/7004014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:25:03 +00:00
whesse@chromium.org
bf06fbdbf1 Recommit "First step in letting Crankshaft inline functions with a different context.""
This reverts r7810, thus recommitting 7807.

BUG=
TEST=

Review URL: http://codereview.chromium.org/6963009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:03:12 +00:00
jkummerow@chromium.org
79e76dbd34 Rename parameters to fix Windows build
TEST=compiles on Windows

Review URL: http://codereview.chromium.org/7005027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 09:50:34 +00:00
svenpanne@chromium.org
9f3f90ddc0 Improved c1visualizer output a bit: Emit a human-readable description for
changes instead of a bit-pattern. Fixed logic when ranges are emitted. Improved
indentation in hydrogen.cfg (aesthetical change only). Some minor additional
cleanup.
Review URL: http://codereview.chromium.org/6995024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 09:19:28 +00:00
jkummerow@chromium.org
e90d16953c Remove NearLabel, replacing remaining occurrences with Label
TEST=compiles, existing tests pass

Review URL: http://codereview.chromium.org/6991010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 09:12:16 +00:00
ricow@chromium.org
7f8a918f08 Allow strict mode flag as extraicstate for keyed external array store ic
We currently hit an assertion in computeflags, but the extra_ic_state is used to pass the strict mode flag in.

BUG: 1383
Review URL: http://codereview.chromium.org/7003022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 08:53:46 +00:00
sgjesse@chromium.org
67ebabc16e Add cctest/test-disasm-mips which was mistakenly omitted from r7825.
BUG=
TEST=

Review URL: http://codereview.chromium.org//6994013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 08:26:22 +00:00
erik.corry@gmail.com
291781ed3c Limit the generation of regexp code with large inlined constants.
Review URL: http://codereview.chromium.org/6997015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 06:39:27 +00:00
jkummerow@chromium.org
944a388412 Avoid using a register for constant external array indices.
This CL is based on and obsoletes CL 6879037.

TEST=mjsunit/external-array.js

Review URL: http://codereview.chromium.org/6902112

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 15:25:17 +00:00
jkummerow@chromium.org
1eedd8056d Fix timeout of test regress-1118.js
TEST=mjsunit/regress/regress-1118.js no longer times out when run in the ARM simulator.

Review URL: http://codereview.chromium.org/6994010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 15:07:30 +00:00
svenpanne@chromium.org
986ed5358e Reverted some code which got accidentally committed as part of another commit.
TBR=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/6994011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 14:39:19 +00:00
vitalyr@chromium.org
5ac2a3acfc Fix lint.
TBR=svenpanne@chromium.org

Review URL: http://codereview.chromium.org/6995022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 14:21:23 +00:00
vitalyr@chromium.org
c10267f1fa Refactor HCheckInstanceType to allow mask/tag tests.
This allows us to get rid of totally fake LAST_STRING_TYPE and makes
it possible to test for symbols.

I considered splitting HCheckInstanceType into two instructions, but
it seems nice to be able to hide the instance type implementation
details from the hydrogen level.

Review URL: http://codereview.chromium.org/6964011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 14:17:23 +00:00
svenpanne@chromium.org
4912c0371b A few "extract method" refactorings, trying to get individual method definitions
onto a sinlge 30" screen. A lot of times, the AST visitor stops a bit too early,
so we have to do the rest of the dispatch by hand. This is caused by the fact
that the kind of the AST nodes are a bit too coarse for some traversals (e.g. a
single node type for all binary ops), perhaps one could try to refine this a
little bit more.
Review URL: http://codereview.chromium.org/6963008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 13:29:57 +00:00
karlklose@chromium.org
00e8236096 ARM: Disable test test-lockers/MultithreadedParallelIsolates because it is flaky.
BUG=1375

Review URL: http://codereview.chromium.org/6994008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 12:30:01 +00:00
jkummerow@chromium.org
2d38ad98fd fix x64 build error (introduced by rebasing)
TEST=compiles

Review URL: http://codereview.chromium.org/6980018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 09:15:21 +00:00
jkummerow@chromium.org
95ff85112f Merge Label and NearLabel
by adding NearLabel's functionality to Label and introducing a "near" parameter to jump instructions.

TEST=compiles; existing tests still pass.

Review URL: http://codereview.chromium.org/6928060

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 09:03:42 +00:00
sgjesse@chromium.org
5d8cd989ab Add new function ICCompareStub::GenerateSymbols to mips, introduced in r7824.
BUG=
TEST=

Review URL: http://codereview.chromium.org//6970006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 06:29:16 +00:00
vegorov@chromium.org
d9c80d4771 Propagate a Failure from GenerateDictionaryNegativeLookup instead of causing GC.
Review URL: http://codereview.chromium.org/6973001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 16:15:18 +00:00
ager@chromium.org
8033be880e Add IsCallable method for Object in the API
Patch by Peter Varga.

BUG=none
TEST=cctest/test-api/CallableObject

Review URL: http://codereview.chromium.org/6964005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 15:24:48 +00:00