kmillikin@chromium.org
1af840ad4c
Be more discriminating about uses of the arguments object in optimized code.
...
Because we track the value of the arguments object, we need to check
values whenever plugged into a forbidden value context. It is not
enough to check at only variable references as we did previously.
R=fschneider@chromium.org
BUG=1351
TEST=regress-1351.js
Review URL: http://codereview.chromium.org/6902202
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-02 11:35:51 +00:00
ager@chromium.org
30ef211fcf
Fix presubmit.
...
TBR=mnaganov
BUG=
TEST=
Review URL: http://codereview.chromium.org/6902203
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-02 11:08:44 +00:00
vegorov@chromium.org
cf239c4ea8
Fix two bugs the LAllocator::FindOptimalSplitPos.
...
- It was calculating start_block and end_block incorrectly.
- It was not considering the case when end_block is a loop header itself when searching for the header of the outermost loop.
These bugs do not affect correctness of the allocation but can severely degrade it's quality (cause spills in loop bodies).
Review URL: http://codereview.chromium.org/6901148
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-02 07:47:10 +00:00
dslomov@chromium.org
7088aea3eb
Revert "This implements per-isolate locking and unlocking, including tests"
...
This reverts commit 76c78febb70e75b18214f5fe45de95c7fb515386.
This change has broken test-thread-termination/TerminateMultipleV8Threads
TBR=vitalyr
Review URL: http://codereview.chromium.org/6903154
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 22:16:45 +00:00
dslomov@chromium.org
f4c120d615
This implements per-isolate locking and unlocking, including tests
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6788023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 21:26:03 +00:00
mikhail.naganov@gmail.com
22fdd1cdbb
Add some more (failing) tests for function names inference.
...
After the "Naming Anonymous JavaScript Functions" paper by
S. M. Ecole, J. J. Barton, C. Petitpierre.
TBR=yurys@chromium.org
BUG=1354
TEST=test-func-name-inference/*
Review URL: http://codereview.chromium.org/6893135
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 20:59:29 +00:00
svenpanne@chromium.org
b60baa0b70
Removed InvokeJSFlags enum, we already have InvokeFlag for the same purpose.
...
Review URL: http://codereview.chromium.org/6880321
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 20:07:41 +00:00
svenpanne@chromium.org
238349f2a7
Removed dead code: GenericUnaryOpStub is not used anymore, as a consequence, NegativeZeroHandling and UnaryOpFlags are dead, too.
...
Review URL: http://codereview.chromium.org/6903124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 17:49:53 +00:00
vitalyr@chromium.org
9af0a4e4a3
Fix windows build.
...
TBR=mnaganov@chromium.org
Review URL: http://codereview.chromium.org/6901125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 16:26:37 +00:00
vitalyr@chromium.org
a9ea3f98b0
ll_prof: Reduce profiling hooks overhead from >400% to 25%.
...
Switched to using binary low-level log instead of the textual log used
by the ticks processor. The binary log contains code-related events,
code object names, and their bodies. When writing to the log we ask
glibc to use a larger buffer. To avoid complex processing of the
snapshot log (which is still textual) the serializer emits final
snapshot position to code name mappings that can be quickly be read
without replaying the snapshot log. (This might be useful for the
ticks processor.)
Review URL: http://codereview.chromium.org/6904127
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 16:06:25 +00:00
mmaly@chromium.org
796ac25a4f
Strict mode eval declares its locals in its own environment.
...
BUG=
TEST=strict-mode.js
Review URL: http://codereview.chromium.org/6883200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 15:31:39 +00:00
mikhail.naganov@gmail.com
9a2cb3009c
Fix whitespace error after r7726
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 12:47:34 +00:00
mikhail.naganov@gmail.com
7a8996b626
Fix Linux builds after r7724
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 12:43:24 +00:00
sgjesse@chromium.org
1f96aa3772
ARM: Enhance the hardfloat support
...
The "simple" function with inline assembly for detecting hardfloat have been changed to handle compiling without VFP and with thumb.
The SCons setting for the float abi now follows then naming used by the GCC -mfloat-abi and soft has been added.
R=karlklose@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6904126
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 12:13:46 +00:00
mikhail.naganov@gmail.com
ec58c05f4e
Add support for startup data (snapshot) compression.
...
This is for mobile platforms where application footprint size is
important. To avoid including compression libraries into V8, we assume
that the host machine have them (true for Linux), and rely on embedder
to provide decompressed data.
Currently, only snapshot data can be comressed. It is also possible to
compress libraries sources, but it is more involved and will be
addressed in another CL.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6901090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 12:08:33 +00:00
whesse@chromium.org
cad92b4d33
Remove unused constructor BinaryOperation(Assignment* compound_assignment).
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6880312
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 11:25:01 +00:00
karlklose@chromium.org
03459506e8
ARM: Fix handling of return value of compare_doubles in the simulator.
...
Review URL: http://codereview.chromium.org/6904124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 11:16:09 +00:00
whesse@chromium.org
4f41d895b0
Use type info for count operation in Crankshaft.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6880276
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 09:21:18 +00:00
lrn@chromium.org
f470cf2777
Handle join of sparse arrays with non-empty separator more efficiently.
...
BUG=v8:1028
Review URL: http://codereview.chromium.org/6902144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 08:53:36 +00:00
sgjesse@chromium.org
00bc2db28f
ARM: Support hardfloat in SCons build and make it a build time setting
...
Add option armeabi to the SCons build for selecting the floating point variant to use. Also add externally defined CCFLAGS environment for all targets. Run test.py with option -S armeabi=hardfloat to test with hardfloat enabled.
Make selecting hardfloat EABI variant a build-time option instead of a runtime option.
Add a simple check of the EABI variant during V8 initialization to exit if the compilation was not configured correctly. The reason for this is that GCC does not provide a compile time symbol defining the EABI variant. This check is not fool-proof as it cannot check the compilation configuration used for the snapshot if any.
R=karlklose@chromium.org , erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6905098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 08:50:38 +00:00
sgjesse@chromium.org
122133e800
Improve modulo operation in lithium on x64.
...
This is the x64 porting of http://codereview.chromium.org/6816049/
Patch by: Yuqiang Xian from Intel
Review URL: http://codereview.chromium.org//6901091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 07:22:39 +00:00
danno@chromium.org
f6f5e5ce43
Fix build
...
TBR=ager@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 05:36:27 +00:00
danno@chromium.org
71f15faf70
Fix assert in KeyedLoadIC constructor
...
Don't assert when external array ICs are also handled by the KeyedLoadIC.
BUG=1346
TEST=none
Review URL: http://codereview.chromium.org/6893093
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 05:03:39 +00:00
svenpanne@chromium.org
fd5bff856e
Fixed compilation breakage due to warnings. TBR...
...
Review URL: http://codereview.chromium.org/6880286
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 21:02:14 +00:00
peter.rybin@gmail.com
e04dd7199e
LiveEdit: optimize substring comparison
...
Review URL: http://codereview.chromium.org/6899011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 20:24:47 +00:00
svenpanne@chromium.org
f7ecf95e95
Fixed build on Mac, where g++ is a bit too dumb to see that a variable is always initialized.
...
Review URL: http://codereview.chromium.org/6893105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 20:11:39 +00:00
peter.rybin@gmail.com
265c362925
Support LiveEdit when standing on return operator
...
Review URL: http://codereview.chromium.org/6894014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 20:05:50 +00:00
svenpanne@chromium.org
e013d4f0a4
Type recording for unary ops
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 17:49:55 +00:00
vegorov@chromium.org
1c950e04cc
Fix missing writebarrier in ArraySplice builtin.
...
Review URL: http://codereview.chromium.org/6883227
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 16:03:40 +00:00
sgjesse@chromium.org
37f33a7087
Improve modulo operation in lithium on IA32.
...
Implement fast paths for the special cases like PowerOfTwo divisors
and the dividend being smaller than the divisor (non-negative).
BUG=v8:1314
Review URL: http://codereview.chromium.org//6816049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 14:58:45 +00:00
ager@chromium.org
34d1ea45d7
Fix broken cases in x64 disassembler.
...
R=whesse@chromium.org
Review URL: http://codereview.chromium.org/6893094
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 14:56:09 +00:00
karlklose@chromium.org
32732fbc86
Expose hasOwnProperty() through API.
...
BUG=http://code.google.com/p/v8/issues/detail?id=1342
TEST=test-api/HasOwnProperty
Review URL: http://codereview.chromium.org/6903059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 09:27:40 +00:00
kmillikin@chromium.org
bae61ba619
Sometimes avoid checking whether the receiver is an object in generated code.
...
In unoptimized code, use the version of the CallFunctionStub that does not
check whether its receiver is an object in all the cases where we statically
know that it is an object.
R=ager@chromium.org ,sgjesse@chromium.org
Review URL: http://codereview.chromium.org/6880268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 09:03:15 +00:00
sgjesse@chromium.org
b7ab8684ca
Remove all android references from SCons file
...
I accidentally left some in r7686.
R=erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6905091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 08:01:13 +00:00
kmillikin@chromium.org
dc28280a82
Fix a bug in a corner case of direct eval detection.
...
The corner case is calling a function named 'eval' that is looked up at
runtime and found in a non-global context (but not an extension object).
The bug is that we used the function itself as the receiver rather than
using the global object.
R=ager@chromium.org
TEST=has been added to the eval mjsunit test
Review URL: http://codereview.chromium.org/6893057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 05:04:48 +00:00
vitalyr@chromium.org
cfb8d1c346
Atomic ops: put the CPU features struct in v8::internal.
...
Review URL: http://codereview.chromium.org/6880238
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 17:29:01 +00:00
whesse@chromium.org
d96dc0755b
Add AST ID to RelocInfo for type-recording ICs. Changes 7644 and 7632, combined.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6902066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 15:02:59 +00:00
karlklose@chromium.org
7ba01a83e9
Implement hardfloat calling convention in macro assembler and simulator.
...
Review URL: http://codereview.chromium.org/6874007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 14:29:25 +00:00
sgjesse@chromium.org
145ec569c9
Initial support for generating Visual Studio solution and project files using GYP
...
The Windows specific part of the common.gypi now reflects the options used for 'msvc' in the SCons build.
Review URL: http://codereview.chromium.org/6880237
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 14:20:21 +00:00
fschneider@chromium.org
cbe2652682
Refactor lithium classes to reduce the number of virtual functions.
...
This reduces the binary size by making the Is* type-test functions non-virtual.
I had to change Gap and Label instructions to have a common abstract superclass because both act as gap-instructions for the register allocator.
Review URL: http://codereview.chromium.org/6880204
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 11:41:42 +00:00
erik.corry@gmail.com
038fa0b408
Prepare push to trunk. Now working on version 3.3.3.
...
Review URL: http://codereview.chromium.org/6893053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 08:50:06 +00:00
sgjesse@chromium.org
8ef0204ca7
Remove the Android build option from the SCons build
...
The SCons build for Android has not been maintained for some time and did not work with the latest Android open source version. Android now has its own makefiles for building v8 and the v8_shell.
R=erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6901044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 08:25:23 +00:00
erik.corry@gmail.com
7b451068b7
Fix raw pointer misuse in StringReplaceRegExpWithEmptyString. Committing http://codereview.chromium.org/6905035/ for vegorov
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 08:20:38 +00:00
whesse@chromium.org
e39f0535be
Disable logging for the Threading test in cctest/test-api by default.
...
BUG=
TEST=test-api/Threading
Review URL: http://codereview.chromium.org/6893050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 07:56:41 +00:00
vegorov@chromium.org
db2cb44b55
Fix an edge case in non-vfp3 version of TypeRecordingBinaryOpStub.
...
Review URL: http://codereview.chromium.org/6903030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-26 16:40:20 +00:00
vegorov@chromium.org
b62bdda7d1
Crankshaft support for IN.
...
In JavaScriptFrame::Print avoid printing optimized frame as if it is unoptimized.
Review URL: http://codereview.chromium.org/6894043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-26 15:22:44 +00:00
vegorov@chromium.org
08e7b94924
Fix compilation with debuggersupport=off.
...
Review URL: http://codereview.chromium.org/6901026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-26 13:53:19 +00:00
sgjesse@chromium.org
24a9d52d3d
Fix compilation of D8 with console=readline
...
BUG=
TEST=
Review URL: http://codereview.chromium.org//6901027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-26 13:26:05 +00:00
vegorov@chromium.org
74c258f281
Add prototype transitions cache to Map.
...
Review URL: http://codereview.chromium.org/6902029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-26 09:44:55 +00:00
vitalyr@chromium.org
bde82b06c0
Avoid hidden TLS access in CpuProfiler::is_profiling().
...
Review URL: http://codereview.chromium.org/6895014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-22 06:40:22 +00:00