lrn@chromium.org
5e2295574c
Fix extra slash typo in comment.
...
Review URL: http://codereview.chromium.org/487007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-10 08:33:09 +00:00
lrn@chromium.org
c773148bb9
Fix Win64 build problem.
...
Review URL: http://codereview.chromium.org/475003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-09 16:40:54 +00:00
kmillikin@chromium.org
1d57c13b8c
Fix arm and x64 build.
...
The ApiGetterEntryStub is not implemented on arm or x64, but the
platform-specific implementations need to change to match the change
to the platform-independent signatures.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/471009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3441 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-09 15:34:57 +00:00
kmillikin@chromium.org
0672938b88
Fix a crash caused by garbage collection during generation of a
...
callback load (or keyed load) IC.
The problem was that the IC code calls a stub, which can allocate and
thus trigger a GC if the stub is not already generated. Problem is
solved by adding the ability to "try" to call a stub, trying to
generate the stub code if necessary but signaling an allocation
failure if generating the code is not possible.
Review URL: http://codereview.chromium.org/472002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3440 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-09 14:54:34 +00:00
vitalyr@chromium.org
41eb2f22d0
External string table.
...
Instead of weak handles external strings use a separate table. This
table uses 5 times less memory than weak handles. Moreover, since we
don't have to follow the weak handle callback protocol we can collect
the strings faster and even on scavenge collections.
Review URL: http://codereview.chromium.org/467037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-09 14:32:45 +00:00
erik.corry@gmail.com
67f6ea675f
Add Object.create from ECMAScript5. Supports value, writable, enumerable, get
...
and set. Doesn't support configurable yet. See
http://code.google.com/p/v8/issues/detail?id=460
Review URL: http://codereview.chromium.org/463040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-09 13:56:58 +00:00
fschneider@chromium.org
4dee8d81bd
Create literal boilerplate as part of cloning in the top-level compiler.
...
When generating code for object and array literals we performed
the check if the a boilerplate already exists in generated code.
In the top-level compiler we now do this check in a new runtime
function. This makes the generated code more compact for top-level code.
Review URL: http://codereview.chromium.org/465148
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-09 13:06:08 +00:00
erik.corry@gmail.com
264c055b2f
Create the framework for adding a thumb2 backend for ARM. See http://codereview.chromium.org/464070
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-09 12:56:42 +00:00
erik.corry@gmail.com
593c388b39
Fix for bug 512 from Subrato De, CodeAurora.
...
Review URL: http://codereview.chromium.org/464016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-09 11:14:45 +00:00
sgjesse@chromium.org
584cc1732c
Perform string add in generated code on X64 platform
...
This is a port of the IA-32 version from r3400 (http://code.google.com/p/v8/source/detail?r=3400 ). In the X64 version the additional registers are used to avoid loading the instance type and arguments several times.
Review URL: http://codereview.chromium.org/460109
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-09 09:35:41 +00:00
erik.corry@gmail.com
db87b6011b
Fix subtle bug in Math.min and Math.max with non-Smi zero.
...
See http://codereview.chromium.org/470001
From sra.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-08 10:18:28 +00:00
lrn@chromium.org
5bbb1d7bd6
Fix for issue 545: don't reuse this VariableProxy.
...
Review URL: http://codereview.chromium.org/464069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-08 09:43:51 +00:00
fschneider@chromium.org
2c9b2ab78a
Adding ThisFunction expression to top-level compiler.
...
Review URL: http://codereview.chromium.org/466056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-07 15:10:39 +00:00
kmillikin@chromium.org
0bf2822266
The toplevel code generator assumed that declarations did not shadow
...
parameters. This could case the initial value to be lost or worse, a
crash.
Fix by handling the case of a declaration shadowing both
stack-allocated parameters and those in the arguments object.
This is related to V8 issue 540.
http://code.google.com/p/v8/issues/detail?id=540
BUG=29565
Review URL: http://codereview.chromium.org/469006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-07 13:31:47 +00:00
erik.corry@gmail.com
d4787a1855
Performance improvement for Math.max and Math.min
...
Patch from sra.
http://codereview.chromium.org/470001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-07 08:38:20 +00:00
christian.plesner.hansen@gmail.com
873b25ba47
Fixed operator precedence bug in heap stat recording.
...
Review URL: http://codereview.chromium.org/465055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-04 14:35:33 +00:00
fschneider@chromium.org
7a3a043eb2
Refactor code for generating assignments in the fast compiler.
...
1. Refactor the structure of VisitAssignment: The existing code is not ideal
to be extended with support for compound assignments.
2. Reuse common code for keyed property assigments: Now variables rewritten
to a property (.arguments access) are treated like normal keyed property
assignments. This allows us to remove some code duplication.
Review URL: http://codereview.chromium.org/456024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-04 14:30:27 +00:00
sgjesse@chromium.org
a5aedaea96
Remove passing of argc in r0 when calling builtins on ARM as it is not used
...
Review URL: http://codereview.chromium.org/466031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3422 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-04 12:17:02 +00:00
kmillikin@chromium.org
7266bd0b9a
Fix issue 540 by handling the case that a declaration is in the
...
arguments object.
See http://code.google.com/p/v8/issues/detail?id=540
Review URL: http://codereview.chromium.org/460070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-04 11:59:09 +00:00
sgjesse@chromium.org
f2ad9083ce
Prepare push to trunk. Now working on 2.0.4.
...
Review URL: http://codereview.chromium.org/462034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-04 11:50:27 +00:00
sgjesse@chromium.org
eabf5c89a9
Add alignment check to object allocated in generated code for x64 and ARM
...
Review URL: http://codereview.chromium.org/460068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-04 10:22:41 +00:00
christian.plesner.hansen@gmail.com
cbce986ff0
Changed recording of heap stats on OOM to store data directly in local
...
variables rather than in a stack-allocated struct. The struct field
values turned out not to be available in minidumps.
Review URL: http://codereview.chromium.org/460069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-04 10:18:30 +00:00
sgjesse@chromium.org
96e70f6b93
String check for binary add on x64 and ARM
...
The checking for strings when performing binary add was missing on x64 and ARM. This is a prerequisite for adding string add in generated code for these two platforms.
Review URL: http://codereview.chromium.org/465028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-04 09:58:05 +00:00
sgjesse@chromium.org
f95746cbee
Better handling of allocation alignment in generated code
...
Calculate the aligned size of strings when allocating from generated code using kObjectAlignmentMask
Add native code assert to make sure allocation from generated code keeps alignment.
Review URL: http://codereview.chromium.org/462025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-04 07:43:40 +00:00
ager@chromium.org
2707fc2eb8
Fix Windows build.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/466018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-03 11:34:45 +00:00
ager@chromium.org
f568fc6d13
Move for-in cache validity check to generated code.
...
Review URL: http://codereview.chromium.org/464002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-03 10:24:16 +00:00
christian.plesner.hansen@gmail.com
1d9eac1b7c
Added recording of heap and global handle stats in a stack-allocated
...
struct on fatal out of memory. This should cause the information to
be included in minidumps so we can get a better idea of the state of
v8 on OOMs.
Review URL: http://codereview.chromium.org/462019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-03 10:16:37 +00:00
sgjesse@chromium.org
2cfb4941a1
Move function nan_value to POSIX platform file
...
Strictly speaking NAN from math.h is not in a POSIX standard but in C99. However it seems that all our POSIX platforms have it.
Review URL: http://codereview.chromium.org/464015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-03 09:29:21 +00:00
sgjesse@chromium.org
14066c0e0e
Check return code from fwrite
...
BUG=http://code.google.com/p/v8/issues/detail?id=453
TEST=none
Review URL: http://codereview.chromium.org/458016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-03 08:48:32 +00:00
mikhail.naganov@gmail.com
d84d47961a
When executing 'profile' request, delegate to api function, not to internal one.
...
Review URL: http://codereview.chromium.org/466006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-03 08:44:33 +00:00
sgjesse@chromium.org
6437fc86cc
Add missing function CpuFeaturesImpliedByPlatform to OpenBSD platform file
...
Review URL: http://codereview.chromium.org/465025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-03 08:23:10 +00:00
sgjesse@chromium.org
53fbd5932a
Perform string add in generated code on IA-32 platforms
...
This adds a code stub which can do most of what Heap::AllocateConsString can do. It bails out if the result cannot fit in new space or if the result is a short (flat) string and one argument is an ascii string and the other a two byte string. It also bails out if adding two one character strings as Heap::AllocateConsString has special handling of this utilizing the symbol table. The stub is used both for the binary add operation and for StringAdd calls from runtime JavaScript files. Extended the string add test to cover all sizes of flat result stings.
Review URL: http://codereview.chromium.org/442024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-03 07:56:21 +00:00
kbr@chromium.org
73ebe80bda
Fixed register usage in 64-bit version of
...
KeyedLoadIC::GenerateExternalArray which was causing it to go to the
slow case all the time.
Review URL: http://codereview.chromium.org/458008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-02 19:26:16 +00:00
sgjesse@chromium.org
209035c996
Initial OpenBSD support
...
Patch by Peter Valchev <pvalchev@gmail.com>.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/465002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-02 13:38:50 +00:00
sgjesse@chromium.org
9487ef7b9b
Fix adding short external ascii strings
...
BUG=http://code.google.com/p/v8/issues/detail?id=536
TEST=cctest/test-strings/ExternalShortStringAdd
Review URL: http://codereview.chromium.org/466001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-02 12:58:10 +00:00
sgjesse@chromium.org
508e54d465
Fix debug build
...
Missed out on reflecting changes to Script object layout in objects-debug.cc.
Also fixed http://codereview.chromium.org/450034/diff/2006/2010 .
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/456021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 15:52:02 +00:00
sgjesse@chromium.org
fc713930ed
Remove the last context dependent reference from the Script object
...
For scripts originating from a call to eval the Script object used to hold a reference to the function from where the eval was called together with the code offset within that function of the eval call. This is used by the stack trace and is part of the debugger protocol. In order to avoid storing the function the script, the position within the script and the name of the function calling eval is stored instead. This avoids holding context dependent objects in the script object.
The calculation of the position of the eval in the script holding the eval is now done when the eval script is compiled as it is not possible to postpone this unless a reference is kept to the generated code for the function calling eval.
BUG=http://code.google.com/p/v8/issues/detail?id=528
TEST=cctest/test-api/Regress528
Review URL: http://codereview.chromium.org/450034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 14:36:45 +00:00
erik.corry@gmail.com
a0e12a3124
Fix toLocaleString-related breakage on buildbot.
...
TBR=ager
Review URL: http://codereview.chromium.org/449055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 14:19:23 +00:00
erik.corry@gmail.com
f9e150b78b
Speed up join on arrays.
...
Review URL: http://codereview.chromium.org/457021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 12:54:36 +00:00
ager@chromium.org
a8db297d14
Remove some of the cache validity checks for for-in enumeration. We
...
can check for these cases before caching the property names instead.
Review URL: http://codereview.chromium.org/455020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 10:25:29 +00:00
ager@chromium.org
0ee41eec90
Fix megamorphic load regression on ARM caused by the string
...
length/hash change.
Review URL: http://codereview.chromium.org/454018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-12-01 09:54:47 +00:00
fschneider@chromium.org
5debbc3693
Move CPU-specific constants from debug.h into the platform-specific directories.
...
The constant for the return sequence length (JSReturnSequenceLength) was
defined in debug.h. Since this constant are also needed outside the debugger code
I moved them into assembler-xxx.h. Otherwise compiling with debuggersupport=off
would fail on ARM.
BUG=http://code.google.com/p/v8/issues/detail?id=533
Review URL: http://codereview.chromium.org/456001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-30 15:09:49 +00:00
mikhail.naganov@gmail.com
dd38c22699
Add pause / resume profiling commands to debugger protocol.
...
This allows to profile "unresponsive" web pages in the same way
as it is possible to break into them with the debugger.
BUG=http://code.google.com/p/chromium/issues/detail?id=28689
Review URL: http://codereview.chromium.org/450011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-30 14:56:20 +00:00
fschneider@chromium.org
c76856c292
Introduce flag for using the fast compiler where possible.
...
We use the fast compiler only for top-level code right now.
When always_fast_compiler is set to true, we compile with
the fast compiler whereever possible.
By default this flag is set to false.
Review URL: http://codereview.chromium.org/449012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-30 13:35:59 +00:00
kasperl@chromium.org
402e356e82
Clear the compilation cache just before starting to do mark-sweep
...
garbage collections when receiving idle notifications. This allows
us to get rid of source code strings and generated code in the
heap that would otherwise be kept around in idle V8 instances.
Review URL: http://codereview.chromium.org/450007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-30 07:57:32 +00:00
sgjesse@chromium.org
6d163d9fd0
Remove usage of JSArray in Script object
...
Storing a JSArray in the Script object could cause an indirect reference from the compilation cache to a global object to be created. Now the line ends are only stored as a FixedArrya and when that is needed in JavaScript a JSArray copy is created. Changed some of the JavaScript code to cache the line ends in a local variable for better performance.
BUG=http://code.google.com/p/v8/issues/detail?id=528
TEST=test/test-api/Bug528
Review URL: http://codereview.chromium.org/434117
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-27 14:10:48 +00:00
sgjesse@chromium.org
5764362d6f
Add test to expose bug 528
...
BUG=http://code.google.com/p/v8/issues/detail?id=528
TEST=cctest/test-api/Bug528
Review URL: http://codereview.chromium.org/443021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-27 07:57:45 +00:00
fschneider@chromium.org
3a21aafa7c
Added fast compiler support for calling JS runtime functions.
...
Also added a simple test that invokes a JS runtime function
in top-level code.
Review URL: http://codereview.chromium.org/437081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-27 00:28:06 +00:00
fschneider@chromium.org
1c90793581
Fix bug in the fast compiler's object literal code
...
Fixes issue 526:
BUG=http://code.google.com/p/v8/issues/detail?id=526
The object literals code in the fast compiler returned an incorrect result
when getter or setters are defined together with computed properties.
Added a regression test that captures the most reduced version of this
problem.
Also added a test for object literals with getters/setters and
prototype properties.
Review URL: http://codereview.chromium.org/444001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-26 21:13:20 +00:00
lrn@chromium.org
eded148caf
Fast-codegen: Arguments object working on all platforms.
...
This time it's true.
Review URL: http://codereview.chromium.org/405033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-26 10:28:32 +00:00
kbr@chromium.org
c135f2de07
Fixed incorrect instruction usage in KeyedLoadIC for byte and word
...
external array types. Added regression test based on real-world
failing code and verified that it would have caught this error.
Review URL: http://codereview.chromium.org/437052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 20:29:11 +00:00
ager@chromium.org
7a6ebbdd6d
Do not crash if a V8 extension fails to compile or throws an exception
...
when the code is run.
Instead, return an empty context handle so the failure to create a
context can be handled.
BUG=http://crbug.com/28486
Review URL: http://codereview.chromium.org/442005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 16:46:56 +00:00
mikhail.naganov@gmail.com
2af151ee63
Include getters and setters callbacks invocations in CPU profiler log.
...
Logging getters and setters from DOM API is extremely useful for web
developers as setting (and getting!) several properties can cause
page relayouts which take significant time.
Review URL: http://codereview.chromium.org/434074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 16:39:18 +00:00
antonm@chromium.org
93d6199de0
When processing global vars initialization account for the case of splitted
...
global object (using hidden prototypes):
1) setters might be not on the global object itself, but on its prototypes;
2) if property on one of prototypes is readonly, we could shadow it.
Review URL: http://codereview.chromium.org/434035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 15:45:37 +00:00
erik.corry@gmail.com
c5052399e4
Fix 64 bit build. TBR=ager.
...
Review URL: http://codereview.chromium.org/442003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 13:27:15 +00:00
erik.corry@gmail.com
10e183d353
Make heap serialization nondestructive.
...
Review URL: http://codereview.chromium.org/441017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 12:55:33 +00:00
erik.corry@gmail.com
059b9bbc5e
Update with a hopefully complete list of macros
...
used by gcc to indicate ARM architectures.
Review URL: http://codereview.chromium.org/440017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 11:23:48 +00:00
mikhail.naganov@gmail.com
3267107040
Change 'debugger-auto-break' flag status.
...
I think we can promote this flag to stable status and enable it by default.
Review URL: http://codereview.chromium.org/441016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 10:11:34 +00:00
erik.corry@gmail.com
b0b5dbadbd
Fix bug 516 by recognizing yet another gcc macro that
...
indicates ARMv6.
Review URL: http://codereview.chromium.org/437056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 09:55:49 +00:00
lrn@chromium.org
d4d2277e2e
Fast-compiler: Add stack limit checks to back edges of while, do-while and for.
...
A few other tweaks.
Review URL: http://codereview.chromium.org/435020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 09:05:30 +00:00
sgjesse@chromium.org
8dbedbb30e
Added an ASSERT to code from r3350
...
Review URL: http://codereview.chromium.org/441014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-25 08:14:23 +00:00
sgjesse@chromium.org
4bc5aee624
Fix compilation error in r3350
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/435021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-24 14:45:27 +00:00
sgjesse@chromium.org
eb4d261e24
Remove the different length string types
...
The different length string types was used to encode the string length and the hash in one field. This is now split into two fields one for length and one for hash. The hash field still encodes the array index of the string if it has one. If an array index is encoded in the hash field the string length is added to the top bits of the hash field to avoid a hash value of zero.
On 32-bit this causes an additional 4 bytes to be used for all string objects. On 64-bit this will be half on average dur to pointer alignment.
Review URL: http://codereview.chromium.org/436001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-24 14:10:06 +00:00
ager@chromium.org
56074f783a
Prepare push to trunk. Now working on version 2.0.3.
...
Review URL: http://codereview.chromium.org/435018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-24 13:30:15 +00:00
ager@chromium.org
6ce4b10608
Re-enable all declarations in fast top-level compiler.
...
Disable fast top-level compiler for now because of issues 525 and 526.
Add regression test for issue 525.
Review URL: http://codereview.chromium.org/438017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-24 12:23:29 +00:00
mikhail.naganov@gmail.com
9d440fdd36
Store API callback entry address prior to entering a callback.
...
Callback entry address is stored in VMState and is later retrieved by
profiler stack sampler. This makes possible relating API entry to JS
stack, and this is simpler than trying to unwind native stack.
Review URL: http://codereview.chromium.org/437004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-23 14:43:00 +00:00
mikhail.naganov@gmail.com
c2f12a7293
Reimplement logging of API callbacks entry points in an easier way.
...
Now they are logging during "LogCompiledFunctions" cycle. API functions
are detected by examining SFI's "function_data" field.
Review URL: http://codereview.chromium.org/414036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-23 09:19:24 +00:00
ager@chromium.org
1fe8655fbc
Change the signature for StrNDup to match the implementation. This
...
mismatch causes problems if attempting to build d8 with readline
support.
Review URL: http://codereview.chromium.org/414033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 13:08:44 +00:00
mikhail.naganov@gmail.com
72d7453dc2
Fix issue 520: wrap Logger calls into LOG macro
...
BUG=520
Review URL: http://codereview.chromium.org/422001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 12:38:59 +00:00
mikhail.naganov@gmail.com
a9d7c378d8
Add logging of callbacks in prof-lazy mode.
...
This is needed to show calls to DOM in CPU profiles. I can think
of a better approach like adding specific functions into V8 API
for explicitly providing callback names and modifying bindings codegen
appropriately. My plan is as follows:
- submit this CL;
- implement anything I need to process log data and display DOM
calls in profiles;
- think again about adding specific functions and modifying bindings
codegen.
BUG=http://code.google.com/p/chromium/issues/detail?id=27613
Review URL: http://codereview.chromium.org/402100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 12:15:46 +00:00
ager@chromium.org
11ba1bd163
Prepare push to trunk. Now working on version 2.0.2.
...
Review URL: http://codereview.chromium.org/421003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 12:03:44 +00:00
ager@chromium.org
157e4f993b
Disable the fast top-level compiler for non-global declarations.
...
Reintroduce the bailout that was put in in revision 3224.
It causes interactive ui test failures in Chromium.
TBR=fschneider@chromium.org
Review URL: http://codereview.chromium.org/421002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 11:45:18 +00:00
erik.corry@gmail.com
43e8d5fa7f
Some optimizations for packer.js.
...
Review URL: http://codereview.chromium.org/409007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-20 10:11:45 +00:00
fschneider@chromium.org
d9d18b30f5
Implement IS_OBJECT and IS_FUNCTION as inlined runtime functions.
...
Summary:
This change fixes a performance regression introduced by the special
handling of regular expressions in typeof expressions.
As a result we regain ~8% speedup on 3d-raytrace and ~13% on boyer
(vs bleeding edge)
Description:
The macros IS_OBJECT and IS_FUNCTION are frequently used in the
JS runtime functions.
By introducing new inlined runtime functions %_IsFunction and %_IsObject
we avoid invoking the more expensive %_ClassOf function plus comparing
its result to a string.
Review URL: http://codereview.chromium.org/399111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-19 07:41:32 +00:00
ager@chromium.org
3cf9ce4736
Fix crash in string replace with regexp. If the suffix of the subject
...
string is larger than 2047 chars we will encode the slice as two Smis
instead of one. The calculation of the max size of the string builder
did not take this into account.
BUG=http://code.google.com/p/v8/issues/detail?id=515
Review URL: http://codereview.chromium.org/402056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 18:48:04 +00:00
ager@chromium.org
981480c3bd
Prepare push of version 2.0.0 to trunk. Now working on version 2.0.1.
...
Review URL: http://codereview.chromium.org/405018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 12:24:46 +00:00
erik.corry@gmail.com
446b1f4443
Correct dumb assert.
...
Review URL: http://codereview.chromium.org/402048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 12:14:21 +00:00
ager@chromium.org
ce20b5b461
Fixed bug in pixel array inline cache on x64. The value was not
...
zero-extended as it should be. Therefore, the index into the pixel
array could influence the value on reads.
BUG=http://code.google.com/p/chromium/issues/detail?id=26337
Review URL: http://codereview.chromium.org/399067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 11:36:29 +00:00
erik.corry@gmail.com
701c00f8b4
Accelerate charCodeAt on ARM.
...
Review URL: http://codereview.chromium.org/402012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 10:20:24 +00:00
sgjesse@chromium.org
d55d3ce89a
Add DebugMessageDispatchHandler
...
A callback on the debugger thread when a message is received. Allows the
embedding application to wake up the main thread in order to handle the
message. Useful when the embedding application is idle and sitting in a
select() call.
Patch by Ryan Dahl <coldredlemur@gmail.com>
Review URL: http://codereview.chromium.org/395013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 08:59:28 +00:00
kasperl@chromium.org
d5c355e367
Make sure to retry SetHiddenPropertiesObject if it
...
returns a failure.
Review URL: http://codereview.chromium.org/402034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-18 00:09:28 +00:00
lrn@chromium.org
1bc9a21e9a
Sorry, this should have gone to http://codereview.chromium.org/391014
...
I added some tests and swapped the lhs and rhs of the && operator in v8natives.js as requested.
Review URL: http://codereview.chromium.org/384132
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-17 13:54:05 +00:00
antonm@chromium.org
9a545949a4
Restore invariant (next of first deallocated must point to the head) before calling into weak
...
callbacks.
Otherwise if callback allocates a new handle, it could orphan some global handles (with disastorous
consequences if those global handles are cached).
Review URL: http://codereview.chromium.org/395024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-17 13:50:07 +00:00
erik.corry@gmail.com
41749529dd
Speed up charCodeAt on very large cons strings, by insisting on
...
flattening the strings and not trying too hard to traverse a big
cons tree from generated code.
Review URL: http://codereview.chromium.org/402008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-17 10:28:04 +00:00
sgjesse@chromium.org
63925e5013
Add missing case for shr in IA-32 disassembler
...
Review URL: http://codereview.chromium.org/397024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-17 10:24:27 +00:00
sgjesse@chromium.org
459e4c6b0c
Changes to Intel shift functions
...
Change name of shifts picking the shift count from cl to sal_cl, shl_cl and shr_cl.
Add special encoding of shift by one for shr which was missing it.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-17 08:35:43 +00:00
fschneider@chromium.org
53bee811ad
Re-enable using push instructions for syncing the virtual frame.
...
This change fixes the problem with the original version of this approach
(r3032) that may lead to a corrupted stack if we would invoke spilling during
syncing a large SMI constant (unsafe SMIs) in the virtual frame.
The new code for storing unsafe SMI constants does not use an extra temporary
register. This prevents the compiler from ever having to spill during a
virutal frame sync operation.
For storing a large SMI constant we previously generated:
mov ecx, (large_smi & 0x0000ffff)
xor ecx, (large_smi & 0xffff0000)
push ecx
we now generate:
push (large_smi & 0x0000ffff)
or [esp], (large_smi & 0xffff0000)
Not using a temporary register avoids spilling within an nvocation
of VirtualFrame::SyncRange.
Review URL: http://codereview.chromium.org/391079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 23:11:19 +00:00
yurys@chromium.org
9bafc32932
Step next should respect do/while condition block.
...
Condition block of do/while statements is a valid break location so it should have its own position. The block is represented by a regular Expression node so we cannot store the position in it, instead the position is stored in a separate field in DoWhileStatement AST node.
BUG=514
Review URL: http://codereview.chromium.org/385136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 21:59:31 +00:00
yurys@chromium.org
b6ce7ce8a3
Fix some presubmit errors.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/400001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 16:58:09 +00:00
yurys@chromium.org
0a384a708d
Skip debugger frames when looking for calling context.
...
BUG=509
Review URL: http://codereview.chromium.org/398002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 14:41:55 +00:00
erik.corry@gmail.com
cc3896dfac
Fix bug 503: undefined <= undefined should return false on ARM.
...
Review URL: http://codereview.chromium.org/399001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 14:12:27 +00:00
erik.corry@gmail.com
64941f1cf9
* Remove old snapshot implementation
...
Review URL: http://codereview.chromium.org/394007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-16 12:08:40 +00:00
fschneider@chromium.org
5820f951c1
Improve the allocation and initialization of locals on IA32 in the top-level compiler.
...
This optimization is already done on x64 and ARM.
Until now we used a push immediate for each local variable on IA32:
push $undefined
push $undefined
...
to initialize each local variable. This change does:
mov eax, $undefined
push eax
push eax
...
Review URL: http://codereview.chromium.org/393009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 13:59:07 +00:00
lrn@chromium.org
4af20283a2
Disable "arguments" implementation. It was too optimistic in its assumptions.
...
Review URL: http://codereview.chromium.org/393010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 13:12:57 +00:00
erik.corry@gmail.com
df4f52347b
Allow a platform to indicate that some CPU features are always
...
available. We use this to ensure that snapshots on MacOSX can
use SSE2 instructions. Also clean up and assertify the
handling of things we can't do when we are generating a
snapshot. Fix a bug in the new serialization tests where
they activated Snapshot::enable() too late after code had been
generated that assumed no snapshots.
Review URL: http://codereview.chromium.org/391051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 12:32:57 +00:00
fschneider@chromium.org
1560b89888
Top-level compiler: Re-allow non-lazily compiled function literals.
...
This change re-allows non-lazy compiled function literals for top-level compilation.
There was a problem on ARM exposed through this change which was fixed as part of r3289
in fast-codegen-arm.cc (Threading and Threading2 tests failed)
It occurred before r3289 when we allocate a local context at the beginning of a function. The
code for the stack check was split up in an unintended way (load of stack check limit into r2,
and use of r2 in the actual stack check code).
Review URL: http://codereview.chromium.org/385070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 10:02:32 +00:00
fschneider@chromium.org
cfed6e1e8e
Fixes bug in the top-level compiler with the write barrier for assignments to context slots:
...
The test for a SMI before the write barrier tested the wrong register:
r0 = target context address
r1 = value to be written
This change fixes the SMI test and tests r1 instead of r0.
Review URL: http://codereview.chromium.org/384085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 09:51:49 +00:00
fschneider@chromium.org
b27f0c8d08
Cleanup and fix generated comments in the top-level compiler.
...
Review URL: http://codereview.chromium.org/384087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 09:42:18 +00:00
yurys@chromium.org
ff3e84539c
Remove trailing whitespace from objects.h
...
TBR=vitalyr
Review URL: http://codereview.chromium.org/387037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-12 16:52:48 +00:00
yurys@chromium.org
cc0ce24331
Make accessors for hidden properties object not touch interceptors.
...
Interceptors cannot provide a meaningful result for hidden_symbol anyway and some of them crash on empty property name.
Related Chromium issue: http://code.google.com/p/chromium/issues/detail?id=27385
Review URL: http://codereview.chromium.org/390020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-12 16:34:52 +00:00
erik.corry@gmail.com
407816af39
Fix some style issues in the ARM code.
...
Also move a function into the macro assembler.
Fix some *& placement errors that had accumulated.
Review URL: http://codereview.chromium.org/385069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-12 13:55:21 +00:00
erik.corry@gmail.com
0d94d7c785
Add vfp support on ARM. Patch from John Jozwiak.
...
Review URL: http://codereview.chromium.org/348019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-12 13:04:02 +00:00
lrn@chromium.org
1151b496bf
Fast-codegen: Added support for arguments in functions.
...
Functions using "arguments" have their arguments object created on entry.
Also added support for variables rewritten into argument object property access.
Review URL: http://codereview.chromium.org/384078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-12 11:38:01 +00:00
kbr@chromium.org
ffda5f5ff5
Fixed bug in x64 port of KeyedStoreIC::GenerateExternalArray where it
...
was always falling through to the runtime. Re-examined both load and
store ICs and verified they are now in sync with the 32-bit port.
Ran tests and benchmarks.
Review URL: http://codereview.chromium.org/385020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 23:06:11 +00:00
christian.plesner.hansen@gmail.com
d5ca1178cb
Fixed a few cases where allocators did not respect always_allocate,
...
potentially leading to bogus FatalProcessOutOfMemory situations. Also
fixed a few cases where callers relied on getting a NewSpace object
back (to avoid write barrier overhead) which they can't when
always_allocate is in effect.
Review URL: http://codereview.chromium.org/391018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 15:25:51 +00:00
erik.corry@gmail.com
6d91ffdafe
Fix thinko in fix for issue 484.
...
Review URL: http://codereview.chromium.org/391016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 14:32:14 +00:00
erik.corry@gmail.com
2d30963d1d
Log the stubs found in the snapshot so the profiler can give
...
a sensible output.
Review URL: http://codereview.chromium.org/385039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 12:35:50 +00:00
christian.plesner.hansen@gmail.com
5d4d5944dd
Remove special-case for arguments.toString to match ES5
...
Patch by Jan de Mooij <jandemooij@gmail.com>
Review: http://codereview.chromium.org/273073
Review URL: http://codereview.chromium.org/389008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 11:28:37 +00:00
lrn@chromium.org
d53f05e3e2
Fix warnings on Win64.
...
Set warning level to /W3 and change implicit conversions from size_t
to int. Most "fixes" are simply manifesting the implicit casts or using
a special strlen replacement that returns int.
Review URL: http://codereview.chromium.org/390004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 09:50:06 +00:00
erik.corry@gmail.com
78a8f5973d
Restore info needed to register profile ticks in functions from
...
the snapshot. Still needed: info to register profile ticks in
stubs.
Review URL: http://codereview.chromium.org/385035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 09:19:39 +00:00
ager@chromium.org
2252cc1bc9
Fix inline constructor code bailout.
...
Remove variable that is currently unused.
BUG=http://code.google.com/p/v8/issues/detail?id=502
Review URL: http://codereview.chromium.org/392001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 09:00:09 +00:00
yurys@chromium.org
cd9660f77c
All hidden properties of an object are stored in a value of a regular property with empty name. This property may confuse user if returned among regular properties. It should not be exposed directly by ObjectMirror. Should we want an access to these properties from debugger we need to implement an explicit method for that.
...
Current patch filters the hidden_symbol from property names returned to ObjectMirror.
See http://crbug.com/26491
Review URL: http://codereview.chromium.org/390001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-10 16:13:21 +00:00
ager@chromium.org
963d72ff57
Revert r3032 that uses push instead of 'sub esp, size'. This change
...
leads to stack corruption in 32-bit version of V8.
See http://code.google.com/p/chromium/issues/detail?id=27227 for a
reproducible case.
Since this is only an issue on 32-bit V8 I think this has got
something to do with the UnsafeSmi handling that we do on ia32. I'm
reverting for now so we can push a fix, but we should track down the
issue and create a regression test for this.
Review URL: http://codereview.chromium.org/383005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-10 14:58:16 +00:00
sgjesse@chromium.org
851b9b2f73
Remove sliced string string type
...
As a first step to reduce the complexity of the string hierachy the sliced string type is removed. Whenever a sub-string is created it is allocated as a fresh flat string.
Review URL: http://codereview.chromium.org/385004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-10 13:23:05 +00:00
lrn@chromium.org
c1efaa01fe
Reapply 3246 and 3247 after fixing valgrind warning.
...
Review URL: http://codereview.chromium.org/386001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-10 10:23:23 +00:00
fschneider@chromium.org
091c7a2306
Fixed bug in while-loops that caused an assertion to fail.
...
We forgot resetting true-/false-label to NULL after evaluating the
condition expression in dowhile- and while-loops.
This change fixes this.
This causes an assertion to fail in VisitIfStatement whenever there is an
if-statement after a while-loop before. e.g. like in:
var i=0, j=0;
while(j<5) { j++; }
if (i ==0 ) { j++; }
Review URL: http://codereview.chromium.org/371070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-10 09:57:13 +00:00
erik.corry@gmail.com
95d550578c
Revert 3245 and 3246 because they cause valgrind failures.
...
TBR=lrn
Review URL: http://codereview.chromium.org/372059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 17:05:51 +00:00
fschneider@chromium.org
5ba34775c7
Temporarily de-activate while-loops in the top-level compiler because
...
it makes some debug tests fail.
TBR=christian.plesner.hansen@gmail.com
Review URL: http://codereview.chromium.org/371069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 15:31:15 +00:00
erik.corry@gmail.com
526f83d6b9
Fix small memory leak in new serialization code.
...
Review URL: http://codereview.chromium.org/371068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 13:30:50 +00:00
fschneider@chromium.org
cff817d70b
Revert change r3240-3241 because it causes ARM tests to fail.
...
(non-lazily compiled function literals)
Review URL: http://codereview.chromium.org/376021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 13:30:35 +00:00
lrn@chromium.org
5b1faade55
Fast-compiler: Added trivial implementations of while and do/while.
...
Review URL: http://codereview.chromium.org/372055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 13:22:38 +00:00
erik.corry@gmail.com
9065114928
http://codereview.chromium.org/371067 thanks to Jan de Mooij
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 13:21:14 +00:00
ager@chromium.org
a29255e334
Inline common case of one capture when using replace with a regexp and
...
a function.
Review URL: http://codereview.chromium.org/371065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 13:17:50 +00:00
lrn@chromium.org
8ad022d544
Fix lint issue.
...
Review URL: http://codereview.chromium.org/379005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 12:18:25 +00:00
lrn@chromium.org
cf0d74554c
Remove unnecessary buffer doubling and content copying.
...
Review URL: http://codereview.chromium.org/377006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 11:52:18 +00:00
fschneider@chromium.org
be8e9c0b1c
Fix SVN merge problem in the top-level compiler.
...
(Remove bailout on non-global declarations again)
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/372054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 10:30:33 +00:00
erik.corry@gmail.com
b068a9f755
* Fix regexp benchmark regression where we were doing work to
...
make standard regexps like \s and . case independent.
* Make use of the fact that the subject string is ASCII only
when making character classes case independent.
* Avoid spending time making large ideogram or punctuation
ranges case independent when there is no case mapping anyway.
Review URL: http://codereview.chromium.org/378024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 10:01:23 +00:00
whesse@chromium.org
493c9f072c
Enable writes and reads of context slots in fast compiler.
...
Review URL: http://codereview.chromium.org/360054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 09:56:57 +00:00
fschneider@chromium.org
0afb1e1697
Add function literals that always require non-lazy compilation to the top-level compiler.
...
Review URL: http://codereview.chromium.org/371064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-09 09:43:24 +00:00
erik.corry@gmail.com
eec580cf5d
Fix missing () on function call causing warning on some versions
...
of gcc.
Review URL: http://codereview.chromium.org/371020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-06 14:06:35 +00:00
erik.corry@gmail.com
6a3921fc0e
Keep natives source code in external strings instead of putting
...
it in regular flat strings that are part of the snapshot.
After this change we don't need libraries-empty.cc any more. In
this change libraries-empty.cc is just a the same as libraries.cc
and the scons build builds it but does not use it. We can move
in stages to a situation where it is not generated at all for all
the build systems that we have.
Review URL: http://codereview.chromium.org/360050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-06 13:48:33 +00:00
christian.plesner.hansen@gmail.com
321bed24f6
Fixed problem where popping a handle scope after calling an accessor
...
would clobber the register holding the result.
Review URL: http://codereview.chromium.org/377004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-06 11:35:47 +00:00
erik.corry@gmail.com
57c919e414
Fix bug 486, Cyrillic character ranges in case independent regexps.
...
http://code.google.com/p/v8/issues/detail?id=486
Review URL: http://codereview.chromium.org/361033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-06 11:15:20 +00:00
fschneider@chromium.org
9a7c403bbb
Add support for all declarations in the top-level compiler:
...
Until now we only handled global declarations. This change
adds declarations of local variables, consts and functions.
Review URL: http://codereview.chromium.org/368005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 17:33:50 +00:00
kmillikin@chromium.org
8595cbb0d3
Remove an unused enumeration value.
...
Review URL: http://codereview.chromium.org/366030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 17:25:50 +00:00
kmillikin@chromium.org
16303936de
Fix a bad commit due to an svn merge error.
...
Review URL: http://codereview.chromium.org/368007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 16:21:27 +00:00
kmillikin@chromium.org
debb5f8b48
Change the special handling of typeof comparisons to strings for
...
regular expressions to be consistent with typeof in other contexts.
Typeof regular expressions should now be 'function' in all contexts.
In the JS natives, IS_FUNCTION, IS_OBJECT, and IS_REGEXP return the
same answers as before.
Review URL: http://codereview.chromium.org/360053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 16:08:48 +00:00
christian.plesner.hansen@gmail.com
930ab041a8
Made iteration of global handles more efficient on scavenges.
...
Review URL: http://codereview.chromium.org/355041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 15:12:36 +00:00
sgjesse@chromium.org
41d6cae46d
Fix issue 493: Infinite loop when debug break is set when entering function.apply.
...
In the generated code for function.apply there was a loop checking the stack limit for interruption. This loop would call into the runtime system to handle interuption and keep running until there was no interruption. However if the interuption was debug break the runtime system would never clear the interruption as debug break is prevented in builtins are prevented and the assumption here was that returning with the debug break flag set would move execution forward.
Renamed initial_jslimit and initial_climit to real_jslimit and real_climit. Renamed a few external references related to the stack limit as well.
Exposed the real stack limit to generated code to make the stack check when entering function.apply use the real stack limit and not the stack limit which is changed to signal interruption.
Added the real stack limit to the roots array.
BUG=http://code.google.com/p/v8/issues/detail?id=493
TEST=cctest/test-debug/DebugBreakFunctionApply
Review URL: http://codereview.chromium.org/345048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 13:59:40 +00:00
ager@chromium.org
b5a19c1036
Rework the way we handle the fact that the ARM simulator uses a
...
separate JS stack.
In exception handling, we need to be able to compare addresses into
the JavaScript portion of the stack with the address of a C++ handler
on the stack. Since the stacks are separate on the simulator, we need
a JavaScript stack address corresponding to a C++ try catch handler in
order to perform valid address comparisons.
On the simulator, we now link the C++ try catch handlers indirectly
through the JS stack and use the JS stack indirection address for
comparisons.
JS C++
handler
[C++ address] <------ next_
\
\
\----> handler
[C++ address] <------ next_
On actual hardware the C++ try catch handlers continue to be directly
linked.
BUG=http://code.google.com/p/v8/issues/detail?id=271
Review URL: http://codereview.chromium.org/360004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 13:27:21 +00:00
whesse@chromium.org
ec7034e65b
Make "typeof this" return object in fast compiler.
...
Review URL: http://codereview.chromium.org/366028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 12:45:53 +00:00
ager@chromium.org
f39fbb206e
Fix case where we treat an unaliased call to eval as an aliased call
...
to eval.
BUG=http://code.google.com/p/v8/issues/detail?id=496
Review URL: http://codereview.chromium.org/366027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 11:19:37 +00:00
kmillikin@chromium.org
efd20687c9
In the toplevel code generator, support local context allocation
...
provided that none of the parameters need to be copied into the
context.
Review URL: http://codereview.chromium.org/369003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 10:38:26 +00:00
lrn@chromium.org
e8db709be1
Removed (now) unused Token-lookup code.
...
Review URL: http://codereview.chromium.org/361026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 10:24:20 +00:00
whesse@chromium.org
c1e7dd83a4
Implement typeof in fast compiler.
...
Review URL: http://codereview.chromium.org/354027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 10:15:25 +00:00
lrn@chromium.org
273e860cc1
Changed keyword token recognition to be done inline in the identifier scanner.
...
Review URL: http://codereview.chromium.org/360048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-05 10:11:38 +00:00
fschneider@chromium.org
877db0f539
Add support for debugger statement to top-level compiler.
...
Review URL: http://codereview.chromium.org/366004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-04 19:04:29 +00:00
kmillikin@chromium.org
0bf546f243
Fix a bug where if a non-lazily-compiled function is a candidate for
...
toplevel compilation and the toplevel compiler cannot handle the
function, we would erroneously signal a stack overflow instead of
falling back on the optimizing compiler.
Review URL: http://codereview.chromium.org/366005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-04 18:39:44 +00:00
kmillikin@chromium.org
0ce4eab1b2
Obey the flag --lazy in the toplevel code generator.
...
There were two separate implementations of the function
'BuildBoilerplate' that is used to compile function declarations and
function literals. The implementations did not do exactly the same
thing. In particular, one ignored the flag --lazy.
Combine the two implementations.
Review URL: http://codereview.chromium.org/360011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-04 17:59:24 +00:00
sgjesse@chromium.org
392ee5d1a8
Fix ARM debug build
...
TBR=fschneider@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-04 15:24:11 +00:00
sgjesse@chromium.org
77a71c90c7
Fix issue 491: constantpool dump violates ARM debugger assertion for return point
...
The generation of the return sequence is now protected from having the constant pool emitted inside of it in both compilers.
BUG=http://code.google.com/p/v8/issues/detail?id=491
TEST=test/mjsunit/regress/regress-491.js
Review URL: http://codereview.chromium.org/362003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-04 14:45:50 +00:00
fschneider@chromium.org
3db5a2e981
Fix compilation error in debug build for IA-32 and ARM.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/361005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-04 14:33:37 +00:00
fschneider@chromium.org
ff0d885b95
Emitting the common return sequence in the top-level compiler in one function for each platform.
...
I factored out the code for emitting the return sequence since we had this code duplicated in the top-level compiler.
Review URL: http://codereview.chromium.org/354024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-04 14:11:39 +00:00
kmillikin@chromium.org
34dee0319c
Remove the typeof state threaded through the code generator. It was
...
used to signal that an expression was the immediate subexpression of
typeof, or (?) in the arm of a conditional expression itself in the
typeof state.
It was inconsistently consulted. It was not used for property loads,
but only for slot loads. This means that we matched the Webkit JSC
(not Spidermonkey) behavior for:
typeof(true ? x : y) // throws ReferenceError
and we matched the SpiderMonkey behavior (not JSC) for:
with ({}) { typeof(true ? x : y) } // ==> "undefined"
Now we are expected to match the JSC behavior in all cases.
Review URL: http://codereview.chromium.org/362004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-04 13:56:41 +00:00
sgjesse@chromium.org
54ec6c031a
Fix xssue 492: ARM debug crash: mozilla/ecma/FunctionObjects/15.3.1.1-3
...
When the number of parameters times 4 (kPointerSize) to a function cannot be encoded in 12 bits the return sequence gets one more instruction. Changed the assertion to check for this case.
BUG=http://code.google.com/p/v8/issues/detail?id=492
TEST=test/mjsunit/regress/regress-492.js
Review URL: http://codereview.chromium.org/354028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-04 10:04:22 +00:00
christian.plesner.hansen@gmail.com
a1b2f47600
Reverting 3174. Aka reapplying 3150, 3151 and 3159. Aka api accessor
...
ics.
Review URL: http://codereview.chromium.org/341082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-04 08:51:48 +00:00
erik.corry@gmail.com
b9d37517d2
* Do a GC in mksnapshot to get rid of some extraneous junk.
...
* Make snapshot more compact by coding the tag and the space
in one byte. Contract some common sequences to one byte.
* Use back references only within one page. Index from the
start of the space otherwise.
* Serialize Smis as raw data rather than int-encoding them.
This takes a little more space but is faster.
Review URL: http://codereview.chromium.org/341079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-03 21:00:43 +00:00
fschneider@chromium.org
6d425b70f6
Insert call to CodeForFunctionPosition in the ARM code generator.
...
(== SetFunctionPosition in the top-level compiler)
IA32 and X64 already do this at the beginning of CodeGenerator::gencode
Review URL: http://codereview.chromium.org/354026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-03 16:08:35 +00:00
kmillikin@chromium.org
3eb69a34fa
Begin using the top-level code generator for code that is inside
...
directly-applied function literals that are themselves compiled with
the top-level code generator.
The choice is guarded by a test that the function is anonymous (thus
not expected to be recursive) and not in a loop.
A compilation hint is set in the shared function info and used to make
the choice.
Review URL: http://codereview.chromium.org/341081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-03 14:48:59 +00:00
kmillikin@chromium.org
85fc0d688a
Fix a latent bug in the top-level compilation of function calls.
...
Calls to a non-global variable would go through the "call to a global"
path, rather than the "call to an arbitrary (other) expression" path.
Review URL: http://codereview.chromium.org/355009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-03 12:47:19 +00:00
christian.plesner.hansen@gmail.com
850487401d
Added TryCatch::ReThrow method.
...
Review URL: http://codereview.chromium.org/342078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-03 08:53:34 +00:00
whesse@chromium.org
84542872f6
Commiting changelist issue 348039 outside the codereview tool. Add comparisons to fast compiler
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-02 15:01:06 +00:00
kmillikin@chromium.org
1affb78938
Add support for for loops to the toplevel code generator.
...
Review URL: http://codereview.chromium.org/340059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-02 14:12:48 +00:00
kmillikin@chromium.org
aa3b00a25a
Add support for initialization block assignments in the toplevel code
...
generator, mimicing the behavior of the optimizing compiler.
Initialization blocks can only contain (thus begin and end) with a
property assignment in toplevel code.
Review URL: http://codereview.chromium.org/348038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-02 13:30:24 +00:00
sgjesse@chromium.org
b4c11d0816
Don't use string slices when processing RexExp replace (re-apply r3153)
...
Re-apply r3153 with a fix for issue 490. Except for the change in line 1756 and the added test this change is identical to http://codereview.chromium.org/342015 .
BUG=490
TEST=test/mjsunit/regress/regress-490.js
Review URL: http://codereview.chromium.org/341064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-02 12:21:43 +00:00
fschneider@chromium.org
e38cd233c3
Support for function calls on an arbitrary expression that returns
...
a function in the top-level compiler.
e.g.
function f() { return (function() { return true; }) }
f()()
Review URL: http://codereview.chromium.org/346029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-02 12:04:35 +00:00
kmillikin@chromium.org
b710d66f39
Refactor the somewhat complicated code generation for assignments into
...
a platform-independent structure and a few platform-specific helpers
to do the heavy lifting.
Review URL: http://codereview.chromium.org/342073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-02 11:01:47 +00:00
fschneider@chromium.org
a07146c0cb
Support for post-fix count operations (x++, x--) where x is a global
...
variable for the top-level compiler.
Review URL: http://codereview.chromium.org/342058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-02 10:22:22 +00:00
whesse@chromium.org
e09c4f20c5
Add unary not operator to fast compiler.
...
Review URL: http://codereview.chromium.org/343057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-02 10:17:12 +00:00
whesse@chromium.org
e4f5b74dd1
Add conditional expressions (ternary choice operator) to fast compiler.
...
Review URL: http://codereview.chromium.org/340058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3192 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-02 08:44:19 +00:00
peter.rybin@gmail.com
9200f3ba9e
Report function source position via JSON protocol
...
Review URL: http://codereview.chromium.org/341024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-30 16:38:37 +00:00
kmillikin@chromium.org
20f780fdbc
Implement new support for if statements in top-level code.
...
Review URL: http://codereview.chromium.org/346022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-30 15:34:09 +00:00
kmillikin@chromium.org
ab3e85eeb4
Initial implementation of top-level compilation of expressions in test
...
context. Test contexts are used for the left subexpressions of
short-circuited boolean operators. The right subexpressions inherit
their expression context from the binary op expression.
Compilation of short-circuited operations in effect and test context
is straightforward:
effect(e0 || e1) =
test(e0, L0, L1)
L1: effect(e1)
L0:
test(e0 || e1, L0, L1) =
test(e0, L0, L2)
L2: test(e1, L0, L1)
Because the value of the first subexpression may be needed as the
value of the whole expression in a value context, we introduce a
hybrid value/test contest (the value is needed if true, but not if
false).
value(e0 || e1) =
value/test(e0, L0, L1)
L1: value(e1)
L0:
The compilation of value/test and test/value (introduced by boolean
AND) is:
value/test(e0 || e1, L0, L1) =
value/test(e0, L0, L2)
L2: value/test(e1, L0, L1)
test/value(e0 || e1, L0, L1) =
test(e0, L0, L2)
L2: test/value(e1, L0, L1)
Boolean AND is the dual. The AST nodes themselves (not their parents)
are responsible for producing the proper result (effect, value, or
control flow) depending on their context.
Review URL: http://codereview.chromium.org/339082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-30 14:06:48 +00:00
whesse@chromium.org
b7c0b738c7
Add void operator to fast compiler.
...
Review URL: http://codereview.chromium.org/342055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-30 11:32:42 +00:00
erik.corry@gmail.com
f57f128aba
Fix new snapshot compilation on ARM.
...
Review URL: http://codereview.chromium.org/349001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-30 11:28:49 +00:00
erik.corry@gmail.com
dbd7f20d2d
Introduce a switch for the new snapshot code and switch
...
it on by default. Includes bug fixes for new snapshots.
Review URL: http://codereview.chromium.org/342054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-30 10:23:12 +00:00
fschneider@chromium.org
07cd399b5c
Support for calls on named and keyed properties in the fast compiler of the form:
...
o.x() and o[expr]()
other changes:
- Fix missing relocation info for StoreIC on global object.
- Generate only one common return sequence instead of always appending
"return <undefined>" at the end of each function: The first JS
return-statement will generate the common return sequence. All
other return-statements will generate a unconditional branch to the common
return sequence.
Review URL: http://codereview.chromium.org/340037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-30 10:22:31 +00:00
kmillikin@chromium.org
2181c96d61
Fix thinko in assertion.
...
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/343055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-30 09:57:08 +00:00
kmillikin@chromium.org
d92fa03eca
Move the Location class into the AST Expression class as a member.
...
Since it is (currently) only an enum, change it to an enum (for now).
Review URL: http://codereview.chromium.org/342035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-30 08:36:46 +00:00
fschneider@chromium.org
143b4b87b4
Support for property assignment in the fast compiler.
...
The code for .result = (b.y = 99) where b is a global variable is:
push [esi+0x17]
mov ecx,0xf5c229ad ;; object: 0xf5c229ad <String[1]: b>
call LoadIC_Initialize
nop
mov [esp],eax
mov eax,0xc6
mov ecx,0xf5c25c41 ;; object: 0xf5c25c41 <String[1]: y>
call StoreIC_Initialize
nop
mov [esp],eax
pop [ebp+0xf4]
There is still some room for improvement in the generated code.
Other changes:
- Replaced switch-statement in FastCodeGenerator::VisitProperty with DropAndMove(...)
- Do not emit nop after IC calls on ARM.
Review URL: http://codereview.chromium.org/347001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-30 07:56:38 +00:00
sgjesse@chromium.org
4c9c50bfd3
Prepare to push to trunk. We are now working on 1.3.19
...
Review URL: http://codereview.chromium.org/348010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-29 14:33:51 +00:00
kmillikin@chromium.org
b1defd51cb
Rename the Location type tags to be consistent with our current naming
...
scheme for enumerations (eg, EFFECT => kEffect).
Remove the ability to move from one Location to another, which should
never be necessary.
Review URL: http://codereview.chromium.org/340034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-29 13:58:04 +00:00
sgjesse@chromium.org
be769f6a24
Reverting 3159, 3151 and 3150
...
TBR=christian.plesner.hansen@gmail.com
Review URL: http://codereview.chromium.org/343035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-29 13:17:11 +00:00
kmillikin@chromium.org
c612751095
Fix x64 build.
...
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/346012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-29 12:19:20 +00:00
whesse@chromium.org
05d6294e98
Add binary operations to fast compiler.
...
Review URL: http://codereview.chromium.org/342019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-29 11:55:03 +00:00
kmillikin@chromium.org
9ad7a66f98
Rename the kinds of locations to be consistent with the (codegen)
...
context of the expressions they label. Introduce an "unintialized"
location to catch failure to assign any location at all.
Changed the object literal initialization on ARM to use a Store IC in
the same cases where it did on the other platforms. This was required
because the location of the literal property name is given an
"unitialized" location.
Review URL: http://codereview.chromium.org/339045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-29 10:35:29 +00:00
sgjesse@chromium.org
9b6a1cca5d
Reverting 3153
...
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/341031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-29 07:31:23 +00:00
ager@chromium.org
88275efb91
Prepare push to trunk. Now working on version 1.3.18.
...
Review URL: http://codereview.chromium.org/338063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 14:30:55 +00:00
lrn@chromium.org
0aecc29024
Issue 485: Fix leak of builtins object through call and apply functions.
...
Review URL: http://codereview.chromium.org/345007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 13:51:30 +00:00
kmillikin@chromium.org
6a83cb0ced
In the toplevel compiler, shift the responsibility of assigning a
...
location to an Expression AST node from the node's parent to the node
itself.
This allows an inherited code generation context from a parent node to
be passed arbitrarily far down the tree (eg, the subexpression of a
unary not is in the same context as the unary expression itself, the
then and else subexpressions of the ternary operator are in the same
context as the whole expression, and so forth).
We do not yet take advantage of this in the backend (eg, the right
subexpression of short-circuited OR is still compiled by using the
parent's destination location, rather than the subexpression's
itself).
Review URL: http://codereview.chromium.org/340005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 13:25:40 +00:00
sgjesse@chromium.org
6768703d24
Derive string size constants
...
* The maximum length of short and medium sized strings is now derived from other constants.
* Remove the redundant String part of their names.
Review URL: http://codereview.chromium.org/347002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 13:10:36 +00:00
erik.corry@gmail.com
97de363ef5
* Fix new snapshot code on ARM.
...
Review URL: http://codereview.chromium.org/344011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 12:37:54 +00:00
christian.plesner.hansen@gmail.com
583c47ae76
Changed accessor ICs to using direct calls.
...
Review URL: http://codereview.chromium.org/343015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 12:14:20 +00:00
ager@chromium.org
aea684ede4
Add fast check for NaN in NumberCompare slow case.
...
Review URL: http://codereview.chromium.org/344010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 10:19:56 +00:00
fschneider@chromium.org
a84ba0e15c
Fix missing recording of source position for property access in fast compiler.
...
Review URL: http://codereview.chromium.org/341002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 10:14:32 +00:00
whesse@chromium.org
0bd21aa0f9
Factor out a commonly used code sequence to DropAndMove(Location, Register)
...
Review URL: http://codereview.chromium.org/337060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 09:56:14 +00:00
mikhail.naganov@gmail.com
492dc0643f
Fix crbug/24815. Changes affect profiler "lazy" mode used for V8 in Chromium.
...
- don't engage the processing thread of CPU profiling until the first time profiling is resumed, this saves us a thread allocation for the majority of users;
- don't log shared libraries addresses: this is useless for JS-only profiling, and also consumes time on startup.
Review URL: http://codereview.chromium.org/340013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 09:13:11 +00:00
sgjesse@chromium.org
abbc6b9147
Don't use string slices when processing RexExp replace.
...
String slices from RegExp replace results is now encoded in either one or two smis. Substrings are not used any more.
If the existing one smi encoding cannot hold the start/length information two smis are used the first having the negative length and the second having the start.
This is in preparation for removing string slices.
Review URL: http://codereview.chromium.org/342015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-28 09:11:45 +00:00
fschneider@chromium.org
64e1d3205f
Support for property access (named, keyed) in the fast compiler.
...
The generated code is similar to the existing code, but we never
inline any IC code in the fast compiler.
Review URL: http://codereview.chromium.org/337045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 16:11:12 +00:00
christian.plesner.hansen@gmail.com
d05c23dbd0
Fixed build error on x64.
...
Review URL: http://codereview.chromium.org/339027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 15:57:21 +00:00
christian.plesner.hansen@gmail.com
895f1d22e5
Implemented specialized stubs for API getters. This includes a number
...
of individual changes:
- Added infrastructure for custom stub caching.
- Push the code object onto the stack in exit calls instead of a
debug/non-debug marker.
- Remove the DEBUG_EXIT frame type.
- Add a new exit stub generator for API getters.
Committed: http://code.google.com/p/v8/source/detail?r=3130
Review URL: http://codereview.chromium.org/330017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 15:38:49 +00:00
whesse@chromium.org
29914b6be7
Remove --check-stack flag from V8.
...
Review URL: http://codereview.chromium.org/338017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 14:56:50 +00:00
whesse@chromium.org
299a491d7a
Add VisitCallNew to fast compiler.
...
Review URL: http://codereview.chromium.org/334041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 14:52:55 +00:00
kmillikin@chromium.org
a73bbe605e
Make it more pleasant to work with expression locations in the
...
top-level code generator backend. Introduce function to move one
location to another (source cannot be nowhere); to move registers,
slots, and literals into a location; and to move a location to a
register or slot.
Review URL: http://codereview.chromium.org/338043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 13:38:57 +00:00
erik.corry@gmail.com
3615957055
Start using snapshot VM configuration in internal benchmark
...
graphing tool. Fix nonportable fopen call in new snapshot code.
Review URL: http://codereview.chromium.org/340002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 13:19:14 +00:00
erik.corry@gmail.com
fb2317b63b
New snapshot framework. Doesn't work on ARM yet (code targets
...
are different). Is able to deserialize the whole heap and run
some stuff. Not available as the primary snapshot system yet.
Review URL: http://codereview.chromium.org/335009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 11:54:01 +00:00
whesse@chromium.org
0695df6eaa
Add fucomip instruction to disassembler. Fix some other floating point instructions.
...
Review URL: http://codereview.chromium.org/316010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 10:47:01 +00:00
sgjesse@chromium.org
a332c465db
Fix x64 breakage in r3136.
...
Make sure that the return value is moved to rax. The line added back was accidently removed in r3136.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/339021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 10:40:43 +00:00
kmillikin@chromium.org
42b28e8120
Fix x64 DEBUG build.
...
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/338042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 10:27:08 +00:00
lrn@chromium.org
59e7be2c03
Windows: Change test to not assume ebp is frame-pointer.
...
Review URL: http://codereview.chromium.org/329007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 08:50:24 +00:00
kmillikin@chromium.org
76e1e22f15
Eliminate the constant location used for literals in the AST.
...
Literals now have a location of temporary by default and are
responsible for moving themselves into their location like all other
expressions.
The constant location turned out not to allow us to avoid checking
subexpressions in AST interior nodes, and it turned out to require
checking after some normal calls to Visit (like for the arguments to a
call). With this change do not have to check after a call to Visit
that we got our result in the expected location.
Review URL: http://codereview.chromium.org/339004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 08:48:01 +00:00
sgjesse@chromium.org
c84af6828b
Port optimization of calls to GenericBinaryStub to x64.
...
See description of the change in the ia32 changelist at http://codereview.chromium.org/246075 .
Minor changes to the ia32 version using variables for the registers to pass parameters in (edx and eax) to make the parameter set up code easier to read.
Review URL: http://codereview.chromium.org/335005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 08:20:21 +00:00
lrn@chromium.org
b92a05942e
Change NaN-test to only check for QNaNs, and API to only introduce QNaNs.
...
Review URL: http://codereview.chromium.org/339002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-27 08:13:59 +00:00
ager@chromium.org
e9909cbf25
Apply patch by Timur Iskhodzhanov to add valgrind notifications on
...
code modification to the x64 build. The same notifications are
already in place in the ia32 build.
Review URL: http://codereview.chromium.org/335028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-26 17:53:34 +00:00
christian.plesner.hansen@gmail.com
2880be71ea
Reverted 3130-3131 since they don't work on mac.
...
Review URL: http://codereview.chromium.org/335027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-26 15:16:42 +00:00
fschneider@chromium.org
dcee14979f
Generate more compact XOR on 64-bit architecture when using xor to zero out registers.
...
When using xor to zero a 64-bit register, generate 32-bit instruction instead.
(according to Intel 64-bit mode coding guidelines)
previous code for zeroing RAX:
xor rax, rax
==>
new code for zeroing RAX:
xor eax, eax
The 32-bit operand form has the same semantics: It also zeroes the upper
32-bit of rax and its encoding uses 1 byte less.
Review URL: http://codereview.chromium.org/330018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-26 14:38:22 +00:00
christian.plesner.hansen@gmail.com
53b93464d1
Implemented specialized stubs for API getters. This includes a number
...
of individual changes:
- Added infrastructure for custom stub caching.
- Push the code object onto the stack in exit calls instead of a
debug/non-debug marker.
- Remove the DEBUG_EXIT frame type.
- Add a new exit stub generator for API getters.
Review URL: http://codereview.chromium.org/330017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-26 13:54:47 +00:00
fschneider@chromium.org
9445079c51
Support for object literals in fast compiler.
...
I also added more unit tests for literals.
Right now, the fast compiler produces code very similar to
the existing code generator. We may consider different ways to
further compact the generated code for top-level code.
ARM always goes through a runtime function to initialize computed
properties in an object literal whereas IA32 and x64 use StoreIC.
Review URL: http://codereview.chromium.org/316009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-26 13:21:48 +00:00
antonm@chromium.org
a531c281fd
Allocate global handles in chunks.
...
Review URL: http://codereview.chromium.org/327008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-26 12:54:41 +00:00
sgjesse@chromium.org
ac280c223b
Handle the list of code-stub types using macro expansion.
...
As the list of code-stubs is used in two places it is now handled through a macro to keep this in sync. As some code-stubs is only used on ARM the list have been split into two parts to indicate this and get rid of dummy implementation on ia32 and x64 platforms.
BUG=484
Review URL: http://codereview.chromium.org/335025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-26 12:26:42 +00:00
mikhail.naganov@gmail.com
6d6c4fa696
Fix retainer profile test regression
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/338014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-26 11:59:55 +00:00
antonm@chromium.org
0d1c5c2c1f
Make V8::LowMemoryNotification GC for all platforms.
...
Review URL: http://codereview.chromium.org/330004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-26 11:35:07 +00:00
mikhail.naganov@gmail.com
5379d81745
Heap profiler improvements.
...
- account code objects in retainers profile;
- differentiate between function boilerplates and closures;
- simplify code;
Review URL: http://codereview.chromium.org/335016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-26 10:51:30 +00:00
sgjesse@chromium.org
8a1fdd3598
Remove a check which was not needed
...
Review URL: http://codereview.chromium.org/326011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-23 12:54:48 +00:00
sgjesse@chromium.org
b0dfb371d6
Use RtlCaptureContext instead of inline assembly to capture execution context on Windows
...
Inline assembly is not available in Visual C++ 64-bit version so use RtlCaptureContext to capture execution context. RtlCaptureContext is not available on Windows 2000 so this change removes Windows 2000 support. If this turns up causing trouble we can revert to only use RtlCaptureContext in 64-bit and inline assembly in 32-bit.
Review URL: http://codereview.chromium.org/335008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-23 12:47:44 +00:00
sgjesse@chromium.org
7a509f2101
Fix issue with running some constructors having only this.x = ... assignments.
...
If we had compiled the comment instead of the code it would have worked.
BUG=483
TEST=mjsunit/regress/regress-483.js
Review URL: http://codereview.chromium.org/332007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-23 12:18:47 +00:00
lrn@chromium.org
9e50295ad2
X64/Win64: Fix bug in returning ObjectPair.
...
Used the registers to test for failure before loading the result from the stack.
Review URL: http://codereview.chromium.org/335006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-23 10:53:20 +00:00
kmillikin@chromium.org
e82a07c0bd
Simple toplevel code generator support for short-circuited boolean OR
...
in a non-test (ie, value or effect) context. (It is implicitly not in
a test context because the code generator does not support expressions
in a test context yet.)
Compilation is essentially the same as in the optimized code
generator. The expression (e0 || e1) is compiled as if it were
(let (temp = e0) temp ? temp : e1).
On ia32 and x64 a single shared ToBoolean stub is used to convert a
value to a flag. The inlined checks assumed by the stub are reordered
to compare to undefined (the common case in toplevel code?) first. On
ARM a call to the runtime is used. In the interest of code size no
checks are yet inlined on ARM.
Review URL: http://codereview.chromium.org/334006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-23 10:42:14 +00:00
kbr@chromium.org
ef95097334
Stop throwing exceptions for out-of-range accesses to CanvasArrays.
...
This is per resolution in the WebGL working group to make these types
match the WebIDL IndexSetter and IndexGetter semantics, which are
still being defined but will very likely not throw.
Review URL: http://codereview.chromium.org/328007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-23 09:19:17 +00:00
lrn@chromium.org
6f1d641fb6
X64/Win64: Alternative implementation of fmod in general.
...
Review URL: http://codereview.chromium.org/303034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-23 09:18:19 +00:00
kbr@chromium.org
38e2b5c97b
Fix lint errors.
...
Review URL: http://codereview.chromium.org/307037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-22 15:21:00 +00:00
kbr@chromium.org
d5f00cf6cc
Add optimized ICs for new CanvasArray types introduced in WebGL
...
specification under development. This is a follow-on CL to
http://codereview.chromium.org/293023 .
Based on review feedback, defined the behavior of storing NaN and
+/-Infinity into external arrays of integer types as storing 0. Added
test cases. Added fucomi instruction to assembler. Fixed bug in
KeyedLoadIC::GenerateExternalArray when allocation of HeapNumber
failed. Fixed bug in encoding of 16-bit immediate arithmetic
instructions in 64-bit port.
Removed raising of exceptions for negative array indices passed to
external arrays and associated tests. Based on current discussion in
WebGL working group, will probably end up removing the exception
throwing altogether.
Review URL: http://codereview.chromium.org/294022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-22 14:49:00 +00:00
whesse@chromium.org
719b032a9a
Add --trace flag to fast compiler.
...
Review URL: http://codereview.chromium.org/306026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-22 11:21:29 +00:00
kmillikin@chromium.org
fbc0eaa13d
Added support for array literals to the toplevel compiler. They are
...
currently compiled the same as with the optimizing compiler: they are
cloned from a boilerplate object and the boilerplate objects are
lazily constructed.
Also changed argument pushing on ARM to use stm (store multiple),
which required changing the order of arguments to the runtime
functions DeclareGlobals and NewClosure. They were only used from
generated code.
Finally, changed the toplevel code generator so that stack pops to
discard a temporary became addition to the stack pointer on ia32 and
x64.
Review URL: http://codereview.chromium.org/303021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-22 10:07:45 +00:00
fschneider@chromium.org
ee9d2d6cee
Fast compiler support for regexp literals.
...
For .result = /abc.*/g we generate the following IA-32 code:
...
mov ebx,[edi+0x17]
mov eax,[ebx+0xb]
cmp eax, 0xf5d0e135 ;; object: 0xf5d0e135 <undefined>
jnz done
push ebx
push 0x2
push 0xf5d13805 ;; object: 0xf5d13805 <String[5]: abc.*>
push 0xf5d13815 ;; object: 0xf5d13815 <String[1]: g>
call RuntimeStub_MaterializeRegExpLiteral
done:
push eax
pop [ebp+0xf4]
...
This is very similar to the code previously generated except we do not
generate deferred code for the case where we call the runtime.
On ARM we use the stm instruction to make pushing the arguments more compact.
Review URL: http://codereview.chromium.org/300037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-22 09:29:03 +00:00
peter.rybin@gmail.com
d8f7b36624
Add "Version" command
...
Review URL: http://codereview.chromium.org/274080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-21 17:07:43 +00:00
kmillikin@chromium.org
0fa8be43f8
Fix lint error.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/293048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-21 15:37:14 +00:00
ager@chromium.org
9ee631338e
Allow resource constraints to specify the max committed new space size
...
when using snapshots.
The alignment of new space has to match the alignment in the snapshot,
but the max committed amount of memory does not.
For now, we assume that the default semispace size is always used in a
snapshot.
Review URL: http://codereview.chromium.org/300036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-21 15:03:34 +00:00
mikhail.naganov@gmail.com
765e134b92
Heap profiler: guard calls to Producer profile.
...
Patch by Steve Block.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/307018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-21 13:04:53 +00:00
mikhail.naganov@gmail.com
9da793a257
Heap profiler: use Heap::CommittedMemory to report the "total" memory size.
...
This is the second change to eliminate reporting >100% VM memory usage.
BUG=http://crbug/23623
Review URL: http://codereview.chromium.org/300029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-21 12:39:45 +00:00
antonm@chromium.org
4c7620dc79
Use WriteToFlat instead of to C strings methods as WriteToFlat performs notably
...
better for various kinds of strings.
Review URL: http://codereview.chromium.org/293027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-21 12:14:50 +00:00
fschneider@chromium.org
8b33cb7133
Support empty statements in the fast compiler.
...
Review URL: http://codereview.chromium.org/313003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-21 11:56:05 +00:00
kmillikin@chromium.org
61363d83ba
Add support for global variable references in toplevel code. We use
...
the normal named load IC mechanism for now. Generated code is similar
to the case for global variable assignments.
Review URL: http://codereview.chromium.org/294021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3101 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-21 09:38:21 +00:00
whesse@chromium.org
2a63594602
Commit fucomip change 197037 http://codereview.chromium.org/197037/show
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-21 09:24:25 +00:00
fschneider@chromium.org
88371e63f6
Adding declaration of global variables and functions in new compiler.
...
Adding calls to global functions to the new compiler.
Review URL: http://codereview.chromium.org/302002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-21 09:17:39 +00:00
mikhail.naganov@gmail.com
cd2065be00
applied patch
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-20 23:25:05 +00:00
kbr@chromium.org
361e4bf8a9
Fix buildbot breakage. Neglected to run tests with --verify-heap and
...
missed case statements for heap verification and printing needed by
http://codereview.chromium.org/293023 .
tbr=plesner
Review URL: http://codereview.chromium.org/308004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-20 17:44:21 +00:00
kbr@chromium.org
46e6297e3e
Added infrastructure for optimizing new CanvasArray types in WebGL
...
specification under development. The optimizations are patterned after
those previously done for CanvasPixelArray. This CL adds all of the
necessary framework but continues to use the generic KeyedLoadIC and
KeyedStoreIC code, to create a baseline for benchmarking purposes. The
next CL will add the optimized ICs to ic-ia32.cc and ic-x64.cc.
These new CanvasArray types have different semantics than
CanvasPixelArray; out-of-range values are clamped via C cast
semantics, which is cheaper than the clamping behavior specified by
CanvasPixelArray. Out-of-range indices raise exceptions instead of
being silently ignored.
As part of this work, pulled FloatingPointHelper::AllocateHeapNumber
up to MacroAssembler on ia32 and x64 platforms. Slightly refactored
KeyedLoadIC and KeyedStoreIC. Fixed encoding for fistp_d on x64 and
added a few more instructions that are needed for the new ICs. The
test cases in test-api.cc have been verified by hand to exercise all
of the generated code paths in the forthcoming specialized ICs.
Review URL: http://codereview.chromium.org/293023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-20 15:26:17 +00:00
kmillikin@chromium.org
4dfd44479d
Added support for assignments to global variables in the toplevel code
...
generator. We use the normal store IC mechanism with the global
object as the receiver. The following code is generated for 'x=true'
at toplevel.
======== IA32:
27 mov eax,0xf5d06161 ;; object: 0xf5d06161 <true>
32 mov ecx,0xf5d09c35 ;; object: 0xf5d09c35 <String[1]: x>
37 push [esi+0x17]
40 call StoreIC_Initialize (0xf5ce75c0) ;; code: STORE_IC, UNINITIALIZED
45 mov [esp],eax
======== X64:
25 movq rax,0x7f867a7b6199 ;; object: 0x7f867a7b6199 <true>
35 movq rcx,0x7f867a7bae71 ;; object: 0x7f867a7bae71 <String[1]: x>
45 push [rsi+0x2f]
49 call StoreIC_Initialize (0x7f8655929ac0) ;; code: STORE_IC, UNINITIALIZED
54 movq [rsp],rax
======== ARM:
32 e59f0054 ldr r0, [pc, #+84] ;; object: 0xf5b78161 <true>
36 e59f2054 ldr r2, [pc, #+84] ;; object: 0xf5b7bc35 <String[1]: x>
40 e598c017 ldr ip, [r8, #+23]
44 e52dc004 str ip, [sp, #-4]!
48 e1a0e00f mov lr, pc
52 e59ff048 ldr pc, [pc, #+72] ;; debug: statement 0
;; code: STORE_IC, UNINITIALIZED
56 e58d0000 str r0, [sp, #+0]
Review URL: http://codereview.chromium.org/305005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-20 13:37:26 +00:00
sgjesse@chromium.org
a637f45385
Fix issue 475
...
The check for arguments in registers in one of the three versions of GenericBinaryOpStub::GenerateCall was plain wrong.
BUG=475
TEST=mjsunit/regress/regress-475.js
Review URL: http://codereview.chromium.org/307002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-20 12:13:31 +00:00
kmillikin@chromium.org
03c4ad1e9a
A simple change to enable empty top-level function bodies in the
...
fast-mode compiler. Support was already present, but disabled.
Review URL: http://codereview.chromium.org/295004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-20 09:12:53 +00:00
antonm@chromium.org
99445fc211
Verify correctness of external string only if slow asserts are enabled.
...
Review URL: http://codereview.chromium.org/294019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-20 09:10:26 +00:00
ager@chromium.org
390fd2a3b8
Add an API to V8 to get simple heap statistics.
...
Review URL: http://codereview.chromium.org/261037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-20 07:51:49 +00:00
kmillikin@chromium.org
846688f825
Recognize in the fast-mode code generator when a subexpression is a
...
constant known at compile time. Do not ever use the stack to
materialize (non-function-argument) constants. Currently, constants
are only the non-materialized, non-function literals in the AST.
It is a known issue that there is no test coverage for the cases of
assigning a non-literal to a variable and returning a literal. Those
code paths are unreachable and tests will be added when they become
reachable.
For the code '.result = true', we had previously on ia32:
27 push 0xf5c28161 ;; object: 0xf5c28161 <true>
32 pop [ebp+0xf4]
Now:
27 mov eax,0xf5c26161 ;; object: 0xf5c26161 <true>
32 mov [ebp+0xf4],eax
======== We had previously on x64:
25 movq r10,0x7fb8c2f78199 ;; object: 0x7fb8c2f78199 <true>
35 push r10
37 pop [rbp-0x18]
Now:
25 movq r10,0x7fb131386199 ;; object: 0x7fb131386199 <true>
35 movq [rbp-0x18],r10
The generated code for ARM did not include the extra memory traffic.
It was already eliminated by the ARM assembler's push/pop elimination.
Review URL: http://codereview.chromium.org/300003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-19 10:36:42 +00:00
kmillikin@chromium.org
7324ec0f83
Remove unused 'unsafe smi' code on x64.
...
Review URL: http://codereview.chromium.org/293003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-19 07:54:39 +00:00
antonm@chromium.org
42257793ab
Fix mac x64 build.
...
BUG=472
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-16 15:00:45 +00:00
antonm@chromium.org
5560d27764
Move implementation of Integer::NewFromUnsigned into api.cc.
...
Review URL: http://codereview.chromium.org/269105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-16 12:51:18 +00:00
antonm@chromium.org
5e4ad0254c
Do not do post GC processing for scavenges.
...
Typically there is no or few global handles to delete (only manually deleted, but those might be
reused).
Review URL: http://codereview.chromium.org/274050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-16 12:11:59 +00:00
christian.plesner.hansen@gmail.com
4293f8eb8e
Preparing to push to trunk. Now working on 1.3.17.
...
Review URL: http://codereview.chromium.org/283009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-16 11:33:39 +00:00
kmillikin@chromium.org
0f5210e9dd
Do not visit slots in the top-level code generator's backend.
...
Slots appear only indirectly in the AST (through variables linked to
variable proxies). Slots are shared among variable references, so
putting compilation-time state on them is potentially a source of
bugs. Avoid it for now.
Review URL: http://codereview.chromium.org/284009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-16 09:46:09 +00:00
whesse@chromium.org
dac210d3e9
Remove stray debugging code with no effect or explanation from RelocIterator.
...
Review URL: http://codereview.chromium.org/287003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-16 09:31:03 +00:00
peter.rybin@gmail.com
3b955790a0
Redo "running" field in debug-delay.js and support "suspend" command
...
It also fixes "backtrace" command so that it didn't give away random stack if we are running
Review URL: http://codereview.chromium.org/242034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 20:06:08 +00:00
kmillikin@chromium.org
339e49c0b2
Added first support for tracking locations of expressions in the
...
fast-mode code generator.
AST expression nodes are annotated with a location when doing the
initial syntactic check of the AST. In the current implementation,
expression locations are 'temporary' (ie, allocated to the stack) or
'nowhere' (ie, the expression's value is not needed though it must be
evaluated for side effects).
For the assignment '.result = true' on IA32, we had before (with the
true value already on top of the stack):
32 mov eax,[esp]
35 mov [ebp+0xf4],eax
38 pop eax
Now:
32 pop [ebp+0xf4]
======== On x64, before:
37 movq rax,[rsp]
41 movq [rbp-0x18],rax
45 pop rax
Now:
37 pop [rbp-0x18]
======== On ARM, before (with the true value in register ip):
36 str ip, [sp, #-4]!
40 ldr ip, [sp, #+0]
44 str ip, [fp, #-12]
48 add sp, sp, #4
Now:
36 str ip, [fp, #-12]
Review URL: http://codereview.chromium.org/267118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 16:42:22 +00:00
fschneider@chromium.org
1cc731ab0d
Record statement positions for the debugger in the fast code generator.
...
Review URL: http://codereview.chromium.org/271102
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 15:27:37 +00:00
kmillikin@chromium.org
6f5ed57683
Untangle some #include dependencies.
...
"jsregexp.h" and "jump-target.h" required "macro-assembler.h" to
always be included first. Instead the include of "macro-assembler.h"
has moved into those header files.
"dateparser-inl.h" required "dateparser.h" to always be included
first. Instead the include of "dateparser.h" has moved into
"dateparser-inl.h".
Review URL: http://codereview.chromium.org/267117
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 15:01:36 +00:00
kmillikin@chromium.org
11d9e7ff51
Initial port of top-level code generator to ARM. For the constant
...
true at the top level we generate:
0 stmdb sp!, {r1, r8, fp, lr}
4 add fp, sp, #8
8 ldr ip, [r10, #+4]
12 ldr r2, [r10, #+0]
16 str ip, [sp, #-4]!
20 add lr, pc, #4
24 cmp sp, r2
28 ldrcc pc, [pc, #+68] ;; code: STUB, StackCheck, minor: 0
32 ldr ip, [pc, #+68] ;; object: 0xf5bc4161 <true>
36 str ip, [sp, #-4]!
40 ldr ip, [sp, #+0]
44 str ip, [fp, #-12]
48 add sp, sp, #4
52 ldr ip, [fp, #-12]
56 str ip, [sp, #-4]!
60 ldr r0, [sp], #+4
64 mov sp, fp ;; js return
68 ldmia sp!, {fp, lr}
72 add sp, sp, #4
76 bx lr
80 ldr r0, [r10, #+4]
84 mov sp, fp ;; js return
88 ldmia sp!, {fp, lr}
92 add sp, sp, #4
96 bx lr
100 constant pool begin
104 constant
108 constant
Review URL: http://codereview.chromium.org/264067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 12:42:16 +00:00
whesse@chromium.org
99050519c4
Fix X64 build in the case that debugger support is disabled. Change function name from IsCallInstruction to IsPatchedReturnSequence on all platforms.
...
Review URL: http://codereview.chromium.org/267116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 11:52:53 +00:00
kmillikin@chromium.org
d664dfaf4b
Port the initial fast code generator to x64. For the constant true in
...
top-level code we generate:
0 push rbp
1 movq rbp,rsp
4 push rsi
5 push rdi
6 push [r13+0x8]
10 cmpq rsp,[r13+0x0]
14 jnc 25 (0x7ff2c378ff19)
20 call 0x7ff2c377d260 ;; code: STUB, StackCheck, minor: 0
25 movq r10,0x7ff2e8608199 ;; object: 0x7ff2e8608199 <true>
35 push r10
37 movq rax,[rsp]
41 movq [rbp-0x18],rax
45 pop rax
46 push [rbp-0x18]
50 pop rax
51 movq rsp,rbp ;; js return
54 pop rbp
55 ret 0x8
58 int3
59 int3
60 int3
61 int3
62 int3
63 int3
64 movq rax,[r13+0x8]
68 movq rsp,rbp ;; js return
71 pop rbp
72 ret 0x8
75 int3
76 int3
77 int3
78 int3
79 int3
80 int3
Review URL: http://codereview.chromium.org/264066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 11:21:26 +00:00
kmillikin@chromium.org
2d6169bf7e
Format the long lists of sources in the SConscript file to be one per
...
line. This is to make it easier to add and remove sources without
having to reformat line breaks. It also enables sorting with M-x
sort-lines (in emacs) or the like.
Review URL: http://codereview.chromium.org/276042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 08:22:24 +00:00
mikhail.naganov@gmail.com
efb8cee324
Add initial semi-working producers profile.
...
Turned on with '--log-producers' flag, also needs '--noinline-new' (this is temporarily), '--log-code', '--log-gc'. Not all allocations are traced (I'm investigating.)
Stacks are stored using weak handles. Thus, when an object is collected, its allocation stack is deleted.
Review URL: http://codereview.chromium.org/267077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-15 07:50:23 +00:00
kmillikin@chromium.org
f74e723599
Initial infrastructure for fast compilation of top-level code. The
...
fast code generator is optimized for compilation time and code size.
Currently it is only implemented on IA32. It is potentially triggered
for any code in the global scope (including code eval'd in the global
scope). It performs a syntactic check and chooses to compile in fast
mode if the AST contains only supported constructs and matches some
other constraints.
Initially supported constructs are
* ExpressionStatement,
* ReturnStatement,
* VariableProxy (variable references) to parameters and
stack-allocated locals,
* Assignment with lhs a parameter or stack-allocated local, and
* Literal
This allows compilation of literals at the top level and not much
else.
All intermediate values are allocated to temporaries and the stack is
used for all temporaries. The extra memory traffic is a known issue.
The code generated for 'true' is:
0 push ebp
1 mov ebp,esp
3 push esi
4 push edi
5 push 0xf5cca135 ;; object: 0xf5cca135 <undefined>
10 cmp esp,[0x8277efc]
16 jnc 27 (0xf5cbbb1b)
22 call 0xf5cac960 ;; code: STUB, StackCheck, minor: 0
27 push 0xf5cca161 ;; object: 0xf5cca161 <true>
32 mov eax,[esp]
35 mov [ebp+0xf4],eax
38 pop eax
39 mov eax,[ebp+0xf4]
42 mov esp,ebp ;; js return
44 pop ebp
45 ret 0x4
48 mov eax,0xf5cca135 ;; object: 0xf5cca135 <undefined>
53 mov esp,ebp ;; js return
55 pop ebp
56 ret 0x4
Review URL: http://codereview.chromium.org/273050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-14 19:30:50 +00:00
iposva@chromium.org
e0b8ab8815
- Add String::Concat(Handle<String> left, Handle<String> right) to the V8 API.
...
This is the first step to address http://crbug.com/23131 by creating
a series of V8 ConsStrings as more data arrives from the server.
Review URL: http://codereview.chromium.org/271085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-14 15:26:38 +00:00
whesse@chromium.org
a6d3c1628e
Add comment to compilation-cache.cc explaining choice of 5 generations.
...
Review URL: http://codereview.chromium.org/267092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-14 15:01:25 +00:00
antonm@chromium.org
1f8399bdda
Partially revert r2761.
...
Do not create handles for values of internal fields---this operation is performance
critical and plain pointers are safe.
Appy the same approach to External wrapping and unwrapping.
Plus some minor refactorings.
Review URL: http://codereview.chromium.org/270085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-14 14:32:39 +00:00
fschneider@chromium.org
8d47ca4ed2
Fixed use of 'overwrite' flag for unary minus expressions.
...
Review URL: http://codereview.chromium.org/276018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-14 13:12:38 +00:00
vitalyr@chromium.org
a9880bde4d
Skip access checks for hidden properties.
...
Hidden properties are used like internal fields which do not have
access checks. The checks can cause problems because there may be no
current context. See http://crbug.com/24200 .
Review URL: http://codereview.chromium.org/271080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-14 11:19:55 +00:00
christian.plesner.hansen@gmail.com
d6409e35a2
Implement ES5 Array.isArray
...
Patch by Jan de Mooij <jandemooij@gmail.com>
Review at http://codereview.chromium.org/271072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-14 09:42:13 +00:00
lrn@chromium.org
c8b0f822ee
Fix overflow in failure "requested size" field.
...
Review URL: http://codereview.chromium.org/275016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-14 09:26:16 +00:00
mikhail.naganov@gmail.com
a7c0c6e5c4
A follow-up to r3009: add parentheses around one more anonymous function.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/272045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-13 15:17:24 +00:00
yurys@chromium.org
a2549c96e8
Check that constructor is a FunctionMirror before calling .name(), otherwise we may end up calling name method on a mirror object that doesn't have it.
...
Review URL: http://codereview.chromium.org/271053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-13 14:28:09 +00:00
lrn@chromium.org
292323b355
X64: Fix bugs affecting Win64.
...
Increase stack space on Win64 sample and cctest executables.
Review URL: http://codereview.chromium.org/264047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-13 10:56:13 +00:00
kmillikin@chromium.org
ac731896da
Remove a redundant field in the FunctionLiteral class. The boolean
...
contains_array_literal_ implies materialized_literal_count_ > 0, and
we appear not to need to know about array literals specifically.
Review URL: http://codereview.chromium.org/272043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-13 09:37:17 +00:00
erik.corry@gmail.com
4ddc771c99
Use the USE_ARM_EABI macro consistently rather than the gcc-specific
...
__ARM_EABI__ macro to determine the ABI on ARM.
Review URL: http://codereview.chromium.org/274016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-13 08:58:24 +00:00
christian.plesner.hansen@gmail.com
f1354a299e
Add trim, trimLeft and trimRight methods to String
...
Based on a recent patch for Webkit.
trim is defined in ES 5 section 15.5.4.20.
Author: Jan de Mooij <jandemooij@gmail.com>
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-13 08:13:45 +00:00
kmillikin@chromium.org
a563800b4c
Initial implementation of printing the AST as a JSON string. This
...
implementation is not yet complete (it prints only the node name for
some AST constructs) and does not serialize everything needed to
reconstitute the AST.
It is motivated by a desire to prototype source-to-source
transformations in JavaScript itself (or anything else that can grok
JSON), but it should have other uses too.
Feedback is welcome.
Review URL: http://codereview.chromium.org/131101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-12 15:06:28 +00:00
kmillikin@chromium.org
b6a215700e
Add a pair of missing breaks to a switch statement.
...
Review URL: http://codereview.chromium.org/267050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-12 14:00:11 +00:00
kmillikin@chromium.org
586f94f292
Split the AST LoopStatement type into separate types for do/while,
...
while, and for loops.
Previously they were distinguished by a type field, which required
runtime asserts to avoid invalid nodes (since not all loop types have
the same internal structure). Now they C++ type system is used to
require well-formed loop ASTs.
Because they do not share compilation code, we had very large
functions in the code generators that merely did a runtime dispatch to
a specific implementation based on the type.
Review URL: http://codereview.chromium.org/269049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-12 13:14:06 +00:00
whesse@chromium.org
c67291155b
Changes to comments only, fixing errors and grammar.
...
Review URL: http://codereview.chromium.org/269050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-12 12:42:20 +00:00
lrn@chromium.org
5767628039
Removed 31-bit smis.
...
Review URL: http://codereview.chromium.org/267049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-12 11:19:20 +00:00
ager@chromium.org
947992185a
Add missing null check in Context::GetCurrent.
...
Review URL: http://codereview.chromium.org/272007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-09 08:21:56 +00:00
sgjesse@chromium.org
8222bf3ba7
Get rid of JSExitStub which is no longer used anywhere.
...
Review URL: http://codereview.chromium.org/268016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-08 15:10:14 +00:00
sgjesse@chromium.org
8105ae3106
Optimize calls to GenericBinaryStub.
...
The calls to GenericBinaryStub can now pass the arguments in registers instead of on the stack. It is supported for ADD, SUB, MUL and DIV. The convention in GenericBinaryStub is not changed so the left operand is passed in edx and the right one in eax. When the stub contains smi code arguments are always passed on the stack as the smi code has to have left and right operands on eax and ebx, so moving from edx,eax to eax,ebx is not worth it and the smi code also trashes the registers so if arguments where passed in registers they would have to be saved on the stack anyway.
Added flags to disable the use of certain Intel CPU features to make it easier to test different code paths.
Review URL: http://codereview.chromium.org/246075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-08 14:27:46 +00:00
sgjesse@chromium.org
b9e7112d44
Add support for comisd and cmov in IA-32 disassembler.
...
Review URL: http://codereview.chromium.org/266014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-08 13:28:46 +00:00
lrn@chromium.org
830ba4e764
X64: Fix incompatability with previous revision.
...
And fix bug in debug-mode of 32-bit smi.
Review URL: http://codereview.chromium.org/261024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-08 13:09:28 +00:00
antonm@chromium.org
82a231412d
Introduce v8::Integer::NewFromUnsigned method.
...
Review URL: http://codereview.chromium.org/251100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-08 12:54:29 +00:00
lrn@chromium.org
aed6a37c10
X64: Convert smis to holding 32 bits of payload.
...
Review URL: http://codereview.chromium.org/196139
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-08 12:36:12 +00:00
kmillikin@chromium.org
7efd193326
Guard the debug check at the start of every JS function with
...
--debug-code so it is not normally compiled in debug builds.
Review URL: http://codereview.chromium.org/268014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-08 11:49:58 +00:00
sgjesse@chromium.org
b0bc50aa85
Get rid of unused label varaible.
...
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/261023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-08 08:53:09 +00:00
sgjesse@chromium.org
cab2794e95
Change clamping 0..255 instruction sequence for pixel array code.
...
The subb instruction added to the IA-32 assembler is not used as dec_b ended up being used instead.
There is a mesurable difference.
Review URL: http://codereview.chromium.org/246076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-08 07:09:46 +00:00
fschneider@chromium.org
6a949119eb
Added command line flag --sync_with_push (default: true) to
...
emit 'push' instead of 'sub esp, xxx' followed by 'mov' instructions
Reduces generated code size by 10-15% on several benchmarks.
Done on ia32 and x64 (no sync operation in the virtual frame on ARM
architecture)
Review URL: http://codereview.chromium.org/259058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-07 14:55:41 +00:00
sgjesse@chromium.org
61650a0ece
Prepare push to trunk. Now working on version 1.3.16.
...
Review URL: http://codereview.chromium.org/267004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-07 13:42:24 +00:00
whesse@chromium.org
8d2a9df504
Double the CodeRange on X64 to 512 MB.
...
Review URL: http://codereview.chromium.org/265006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-07 12:47:49 +00:00
mikhail.naganov@gmail.com
572a050102
Fix a crash in Logger::LogCompiledFunctions due to a presence of scripts with disposed source.
...
When starting JS profiling under Chromium, a map from function addresses to function names is created. During it, for sourceful scripts, an attempt to access script source is made. This can cause a crash, if a source is an external string, which already has been disposed. We had a similar problem in the past with DebugGetLoadedScripts.
BUG=http://crbug.com/23768
TEST=test-log/Issue23768
Review URL: http://codereview.chromium.org/269003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-07 12:20:02 +00:00
sgjesse@chromium.org
8bc96eca76
Prepare push to trunk. Now working on version 1.3.15.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/262004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-07 07:24:51 +00:00
whesse@chromium.org
d9dd84d5e4
Clean up fixups of calls to builtins. Fix lint error.
...
Review URL: http://codereview.chromium.org/259057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-06 13:59:56 +00:00
whesse@chromium.org
cc0c626d70
Add near calls (32-bit displacement) to Code objects on X64 platform.
...
Review URL: http://codereview.chromium.org/200095
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-06 13:11:05 +00:00
mike@belshe.com
5191c81dff
Remove the high-priority flag from IdleNotification() since
...
it is a strange API and unused anyway.
When we roll this to Chrome, we'll need a small chrome patch
to fix Chrome's usage of the API.
Review URL: http://codereview.chromium.org/257035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3019 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-06 00:06:17 +00:00
whesse@chromium.org
35cf7a24ff
Recommit coderanges putting code objects within a 2 GB range, reserving only a 256 MB range of virtual memory for the code range.
...
Review URL: http://codereview.chromium.org/243087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-05 11:16:25 +00:00
whesse@chromium.org
bd1378eb20
Revert revisions 3013, 3014, and 3016. We need a better solution.
...
Review URL: http://codereview.chromium.org/251088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-05 10:50:55 +00:00
whesse@chromium.org
423de4d776
Add CHECK_INT64_EQ function to avoid operand size ambiguities.
...
Review URL: http://codereview.chromium.org/256048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-03 13:46:22 +00:00
antonm@chromium.org
359ad56264
Fast fix to make tree green.
...
Review URL: http://codereview.chromium.org/256041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-02 18:49:23 +00:00
mike@belshe.com
bec08c35ca
The error cases were returning false instead of true.
...
So if the caller does something like:
while(!IdleNotification())
it could spin forever if v8 were not initialized.
I'd like to further remove the is_high_priority flag,
because it is not in use. Mads - is there any reason
not to remove it?
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-02 17:26:50 +00:00
antonm@chromium.org
8925e8af0a
Add a method to convert unsigned C integer into V8 Integer.
...
Review URL: http://codereview.chromium.org/260002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-02 15:51:07 +00:00
christian.plesner.hansen@gmail.com
2c51696fc3
Changed Object.keys to return strings for element indices.
...
Review URL: http://codereview.chromium.org/246077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-02 13:43:16 +00:00
erik.corry@gmail.com
8cf140259d
Align the stack correctly on ARM on calls to fp operation helpers.
...
Review URL: http://codereview.chromium.org/259013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-02 13:36:20 +00:00
erik.corry@gmail.com
4b19c36068
When allocation is forced because we already did two GCs we need to force GCs
...
even if we are attempting to allocate in young space. There were a few cases
where this wasn't done. Also misc. changes to make diagnosis of errors like
this one easier.
Review URL: http://codereview.chromium.org/251072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-02 13:35:37 +00:00
ager@chromium.org
e9acdc7a00
Follow the spec in disallowing function declarations without a name. We
...
used to allow these for compatibility, but both Safari and Firefox now
disallow them.
Review URL: http://codereview.chromium.org/242124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-02 12:47:15 +00:00
whesse@chromium.org
5ec767d037
Ensure V8 is initialized before locking and unlocking threads.
...
Review URL: http://codereview.chromium.org/242123
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-02 11:39:56 +00:00
kmillikin@chromium.org
0437bfcfbb
Remove unused flag --print-cfg.
...
Review URL: http://codereview.chromium.org/257030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-02 10:18:14 +00:00
whesse@chromium.org
1350d0cfb9
Revert change r3004, issue http://codereview.chromium.org/244022 , because Linux 64-bit Chrome crashes with more than 10 tabs. Linux may not like 10 processes, each reserving 2 GB of virtual address space.
...
Review URL: http://codereview.chromium.org/246064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-01 15:18:05 +00:00
erik.corry@gmail.com
f2de3fd6d2
Fix the stack limits setting API so it is usable.
...
Review URL: http://codereview.chromium.org/242074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-01 10:33:05 +00:00
whesse@chromium.org
48e6d4706f
Allocate all executable code within a 2 GB code range.
...
Review URL: http://codereview.chromium.org/244022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-01 09:29:38 +00:00
sgjesse@chromium.org
786ec6a66f
Fix style violation.
...
TBR=christian.plesner.hansen@gmail.com
Review URL: http://codereview.chromium.org/257017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-01 07:29:54 +00:00
sgjesse@chromium.org
226b3de18e
Fix lint errors.
...
TBR=christian.plesner.hansen@gmail.com
Review URL: http://codereview.chromium.org/249056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-10-01 06:27:29 +00:00
iposva@chromium.org
52d87249cb
Based on a patch submitted by Jens Alfke:
...
Tag Mac OS X VM regions allocated by V8. This has no effect other than making
it possible to identify V8 allocations in the vmmap(1) memory profiling tool,
to get a better idea of an embedder's/Chrome's memory usage.
CRBUG=23455
TEST=Tested by running vmmap(1) and looking for "Memory tag=255" in the output.
Review URL: http://codereview.chromium.org/244051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-30 22:21:10 +00:00
sgjesse@chromium.org
f054b56eca
Add pixel array handling in keyed IC's for x64 version.
...
Review URL: http://codereview.chromium.org/251041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-30 20:18:40 +00:00
antonm@chromium.org
0db55a9456
Do not flatten the string, but just write it out.
...
In DOM bindings in many cases the string would be externalized immediately. For other cases
I am going to add explicit flattening. Overall, it looks like if user wants to flat string
before writing, it should be an explicit method invocation (going to add TryFlattenIfNotFlat
into public V8 API).
Review URL: http://codereview.chromium.org/255004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-30 14:25:21 +00:00
kmillikin@chromium.org
2c2554ec3c
Remove obsolete support for an experimental multipass compiler.
...
Review URL: http://codereview.chromium.org/255022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-30 13:24:24 +00:00
christian.plesner.hansen@gmail.com
87fbbd5dfc
Changed structure of accessor arguments passing to allow accessor
...
callbacks to be called directly from native code.
Review URL: http://codereview.chromium.org/242050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-30 12:25:46 +00:00
kmillikin@chromium.org
fb038bf146
Two changes, one a refactoring and one that affects V8's JS semantics.
...
1. Change the AST node type CallNew to be a subclass of Expression
rather than Call. It's not really a call but it just happens to
have the same fields.
2. Change our error reporting for invalid left-hand sides in for-in
statements, pre- and postfix count expressions, and assignments.
Before we signaled a syntax error at compile time *unless* the LHS
was a function call or 'new' expression, in which case we signaled
a reference error at runtime. Now we signal a reference error at
runtime in all cases. This matches the JSC behavior in Safari 4.
Review URL: http://codereview.chromium.org/249039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-30 09:49:36 +00:00
sgjesse@chromium.org
b1a5bf4c5d
Change the functions named AllocateObjectInNewSpace to AllocateInNewSpace.
...
These functions just moves forward the new space allocation top, and in some situations they are used to reserve space for several objects.
Review URL: http://codereview.chromium.org/219030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-30 09:24:46 +00:00
sgjesse@chromium.org
70821329a5
Return the original value when assigning to a pixel array.
...
After fast-case assignment to a pixel array the original value assigned is now returned. Before the un-tagged smi value was returned causing crashes.
BUG=22913
TEST=cctest/test-api/PixelArray
Review URL: http://codereview.chromium.org/248033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-29 14:56:24 +00:00
kmillikin@chromium.org
928bfae405
Remove CallEval as a subclass of the Call AST node type. We were not
...
differentiating between Call and CallEval except in the code
generator, and the difference can be detected from a regular Call AST
node at code generation time.
Review URL: http://codereview.chromium.org/245042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-29 13:28:30 +00:00
sgjesse@chromium.org
6f83ad58cc
Compile without debugger support in debug mode
...
This makes it possible to build V8 without JavaScript debugging support in debug mode.
BUG=http://code.google.com/p/v8/issues/detail?id=454
Review URL: http://codereview.chromium.org/242048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-29 09:21:19 +00:00
antonm@chromium.org
5a2aa8ee8e
Fix a lint error.
...
Review URL: http://codereview.chromium.org/235052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-29 07:30:37 +00:00
antonm@chromium.org
d9e23dc786
Put method declations under #ifdef DEBUG in header (as they are in objects-inl.h).
...
Review URL: http://codereview.chromium.org/251015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 23:21:58 +00:00
vitalyr@chromium.org
00c15b7c8b
API: added a few missing HandleScope-s.
...
Review URL: http://codereview.chromium.org/245024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2980 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 14:32:48 +00:00
whesse@chromium.org
5e90dba910
Rename JumpToBuiltin to JumpToRuntime. Add comment to ResolveBuiltin.
...
Review URL: http://codereview.chromium.org/218025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 13:53:43 +00:00
erik.corry@gmail.com
0c8f8de902
Fix the last memory leak demonstrated by the test program in
...
http://code.google.com/p/v8/issues/detail?id=444
Review URL: http://codereview.chromium.org/243027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 13:53:03 +00:00
erik.corry@gmail.com
ae882b44e7
* Fix memory leaks caused by thread local data being lost.
...
* Rename some instance variables and accessors to fit code style.
* Don't overwrite existing thread ID.
Review URL: http://codereview.chromium.org/251014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 12:25:21 +00:00
kmillikin@chromium.org
f0ba671344
Move the per-ast-node statement position to only statement node types.
...
It was not currently being used for expressions or declarations and
always had the default initial value.
Review URL: http://codereview.chromium.org/246019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 12:01:05 +00:00
whesse@chromium.org
94d57588fc
Fix unused variable warning in serialize.cc
...
Review URL: http://codereview.chromium.org/243025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 11:22:08 +00:00
ager@chromium.org
c08b11db2d
Land change by Alexander Botero-Lowry to fix profiler sampling on
...
FreeBSD in 64-bit mode.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 11:16:23 +00:00
ager@chromium.org
3da53e3e5c
Add missing null check to Context::GetCalling().
...
Review URL: http://codereview.chromium.org/248017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 10:21:08 +00:00
mikhail.naganov@gmail.com
1ef8754597
Heap profiler: correctly determine equivalence of objects having self-refs.
...
Review URL: http://codereview.chromium.org/242031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 09:05:06 +00:00
mikhail.naganov@gmail.com
f1a89f3379
Heap profiler: aggregate retainers count of equivalent clusters.
...
Also perform some refactoring.
Review URL: http://codereview.chromium.org/247001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 07:12:39 +00:00
antonm@chromium.org
228f4aee13
Add another method that allows to lookup for a real named property not only
...
in prototype chain, but in the object itself.
Review URL: http://codereview.chromium.org/235004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-25 12:29:24 +00:00
christian.plesner.hansen@gmail.com
319097f255
Fixed some cctest flakiness on mac.
...
Review URL: http://codereview.chromium.org/242003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-25 10:36:00 +00:00
sgjesse@chromium.org
196990cea1
Fix lint error.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/230002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-23 14:06:14 +00:00
ager@chromium.org
28772fbc57
Reverting 2950.
...
It causes test shell test failures.
Review URL: http://codereview.chromium.org/222004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-23 13:32:11 +00:00
sgjesse@chromium.org
ab34189c30
Handle array construction in native code (x64 version).
...
Ported the handle array construction in native code to x64. See http://codereview.chromium.org/193125 for details.
Please take a closer look of my use of the macro assembler Smi abstractions.
Review URL: http://codereview.chromium.org/209048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-23 13:04:07 +00:00
erik.corry@gmail.com
9839092874
* Remove non-Open Source code from Douglas Crockford.
...
* Be more var-correct in JS files.
* Rename some JS variables to reflect the fact that they are instance
variables on the global intrinsics object.
* Missing optimization in StringCharAt.
Review URL: http://codereview.chromium.org/215052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-23 12:32:24 +00:00
sgjesse@chromium.org
cf46d30de9
Handle array construction in native code (ARM version).
...
Ported the handle array construction in native code to ARM. See http://codereview.chromium.org/193125 for details.
Review URL: http://codereview.chromium.org/217014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2956 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-23 09:05:12 +00:00
ager@chromium.org
2d3edc621c
Prepare push to trunk containing fix for uninitialized memory bug.
...
Now working on version 1.3.14.
Review URL: http://codereview.chromium.org/228001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-23 08:13:19 +00:00
ager@chromium.org
69a877c2d7
Initialize the can_continue_ field in the TryCatch constructor.
...
Review URL: http://codereview.chromium.org/227001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-23 07:55:48 +00:00
mikhail.naganov@gmail.com
89831f8735
Heap profiler: consider Function instances separately, similar to Arrays and Objects.
...
Review URL: http://codereview.chromium.org/209066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-22 10:02:42 +00:00
christian.plesner.hansen@gmail.com
21346ff4a3
Prepare to push to trunk. Now working on 1.3.13.
...
Review URL: http://codereview.chromium.org/210040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-22 08:40:44 +00:00
whesse@chromium.org
b026021215
Stop "cooking" targets of jumps and calls in code objects. Do not convert jump and call targets to absolute pointers to Code objects during GC, heap verification, and serialization.
...
Review URL: http://codereview.chromium.org/203070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-21 10:35:47 +00:00
sgjesse@chromium.org
7febdab868
Minor changes to the native array construct code
...
Named a constant and added an assert to get notified when related constants
change.
Removed reloading of the Array function when Array is called as a constructor as
the Array function is preserved in edi.
This - unlike r2908 and r2909 - both compiles and passes the tests.
Review URL: http://codereview.chromium.org/209012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-21 07:28:04 +00:00
mikhail.naganov@gmail.com
3a9303852c
Eliminate recursion in ZoneSplayTree traversal.
...
Convert the code to be similar with JS version. Recursive traversal is dangerous as it can cause stack exhaustion on deep trees.
Review URL: http://codereview.chromium.org/211024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-21 07:12:38 +00:00
mikhail.naganov@gmail.com
ef246011e7
Fix Windows build. My mistake for not trying it our prior to submitting.
...
Kudos to William Hesse for alarming me.
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/214020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-18 13:23:58 +00:00
mikhail.naganov@gmail.com
9b4c950963
Heap profiler: count the number of back references for objects.
...
Also, perform some refactoring to reuse common code between constructor and retainer profiles.
Review URL: http://codereview.chromium.org/209028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-18 12:05:18 +00:00
whesse@chromium.org
0e63056cf5
Fix --heap-stats option on X64
...
Review URL: http://codereview.chromium.org/210020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-18 12:02:36 +00:00
whesse@chromium.org
4ac11e3b15
Don't convert jump and call targets to code object pointers when (de)serializing.
...
Review URL: http://codereview.chromium.org/207012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-18 10:50:08 +00:00
ager@chromium.org
576ae4c115
Land change by Jan de Mooij to change the toString behavior of
...
|function|.toString() for builtin functions.
Review URL: http://codereview.chromium.org/209014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-17 11:11:01 +00:00
christian.plesner.hansen@gmail.com
b58abab2df
Lint fix
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-17 10:35:52 +00:00
christian.plesner.hansen@gmail.com
87dab2f5cd
Add Object::IsDirty function in the API.
...
Review URL: http://codereview.chromium.org/209013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-17 08:58:06 +00:00
sgjesse@chromium.org
a0462f3af8
Reverting 2909,2908
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-17 07:58:49 +00:00
sgjesse@chromium.org
03db75e768
Fix compile error.
...
Why even compile simple changes?
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/209011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-17 07:24:44 +00:00
sgjesse@chromium.org
8524ee521c
Minor changes to the native array construct code.
...
Named a constant and added an assert to get notified when related constants change.
Removed reloading of the Array function when Array is called as a constructor as the Array function is preserved in edi.
Review URL: http://codereview.chromium.org/207010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-17 07:14:48 +00:00
mikhail.naganov@gmail.com
bc59334ee0
Argh, one more place to fix.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/194131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 20:36:08 +00:00
mikhail.naganov@gmail.com
016166ee14
Fix Windows build. I'm wondering, how does gcc accept such code?
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/201140
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 20:15:03 +00:00
mikhail.naganov@gmail.com
e30d461ee4
Fix variables names.
...
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/193129
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 19:44:04 +00:00
mikhail.naganov@gmail.com
3b1818dbab
Fix ARM build (gcc 3.3 failed to resolve types correctly) and constants names.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/195102
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 14:54:59 +00:00
mikhail.naganov@gmail.com
abc0bd46f6
Add initial version of retainers heap profile.
...
The profile is taken together with constructors profile. In theory, it
should represent a complete heap graph. However, this takes a lot of memory,
so it is reduced to a more compact, but still useful form. Namely:
- objects are aggregated by their constructors, except for Array and Object
instances, that are too hetereogeneous;
- for Arrays and Objects, initially every instance is concerned, but then
they are grouped together based on their retainer graph paths similarity (e.g.
if two objects has the same retainer, they are considered equal);
Review URL: http://codereview.chromium.org/200132
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 13:41:24 +00:00
sgjesse@chromium.org
40471b41da
Fix GC bug and ARM simulator timeout.
...
In the Runtime_DebugGetPropertyDetails the raw object pointers from a LookupResult could be used after a GC might have happened. Fixed the bug and restructured the code to make it less likely for changes to the code to re-introduce the bug.
Skipped a long running test from the ARM simulator in debug mode (and renamed the test).
Review URL: http://codereview.chromium.org/204039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 13:09:26 +00:00
whesse@chromium.org
412a146825
X64: Ensure that unary subtraction returns a zero-extended smi, if it returns a smi.
...
Review URL: http://codereview.chromium.org/195101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 12:40:15 +00:00
sgjesse@chromium.org
677c043fee
Handle array construction on native code.
...
The construction of arrays when using the the Array function either as a constructor or a normal function is now handled fully in generated code in most cases. Only when Array is called with one argument which is either negative or abowe JSObject::kInitialMaxFastElementArray (which is currently 1000) or if the allocated object cannot fit in the room left in new space is the runtime system entered.
Two new native code built-in functions are added one for normal invocation and one for the construct call. The existing C++ builtin is renamed, but kept. When the normal invocation cannot be handled in generated code the C++ builtin is called. When the construct invocation cannot be handled in native code the generic construct stub is called (which will end up in the C++ builtin through a construct trampoline).
One thing that might be changed is preserving esi (constructor function) during the handling of a construct call. We know precisily what function we where calling anyway and can just reload it. This could remove the parameter construct_call to ArrayNativeCode and remove the handling of this from that function.
The X64 and ARM implementations are not part of this changelist.
Review URL: http://codereview.chromium.org/193125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 11:17:57 +00:00
erik.corry@gmail.com
fb2897bcf9
Clean up the ifdefs on ARM.
...
Ensure that we use ARMv5 instructions on ARMv6 and ARMv7 CPUs.
Review URL: http://codereview.chromium.org/206012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 08:48:17 +00:00
christian.plesner.hansen@gmail.com
5c3fd26620
[ES5] Made properties of the arguments array enumerable.
...
Review URL: http://codereview.chromium.org/200141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 08:25:54 +00:00
christian.plesner.hansen@gmail.com
6519951e06
Added test suite adapter for es5conform.
...
Review URL: http://codereview.chromium.org/193112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 13:30:46 +00:00
christian.plesner.hansen@gmail.com
77ff957f58
Implemented Object.keys.
...
Review URL: http://codereview.chromium.org/201114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:51:40 +00:00
ager@chromium.org
8a3bce2fa1
Prepare push to trunk. Now working on version 1.3.12.
...
Review URL: http://codereview.chromium.org/204020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:48:18 +00:00
whesse@chromium.org
e58287a1bb
Use GetCodeFromTargetAddress everywhere, uniformly.
...
Review URL: http://codereview.chromium.org/193111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:39:47 +00:00
lrn@chromium.org
91ecc77e5f
X64: Abstract indexing by a smi to the macro assembler.
...
Review URL: http://codereview.chromium.org/196118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:35:23 +00:00
ager@chromium.org
cc0d071633
Incorporate dtoa change from upstream to avoid potential buffer
...
overrun.
Review URL: http://codereview.chromium.org/196119
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 10:48:11 +00:00
lrn@chromium.org
88e732edbc
Fix bug that errnoeously sets FPU exception.
...
This has only been caught on Win64 yet.
Review URL: http://codereview.chromium.org/201106
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-14 12:20:13 +00:00
sgjesse@chromium.org
7721fdc7d9
Fix lint error.
...
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/203052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-14 09:00:21 +00:00
sgjesse@chromium.org
34d6ff7606
Implemented missing pieces of the debugger for ARM.
...
The main piece of this change was to add support for break on return for ARM. On ARM the normal js function return consist of the following code sequence.
mov sp, fp
ldmia sp!, {fp, lr}
add sp, sp, #4
bx lr
to a call to the debug break return entry code using the following code sequence
mov lr, pc
ldr pc, [pc, #-4]
<debug break return entry code entry point address>
bktp 0
The values of Assembler::kPatchReturnSequenceLength and Assembler::kPatchReturnSequenceLength are somewhat misleading, but they fit the current use in the debugger. Also Assembler::kPatchReturnSequenceLength is used in the IC code as well (for something which is not related to return sequences at all). I will change that in a separate changelist.
For the debugger to work also added recording of the return sequence in the relocation info and handling of source position recording when a function ends with a return statement.
Used the constant kInstrSize instead of sizeof(Instr).
Passes all debugger tests on both simulator and hardware (only release mode tested on hardware).
Review URL: http://codereview.chromium.org/199075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-14 06:57:24 +00:00
ager@chromium.org
6f88ca6393
Fix cut and paste error in memory tracking. MapSpace -> CellSpace.
...
Review URL: http://codereview.chromium.org/194100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-14 06:39:54 +00:00
whesse@chromium.org
4c59284fcc
Fix lint error
...
Review URL: http://codereview.chromium.org/200096
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-11 14:11:33 +00:00
whesse@chromium.org
996f1d4ee3
Rename a constant to kCallTargetAddressOffset
...
Review URL: http://codereview.chromium.org/192075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-11 12:41:27 +00:00
sgjesse@chromium.org
3dd74076d1
Control profiling/debugger support from build script.
...
The SCons build now has the options profilingsupport and debuggersupport for controlling the setting of the defines ENABLE_LOGGIGN_AND_PROFILING and ENABLE_DEBUGGER_SUPPORT. By default both are set to true.
The changes to the XCode project have not been tested.
Review URL: http://codereview.chromium.org/195061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-11 12:26:15 +00:00
ager@chromium.org
4052dcd392
Fix lint issue.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/203017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 13:56:12 +00:00
ager@chromium.org
2fbadf73b3
Fix IA32 build.
...
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/201078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 13:27:00 +00:00
sgjesse@chromium.org
9d2d9c596c
Implement code patcher for x64.
...
Use the code patcher for the patching of the JS return sequence used by the debugger.
Added explicit instruction cache flushing in a code patching section which did not have it for completeness, even though it is not required on Intel processors.
Review URL: http://codereview.chromium.org/203016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 12:59:01 +00:00
lrn@chromium.org
158dcbc39d
X64: Extract all smi operations into MacroAssembler macros.
...
First step in changing Smi representation.
Review URL: http://codereview.chromium.org/196077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 12:55:27 +00:00
whesse@chromium.org
cf37189c65
Use SSE2 instructions when available on ia32 platform.
...
Review URL: http://codereview.chromium.org/197057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 07:13:01 +00:00
christian.plesner.hansen@gmail.com
9f7fabeb68
Fix crash during error reporting during bootstrapping.
...
Instead of crashing or reporting a fatal v8 error if an error occurs
during context initialization we now survive and return an empty
handle.
Review URL: http://codereview.chromium.org/194070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 06:52:46 +00:00
ager@chromium.org
39a3c9c61b
Prepare push to trunk. Now working on version 1.3.11.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/201069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 19:03:20 +00:00
sgjesse@chromium.org
7c9195caf9
Fix ARM compilation error.
...
Removed implementation of function which was no longer member of class Debug.
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/199063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 18:05:46 +00:00
sgjesse@chromium.org
bcff52624d
Cleaned up some debugger stuff on ia32 and x64.
...
Got rid of the debug break on return entry code which did not add anything. It just jumped directly to the debug break on return code.
Removed the CodePatcher class on x64 as it was not implemented.
Added instruction cache flush to where the return sequence was patched on x64.
Added some missing ENABLE_DEBUGGER_SUPPORT #ifdef/#endif.
Review URL: http://codereview.chromium.org/193057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 17:45:21 +00:00
sgjesse@chromium.org
f4d3ff1ac3
Find the correct function for script break points
...
The algorithm for finding the inner-most function containing a script break point was not correct when the script only contained one function. In that case the script function and not the actual function in the script could be returned depending on the order of the objects in the heap.
TEST=cctest/test-debug/ScriptBreakPointReload
BUG=none
Review URL: http://codereview.chromium.org/193059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 15:16:26 +00:00
ager@chromium.org
e2d7d656b0
Increase max semi-space size.
...
Review URL: http://codereview.chromium.org/200059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 14:50:00 +00:00
kasperl@chromium.org
00c3a0deaa
Fix x64 port by using 32 pages per chunk.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/195038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 12:08:40 +00:00
mikhail.naganov@gmail.com
0411b14ffa
Heap profiler: account primitive string objects as being constructed using 'String'.
...
Also:
- move constructor name getter near similar class name getter method;
- if the constructor is not present, use 'Object', as for class name, this eliminates a special case.
Review URL: http://codereview.chromium.org/202018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 11:46:09 +00:00
ager@chromium.org
4e3a1143cc
Minor change to idle notification handling: perform a scavenge
...
followed by shrinking of new space earlier.
Review URL: http://codereview.chromium.org/199057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 11:21:54 +00:00
ager@chromium.org
0e56caa33b
Fix typo.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 11:06:22 +00:00
ager@chromium.org
84c2072c56
Reduce the chunk size from 64 pages to 16 pages per chunk.
...
This reduces the initial V8 memory usage by roughly 2MB.
Review URL: http://codereview.chromium.org/194054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 10:56:13 +00:00
ager@chromium.org
7f29be6d2e
Fix presubmit.
...
TBR=yurys@chromium.org
Review URL: http://codereview.chromium.org/197056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 09:58:00 +00:00
erik.corry@gmail.com
adaab82197
Compile fixes for ARM and miscellaneous spolling.
...
Review URL: http://codereview.chromium.org/199056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 09:35:34 +00:00
christian.plesner.hansen@gmail.com
d391c5491e
Made function prototype property DontEnum for compatibility with
...
Safari. Fixed const error in api.
Review URL: http://codereview.chromium.org/200056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 09:30:33 +00:00
ager@chromium.org
2bc682e3f3
Do not use left-over space after new space alignment for other spaces.
...
Doing so makes the max new space size influence the initial total size
of the heap.
This change reduces the initial memory use of V8 by over 6MB.
Review URL: http://codereview.chromium.org/202017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 08:45:32 +00:00
yurys@chromium.org
bbc3c97c2c
Support stepping out for recursive functions.Simply flooding JS function from the calling stack frame with one shot breakpoints is not enough to support step out action in all cases since the function on top of the stack may be turn recursive and we may end up flooding itself. To overcome this a pointer to the stack frame where the debugger should be invoked after stepping out is strored in the debugger.Chromium bug: http://code.google.com/p/chromium/issues/detail?id=17967
...
Review URL: http://codereview.chromium.org/200041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 08:40:59 +00:00
sgjesse@chromium.org
e6b926f19d
Set the svn:eol-style property on new file.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/201059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 07:57:12 +00:00
ager@chromium.org
e5095880cb
Add MAP_FIXED to Uncommit calls to see if that has an effect on GMail
...
memory usage in Chromium 64-bit Linux.
Review URL: http://codereview.chromium.org/200055
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 07:51:51 +00:00
sgjesse@chromium.org
3546e91bbc
Refactor the register to name mapping in the ARM simulator.
...
Review URL: http://codereview.chromium.org/195024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-09 07:01:20 +00:00
whesse@chromium.org
07e6f6f619
Fix lint error
...
Review URL: http://codereview.chromium.org/196042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-08 12:51:08 +00:00
lrn@chromium.org
8f60f1a46f
Win64 - Allow returning two values from a runtime function.
...
(Not yet fully functional)
Review URL: http://codereview.chromium.org/201042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-08 11:52:05 +00:00
yurys@chromium.org
ae062d5df1
Added new scope type ScopeIterator::ScopeTypeCatch for with generated from catch blocks.
...
Removed a false assertion in ScopeIterator that assumed context extension to never be a JSContextExtensionObject.
The context extension object in a 'with' context is JSContextExtensionObject iff the 'with' statement is generated from a catch block in order to extend its local scope with a variable holding exception object. This is how we differentiate 'catch' scope from 'with' scope.
Chrome bug:
http://code.google.com/p/chromium/issues/detail?id=17229
Review URL: http://codereview.chromium.org/202005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-08 10:20:28 +00:00
whesse@chromium.org
2edebc2c9c
Remove special CheckEquals function for intptr_t on X64 platform.
...
Review URL: http://codereview.chromium.org/190004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-08 08:49:54 +00:00
kasperl@chromium.org
def729b6ad
Change to limit the amount of space we waste due to fragmentation
...
in old space. Before this change we would compute the fragmentation
limit before the GC, but that means that we take all the garbage
into account - and consequently we almost never hit the limit (because
we have a lot of garbage).
This change changes the policy to compact on the *next* GC if we
determine that we have too much fragmentation after doing a GC.
We'll do a GC if we've wasted more than 1MB and more than 15% of
the old space size.
This can be further improved by computing whether or not to compact
during the marking phase.
Review URL: http://codereview.chromium.org/202008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-08 07:35:23 +00:00
christian.plesner.hansen@gmail.com
223973ef9b
Modifies readline() to behave in the same way as it does in TraceMonkey.
...
Author: abdulla <abdulla.kamar@gmail.com>
Review URL: http://codereview.chromium.org/173262
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-07 12:37:56 +00:00
sgjesse@chromium.org
f7c799f0a2
Allign Intel macro assemblers with changes to ARM macro assembler.
...
Removed bogus ASSERTs from Intel macro assemblers.
Added a debug mode generated code assert to allocation code.
Review URL: http://codereview.chromium.org/199044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-07 12:24:10 +00:00
sgjesse@chromium.org
fe8a5ac59a
Move common enums for macro assemblers.
...
All macro-assembler-*.cc used a number of common enums. Moved these to macro-assembler.h.
Removed unused enum ExitJSFlag from ARM macro assembler.
Review URL: http://codereview.chromium.org/202004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-07 12:07:40 +00:00
sgjesse@chromium.org
b8b7832a61
Last step in allocating objects in generated code on ARM.
...
Port specialized constructor code for constructing simple objects to ARM.
See http://codereview.chromium.org/173470 for description.
Review URL: http://codereview.chromium.org/196024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-07 10:31:02 +00:00
sgjesse@chromium.org
92eb226c99
Fix lint error.
...
TBR=erik.corry@chromium.org
Review URL: http://codereview.chromium.org/193039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-07 10:08:03 +00:00
sgjesse@chromium.org
2192a315a4
Second step in allocating objects in generated code on ARM.
...
Objects which require an additional fixed array to be allocated now have this allocated in generated code as well. Added allocation flags to the macro assembler new space allocation routines.
Changed the ia32 and x64 macro assemblers to take allocation flags to the allocation routines instead of boolean flag.
Review URL: http://codereview.chromium.org/201015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-07 09:44:29 +00:00
yurys@chromium.org
ab54e95377
Support stepping in functions called using CallFunction stub. When Debug::PrepareStep is called to prepare 'step in' and current code target is CallFunction stub, the debugger will find function being called on the expression stack and flood it with one shot breakpoints.
...
BreakLocationIterator changed to treat 'debugger;' statements as a possible break location. Since 'debugger;' statement should always invoke debugger it is hanled in a special way.
Related Chromium issue:
http://code.google.com/p/chromium/issues/detail?id=17978
Review URL: http://codereview.chromium.org/195015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-07 07:20:05 +00:00
mikhail.naganov@gmail.com
fa0034ccbc
Fixing presubmit error
...
TBR=christian.plesner.hansen@gmail.com
Review URL: http://codereview.chromium.org/192024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-04 19:38:04 +00:00
christian.plesner.hansen
d2624cc6d6
Fixed error in d8's write() function
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-04 15:36:53 +00:00
mikhail.naganov@gmail.com
65dcf75c2c
Linux profiler: check whether signal handler is called in the VM thread.
...
I have several Chromium's core files having SIGPROF signal handler called in the context of an arbitrary thread, causing a crash. This change introduces checking of current thread in the signal handler.
Review URL: http://codereview.chromium.org/171115
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-04 11:16:51 +00:00
christian.plesner.hansen@gmail.com
cf2a0fa068
Fixed serializer issue.
...
Review URL: http://codereview.chromium.org/194023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-04 11:05:16 +00:00
lrn@chromium.org
2364f20cc5
X64 RegExp - fix RegExp on WIN64.
...
Use the correct ifdef to detect Win64 (_WIN64, not __MSVC__).
Review URL: http://codereview.chromium.org/195014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-04 11:00:07 +00:00
christian.plesner.hansen@gmail.com
56d8401ce5
Modifies write() so that NULs are allowed within a string.
...
This is required by the mandelbrot test in the language shootout.
Patch by abdulla <abdulla.kamar@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-04 07:49:02 +00:00
christian.plesner.hansen@gmail.com
d03c277f5e
Changed saved context stack to using direct pointers. Before we would
...
create a new persistent handle to hold the context to save when
entering another context, now we use a stack of direct pointers that
the gc knows about.
Review URL: http://codereview.chromium.org/199021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-04 07:34:25 +00:00
ager@chromium.org
5b3ce10995
Fix lint issue.
...
Review URL: http://codereview.chromium.org/197006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-03 07:23:22 +00:00
sgjesse@chromium.org
8150609edb
Fix the debugger in the ARM simulator.
...
The debugger in the ARM simulator is now working again.
Added a help command and a command to print all registers. Made the printobject command print something in release builds.
Review URL: http://codereview.chromium.org/191004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 14:46:40 +00:00
ager@chromium.org
cb62d5c7b2
Fix LargeObjectSpace::Verify to allow external strings in large object
...
space.
This can happen if a very big sequential string gets externalized.
Review URL: http://codereview.chromium.org/185005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 14:25:05 +00:00
sgjesse@chromium.org
376537c12a
First step in allocating objects in generated code on ARM.
...
Re-apply http://codereview.chromium.org/175045 with the single change that the line
mov(scratch, Operand(new_space_allocation_top));
have been added to MacroAssembler::UndoAllocationInNewSpace after the #endif. Without this change the top was not reset.
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/184009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 11:13:44 +00:00
lrn@chromium.org
11ef516137
ARM RegExp fix bug 432.
...
Review URL: http://codereview.chromium.org/186005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 09:10:49 +00:00
mikhail.naganov@gmail.com
85cc5f2097
Fixed cast in platform-macos.cc
...
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/171114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 09:04:55 +00:00
lrn@chromium.org
54f8947d44
Added possibility of miscompiled regexp to verfifier.
...
Review URL: http://codereview.chromium.org/188005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 08:36:26 +00:00
mikhail.naganov@gmail.com
c8d358aa91
Fix issue 434: make OS::LogSharedLibraryAddresses work on x64 Mac.
...
Also, enable tick processor to process 64-bit profiler logs on Mac.
BUG=http://code.google.com/p/v8/issues/detail?id=434
Review URL: http://codereview.chromium.org/180063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 08:18:27 +00:00
ager@chromium.org
ea58f9f097
Prepare push to trunk. Now working on version 1.3.10.
...
Review URL: http://codereview.chromium.org/184007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 08:05:38 +00:00
lrn@chromium.org
de33b1d03d
X64: Added missing optimization of unary negate.
...
Review URL: http://codereview.chromium.org/174214
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 07:49:53 +00:00
lrn@chromium.org
23e84069c8
RegExp: Remove unnecessary function from ARM specific code and convert condition to assertion.
...
Review URL: http://codereview.chromium.org/178034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 07:34:51 +00:00
mikhail.naganov@gmail.com
4339205dd2
Add code creation logging for construct stubs.
...
Otherwise, tick processor reports unknown code deletes / moves for them.
Review URL: http://codereview.chromium.org/178060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 06:55:49 +00:00
sgjesse@chromium.org
07e1bb76c7
Port specialized constructor code for constructing simple objects to x64.
...
See http://codereview.chromium.org/173470 for description. The x64 implementation follows the ia32 except it uses some additional registers to avoid spilling to the stack. Also tweaked the ia32 version a bit.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 06:17:59 +00:00
sgjesse@chromium.org
33a8bdad62
Reverting 2797.
...
Review URL: http://codereview.chromium.org/176060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 15:23:35 +00:00
whesse@chromium.org
2c0d50dde5
Add a integer static type cast to make MacOS compiler happy. TBR=ager@chromium.org
...
Review URL: http://codereview.chromium.org/181033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 14:31:25 +00:00
sgjesse@chromium.org
00a2afeaa6
First step in allocating objects in generated code on ARM
...
This change moves the allocation of new objects into generated code. The allocation will bail out into the runtime system if the number of properties to allocate for the object exceeds the number of in-object properties.
Review URL: http://codereview.chromium.org/175045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 14:18:27 +00:00
ager@chromium.org
d8af3528dd
Fix the handling of termination exceptions thrown when creating error
...
objects in the runtime system.
Review URL: http://codereview.chromium.org/179062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 13:55:45 +00:00
whesse@chromium.org
13d59a069d
Add explicit integer type-casts to make WIN64 build without errors.
...
Review URL: http://codereview.chromium.org/178054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 13:08:16 +00:00
whesse@chromium.org
0f20431c36
X64: Use sahf instruction only on processors that support it.
...
Review URL: http://codereview.chromium.org/183028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 11:32:20 +00:00
sgjesse@chromium.org
6cdd89b165
hange bad choice for scratch register for native code counters on ARM
...
This caused running with native code counters on ARM to crash.
Review URL: http://codereview.chromium.org/181031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 11:26:48 +00:00
whesse@chromium.org
970874ad62
X64: Obey WIN64 ABI more exactly, in WIN64 build.
...
Review URL: http://codereview.chromium.org/182027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 10:40:00 +00:00
erik.corry@gmail.com
be70d6fc4d
Cache the results of slow math operations on machines that don't
...
have hardware fpu instructions to execute them.
Review URL: http://codereview.chromium.org/179059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 09:03:58 +00:00
sgjesse@chromium.org
62e9956c91
Move object allocation in new space to macro assembler
...
Currently allocation in generated code on ARM is only used for allocating heap numbers. This change factors this out for use in upcomming changes.
Review URL: http://codereview.chromium.org/173625
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2789 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 07:36:46 +00:00
whesse@chromium.org
f77d7aab55
X64: Fix bug introduced in revision 2779
...
Review URL: http://codereview.chromium.org/180040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-31 15:28:17 +00:00
ager@chromium.org
3fe0bc0436
Remove asserts that do not hold when lazily compiling extension code.
...
Add checks for the use of eval and with in natives files to the js2c
script.
Review URL: http://codereview.chromium.org/175009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-31 15:02:54 +00:00
lrn@chromium.org
9230ad29eb
ARM native regexps.
...
Review URL: http://codereview.chromium.org/173567
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-31 12:40:37 +00:00
erik.corry@gmail.com
fcf8293df2
Move stack check into AllocateStackSlots so the load delay can be
...
interleaved with other instructions. Reorder the stack check
slightly to avoid some load delay. The end result is almost
imperceptible.
Review URL: http://codereview.chromium.org/181019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-31 10:38:00 +00:00
erik.corry@gmail.com
369214c159
Use a root array register for constant loads and stack guards on x64.
...
This only wins us around 1% in performance, but it makes the code more
compact. We don't currently have a way to represent in the virtual
frame that a slot contains a value from the root array. Adding this
would probably make the code more compact.
Review URL: http://codereview.chromium.org/174639
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-31 08:57:36 +00:00
sgjesse@chromium.org
5ce6842dd9
Don't use the same descriptor array in several maps.
...
Make a copy of the descriptor array when copying a map with pre-allocated properties. The garbage collector assumes that no two maps point to the same descriptor array.
A simple reduction is missing.
BUG=http://crbug.com/20330
TEST=none
Review URL: http://codereview.chromium.org/177018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-28 11:10:33 +00:00
whesse@chromium.org
b01a7395c4
X64: Add inline cache load of normal field (slow case objects).
...
Review URL: http://codereview.chromium.org/180020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2779 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-28 11:08:16 +00:00
sgjesse@chromium.org
94c0539052
Add allocation support to x64 macro assembler.
...
Factored out the allocation in new space from assembler code into the macro assembler for x64 as was recently done for ia32.
Added set property svn:eol-style to native for all x64 files.
Review URL: http://codereview.chromium.org/173568
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-28 06:18:36 +00:00
whesse@chromium.org
231f0b9656
X64: Activate Probes for Megamorphic StoreIC on 64-bit platform.
...
Review URL: http://codereview.chromium.org/174609
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 15:46:03 +00:00
ager@chromium.org
7331301703
Port apply with arguments optimization to x64.
...
Review URL: http://codereview.chromium.org/173566
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 14:58:50 +00:00
whesse@chromium.org
536a1b5d81
X64: Activate the IC stub for prototype lookups.
...
Review URL: http://codereview.chromium.org/174606
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 14:11:20 +00:00
whesse@chromium.org
069e734d82
Fix lint error.
...
Review URL: http://codereview.chromium.org/174602
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 11:48:37 +00:00
whesse@chromium.org
ced7756402
Use Arguments object in C builtins, instead of __argc__ and __argv__.
...
Fix a stack-offset constant. Make Windows 64-bit stack 16-byte aligned.
Review URL: http://codereview.chromium.org/173563
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 11:24:43 +00:00
sgjesse@chromium.org
a4eed24c26
Add allocation support to ia32 macro assembler.
...
Factored out the allocation in new space from assembler code into the macro assembler. To support the current allocation patterns a number of different functions where required.
This is change is identical to http://codereview.chromium.org/174524 (committed in r2768 and reverted in r2769) except that line 710 in macro-assembler-ia32.cc is
cmp(result_end, Operand::StaticVariable(new_space_allocation_limit));
instead of
cmp(result, Operand::StaticVariable(new_space_allocation_limit));
and pre-submit fixes as well.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/174600
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2771 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 09:08:16 +00:00
whesse@chromium.org
48d1e49262
Use stack frame marker constants to mark arguments adaptor frame.
...
Review URL: http://codereview.chromium.org/174522
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 07:44:37 +00:00
sgjesse@chromium.org
a6973777bb
Reverting 2768.
...
Review URL: http://codereview.chromium.org/173561
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2769 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 07:41:31 +00:00
sgjesse@chromium.org
1c46ee8c10
Add allocation support to ia32 macro assembler.
...
Factored out the allocation in new space from assembler code into the macro assembler. To support the current allocation patterns a number of different functions where required.
Review URL: http://codereview.chromium.org/174524
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 07:24:03 +00:00
erik.corry@gmail.com
d6afd05b16
2nd try at fixing invalid Smi issue on 64 bits.
...
Review URL: http://codereview.chromium.org/174520
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 13:21:38 +00:00
ager@chromium.org
56ad3bf123
Remove shrinking of new space on compaction and only do it on idle
...
notifications.
Review URL: http://codereview.chromium.org/173471
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2765 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 12:51:43 +00:00
sgjesse@chromium.org
717394492d
Generate specialized constructor code for constructing simple objects.
...
For objects which only have simple assignments of the form this.x = ...; a
specialized constructor stub is now generated. This generated code allocates the
object and fills in the initial properties directly. If this fails for some
reason code continues in the generic constructor stub which in turn might pass
control to the runtime system.
Added counter to see how many objects are constructed using a specialized stub.
The specialized stub is only implemented for ia32 architecture in this change.
For x64 and ARM the generic construct stub is used.
This is change is identical to http://codereview.chromium.org/174392 (committed in r2753 and reverted in r2754) except that a few parts have already been committed from http://codereview.chromium.org/173469 (committed in r2762).
Review URL: http://codereview.chromium.org/173470
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 12:22:44 +00:00
erik.corry@gmail.com
ba9efd26b7
Avoid triggering assert on 64 bit version.
...
Review URL: http://codereview.chromium.org/174519
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 12:22:34 +00:00
sgjesse@chromium.org
681440e273
Handle pre-allocated properties when copying map.
...
When copying a map always set the descriptor array to describe the pre-allocated properties, even when descriptors are to be dropped.
Added a test which otherwise failed with an assert on ARM in debug mode. The reason for it only surfasing on ARM is that the NewObject runtime function is always used for allocating new JSObjects on ARM.
This change includes a few parts of http://codereview.chromium.org/174392 needed to trigger the error.
Review URL: http://codereview.chromium.org/173469
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 11:03:07 +00:00
christian.plesner.hansen@gmail.com
af6c6a5533
Api inlining. Made some core functionality available in the api and
...
made inline versions of some hot functions. Changed api to use
internal Object pointers rather than void pointers.
Speeds up getElementById by ~7%.
Review URL: http://codereview.chromium.org/173348
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 10:33:11 +00:00
erik.corry@gmail.com
a29d4e6762
* Make stack/preemption guard faster on ARM by putting stack
...
limit in the roots array.
Review URL: http://codereview.chromium.org/174517
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 10:27:32 +00:00
ager@chromium.org
e7cc9fbce5
Prepare push to trunk. Now working on version 1.3.9.
...
Review URL: http://codereview.chromium.org/174516
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 08:19:55 +00:00
ager@chromium.org
11b317d94f
Only pass idle notifications on from the API if V8 has been
...
initialized.
Minor cleanups.
Review URL: http://codereview.chromium.org/173465
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 08:13:27 +00:00
sgjesse@chromium.org
46a9b8f26b
Make ARM simulator compile on Windows.
...
Remove suspicious line from ARM simulator, which caused a compiler warning on Windows.
Review URL: http://codereview.chromium.org/173464
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 08:11:46 +00:00
whesse@chromium.org
046b4020f7
X64: Small changes to let WIN64 platform compile.
...
Review URL: http://codereview.chromium.org/174394
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 06:29:53 +00:00
sgjesse@chromium.org
3fdbc0848c
Reverting 2753.
...
Review URL: http://codereview.chromium.org/173349
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-25 15:00:07 +00:00
sgjesse@chromium.org
53531ed48a
Generate specialized constructor code for constructing simple objects.
...
For objects which only have simple assignments of the form this.x = ...; a specialized constructor stub is now generated. This generated code allocates the object and fills in the initial properties directly. If this fails for some reason code continues in the generic constructor stub which in turn might pass control to the runtime system.
Added counter to see how many objects are constructed using a specialized stub.
The specialized stub is only implemented for ia32 architecture in this change. For x64 and ARM the generic construct stub is used.
Review URL: http://codereview.chromium.org/174392
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-25 12:23:58 +00:00
ager@chromium.org
c9827717f1
Prepare push to trunk. Now working on version 1.3.8.
...
Review URL: http://codereview.chromium.org/173340
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-25 06:53:36 +00:00
mike@belshe.com
6f3c50460a
Update the Idle collector to do a full GC
...
after being idle for some time.
Remove the default argument from CollectAllGarbage.
Review URL: http://codereview.chromium.org/174302
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-25 02:54:39 +00:00
ager@chromium.org
4cd3d7afe8
Revert change 2745 because of assertion failures in debug mode.
...
TBR=yurys@chromium.org
Review URL: http://codereview.chromium.org/173268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-24 16:08:44 +00:00
yurys@chromium.org
b295a51e7e
Allow stepping in functions called using CallFunction stub. When Debug::PrepareStep is called to prepare 'step in' and current code target is CallFunction stub, the debugger will find function being called on the expression stack and flood it with one shot breakpoints.Related Chromium issue: http://code.google.com/p/chromium/issues/detail?id=17978
...
Review URL: http://codereview.chromium.org/159703
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2745 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-24 15:21:49 +00:00
erik.corry@gmail.com
038f9074bc
Reapply ARM root array change to reduce const pool size
...
by using r10 to point to a list of common root objects.
This time we also disable a debugger test on ARM that
has never worked, but with this change sometimes
crashes.
Review URL: http://codereview.chromium.org/174317
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-24 11:57:57 +00:00
whesse@chromium.org
1dfac258a3
Change some integer types to make the x64 Win32 platform happier.
...
Review URL: http://codereview.chromium.org/173115
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-24 11:56:29 +00:00
ager@chromium.org
ed05df0053
Shrink new space on compacting collections.
...
Review URL: http://codereview.chromium.org/174219
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2740 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-21 13:14:53 +00:00
sgjesse@chromium.org
cba1ae7db2
Prepare to push to trunk. We are now working on version 1.3.7.
...
Review URL: http://codereview.chromium.org/173189
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-21 10:48:31 +00:00
ager@chromium.org
fdf70d37fa
Land change to bail out from post garbage collection processing if
...
another post gc processing was trigger because of weak callbacks.
Review URL: http://codereview.chromium.org/174141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-21 08:52:24 +00:00
sgjesse@chromium.org
88588df8c5
Fix a GC issue.
...
When descriptor arrays where allocated with the initial map the handling of allocation failures was not correct. This could cause the map returned could possible have been collected.
Review URL: http://codereview.chromium.org/173188
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2736 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-21 08:44:21 +00:00
sgjesse@chromium.org
77204cb36f
Fix an ASSERT in the scanner.
...
The assert when performing a push back on a two byte string was wrong.
Added a small regression test.
Review URL: http://codereview.chromium.org/173116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-21 06:30:59 +00:00
ager@chromium.org
94a3009b04
Go back to doubling the size when growing new space.
...
Our memory tests show little improvement by only growing by 50%.
Review URL: http://codereview.chromium.org/174133
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-20 08:12:30 +00:00
whesse@chromium.org
cd4d95bc1c
Fix build error
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-20 08:08:18 +00:00
ager@chromium.org
756abb6e83
Land patch by agl@chromium.org to hopefully fix build failure on
...
Ubuntu with GCC 4.4.
Review URL: http://codereview.chromium.org/174005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-20 07:41:46 +00:00
feng@chromium.org
855c654b25
Add LowMemoryNotification to the API on Android platform.
...
Android system provides a unique feature that it sends a notification to the
browser in low memory condition, and the browser cleans up cache and frees
resources. Forcing a GC in low memory condition can free DOM objects and also
can shrink the old spaces.
This patch addresses the last comment in
http://codereview.chromium.org/173016/show
Mads Ager 2009/08/19 17:24:23
I would prefer to not use the flags to signal that a compacting collection is
requested.
TBR = ager
Review URL: http://codereview.chromium.org/173102
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-20 00:07:19 +00:00
antonm@chromium.org
8b42f23dec
Do not allow GlobalHandles::Create to reuse destoryed nodes (ones from free list)
...
while performing GlobalHandles::PostGarbageCollectionProcessing as those might be already deleted (in C++ sense).
Review URL: http://codereview.chromium.org/173060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 20:32:51 +00:00
ager@chromium.org
0efbd40baf
Add support for forceful termination of JavaScript execution.
...
The termination is achieved by throwing an exception that is uncatchable by JavaScript exception handlers.
Review URL: http://codereview.chromium.org/174056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 15:14:11 +00:00
sgjesse@chromium.org
8cc5048ac4
Prepare to push to trunk. We are now working on version 1.3.6.
...
Review URL: http://codereview.chromium.org/173054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 12:46:48 +00:00
sgjesse@chromium.org
b7eb0762b8
Fix lint error.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/173056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 12:44:45 +00:00
sgjesse@chromium.org
b8a73f0650
Fix uninitialized members.
...
Make sure that the DummyScope top level scope used for pre-parsing have all members initialized. The type of this scope is set to global scope as it is a top level scope. Also ensure that the "naked" Scope constructor can only be used by sub-classes of Scope.
The bug of missing initiaalization of members in the DummyScope was found by Valgrind.
Review URL: http://codereview.chromium.org/173052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 12:06:16 +00:00
ager@chromium.org
469259cd88
Reapply the semispace growth policy change in isolation.
...
Additionally fix NewSpace capacity bug by removing the duplicated
capacity and maximum capacity book keeping. The capacity and maximum
capacity of NewSpace is the capacity and maximum capacity of one of
it's semispaces.
Review URL: http://codereview.chromium.org/174052
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 10:36:19 +00:00
lrn@chromium.org
fdf31f7f5e
X64: Implement debugger hooks.
...
Debugger is now fully functional.
Fix difference in emitting statement positions to match ia32.
Review URL: http://codereview.chromium.org/171107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 10:18:30 +00:00
ager@chromium.org
f68b81b084
Put back the reduction of semispace sizes as an isolated change.
...
The growth policy change is next.
Review URL: http://codereview.chromium.org/173050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 08:48:17 +00:00
ager@chromium.org
5e0a513e29
Temporarily revert the reduction of semispace sizes and the growth
...
policy change.
I will put the changes back one at a time so we can see the effect of
them in isolation. Also, there is a bug in the growth policy change
that I will fix before putting it back again.
Review URL: http://codereview.chromium.org/174050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 08:12:12 +00:00
sgjesse@chromium.org
b9f39307be
Create a set of x64 Visual studio project files and corresponding solution.
...
These files will make it possible to start working with the 64-bit version on Windows.
The GUID's of the x64 project files are the same as their ia32 counterparts, but that does not matter as they will never be used in the same solution.
Added a temporary #error when building 64-bit version on Windows.
Review URL: http://codereview.chromium.org/171111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 07:32:48 +00:00
sgjesse@chromium.org
4e03645dc4
Analyze functions for assignment to this properties.
...
During parsing functions are analyzed for statements of the form this.x = ...;. These assignments are categorized in two types: simple and non simple. The simple ones are where the right hand side is known to be either a constant or an argument to the function. If a function only contains statements of this type the property names are collected and for the simple assignments the index of the argument or the constant value assigned are stored as well.
When the initial map for a function is created and the function consists of only this type of assignemnts the initial map is created with a descriptor array describing these properties which will be known to always exist in an object created from the function.
The information on this property assignments is not collected during pre-parsing so if compiling using pre-parse data these optimization hints are not available.
Next step will be to use the information collected for the simple assignments to generate constructor code which will create and initialize the object from this information without calling the code for the function.
Review URL: http://codereview.chromium.org/172088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 07:30:20 +00:00
feng@chromium.org
03a39152b9
Fix IA32 build when not using native regexp compiler.
...
Review URL: http://codereview.chromium.org/173003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-18 17:26:51 +00:00
whesse@chromium.org
e9365fb39b
Increase new space size and limits on 64-bit platforms.
...
Review URL: http://codereview.chromium.org/171105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-18 11:26:14 +00:00
whesse@chromium.org
5b8d422524
Remove one of the GCs performed by the --gc-greedy flag. The GC performed by CEntryStub before the first call to C, when --gc-greedy is set, caused a bug in calling API callbacks.
...
Review URL: http://codereview.chromium.org/171104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-18 10:52:14 +00:00
ager@chromium.org
1656dd639a
Fix regression caused by the generation of a shift stub during
...
snapshot creation in a better way.
Encode whether or not the stub should use sse3 instructions in the
minor key of the stub. The stubs generated during snapshot creation
will have sse3 disabled, but they will not be found when sse3 is
enabled. Therefore they will only affect the code generated as part
of the snapshot.
Review URL: http://codereview.chromium.org/172086
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-18 09:47:45 +00:00
ager@chromium.org
b3f8ce7ce4
Fix regression caused by context creation optimization r2681.
...
The issue is that a shift operation is used when creating the
snapshot. This means that the shift binary operation stub is
generated at snapshot time without sse3 instructions.
The fix is to use division instead.
TBR=erik.corry@gmail.com
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-18 09:14:19 +00:00
feng@chromium.org
1c70072f7f
Streamline the scanner for external two byte string input.
...
Review URL: http://codereview.chromium.org/165403
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-18 07:14:02 +00:00
feng@chromium.org
33fb11c12f
Revert commit 2701 per Erik Corry's request.
...
Original CL:
http://codereview.chromium.org/171041
Review URL: http://codereview.chromium.org/171089
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-18 00:12:26 +00:00
whesse@chromium.org
349dc04a5d
Use root array to load roots in generated ARM code.
...
This cuts down on code size and reloc work.
Review URL: http://codereview.chromium.org/171041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2701 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-17 14:31:49 +00:00
christian.plesner.hansen@gmail.com
e64bf9ad6c
Added API for getting object mirrors
...
Added Debug::GetMirror call to get a mirror for a given object.
Review URL: http://codereview.chromium.org/172045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2700 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-17 14:26:48 +00:00
christian.plesner.hansen@gmail.com
11e7f2a30b
Added API call to get the stack trace for an exception
...
Added TryCatch::StackTrace that gets the stack trace for the thrown
exception.
Review URL: http://codereview.chromium.org/171042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-17 13:34:41 +00:00
christian.plesner.hansen@gmail.com
570788b115
Context-independent script compilation.
...
Added Script::New calls that create a new context-independent
(boilerplate) script which can be executed in any context, unlike the
current scripts which bind the context in which they're compiled.
Review URL: http://codereview.chromium.org/172043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2697 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-17 11:41:00 +00:00
christian.plesner.hansen@gmail.com
04a6340227
RegExp tweaks
...
Fixed bug where regexps were not callable across contexts since the
callable test used object identity on the regexp constructor. Changed
typeof RegExp from 'object' to 'function' for compatibility.
Review URL: http://codereview.chromium.org/171039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-17 10:19:00 +00:00
whesse@chromium.org
a82bd0507c
X64: Remove compound smi+overflow test using cmov.
...
Review URL: http://codereview.chromium.org/165525
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-17 09:07:40 +00:00
whesse@chromium.org
ab041ee4ed
X64: Do not use an AllocateWithoutSpill register if it is invalid. Abandoned in favor of approach in http://codereview.chromium.org/165525/show (Issue 165526)
...
Review URL: http://codereview.chromium.org/164480
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-17 08:02:07 +00:00
deanm@chromium.org
903599a2fc
Fix strict aliasing crash on x64.
...
Review URL: http://codereview.chromium.org/164498
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-14 17:19:51 +00:00
lrn@chromium.org
925433d241
Fix unsafe cast in RegExpStack
...
Review URL: http://codereview.chromium.org/164552
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2690 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-14 12:20:33 +00:00
sgjesse@chromium.org
409993be38
Refactor SetFunctionInfo to reduce long argument list take 2.
...
It now includes the change to ARM and x64 architectures as well.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/165528
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-14 11:35:10 +00:00
lrn@chromium.org
4254388c14
X64: Implement RegExp natively.
...
Review URL: http://codereview.chromium.org/165443
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-14 11:24:32 +00:00
sgjesse@chromium.org
7b05678316
Refactor SetFunctionInfo to reduce long argument list.
...
Review URL: http://codereview.chromium.org/165527
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-14 11:05:42 +00:00
feng@chromium.org
f04005b576
Revert http://code.google.com/p/v8/source/detail?r=2670
...
Now we can pass '--expose_gc' to V8 in the layout test controller. This is probably a better option.
Review URL: http://codereview.chromium.org/164520
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 22:13:45 +00:00
bak@chromium.org
f1f776f947
Changed Heap::Shrink to free as many pages as possible.
...
As a benefit, this eliminates an ifdef ARDROID.
Review URL: http://codereview.chromium.org/165453
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 14:58:35 +00:00
whesse@chromium.org
9373ca76ed
erikcorry: Remember to put objects back in fast case after adding functions.
...
P.S. for reasons unknown the original change (2681), also by erikcorry,
was attributed to Bill.
Review URL: http://codereview.chromium.org/164479
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 14:04:49 +00:00
whesse@chromium.org
d0d03d9980
Avoid map transitions and multiple backing arrays for builtin prototypes
...
while adding functions and other properties. This gives around 2% on
context-create, more if we don't GC on every new context. Also fix
accounting bug in cell space.
Review URL: http://codereview.chromium.org/165449
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 12:35:59 +00:00
whesse@chromium.org
5a3998c1f4
X64: Change testl to testb if mask fits in 1 byte. Shortens smi test.
...
Review URL: http://codereview.chromium.org/164472
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 12:35:09 +00:00
ager@chromium.org
c540fc7de6
Prepare push to trunk to get JSON parser fix into Chromium.
...
Now working on version 1.3.5.
Review URL: http://codereview.chromium.org/164474
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 12:21:11 +00:00
bak@chromium.org
6d98b0ba66
Changed semi space Grow to be rounded to OS page size.
...
Review URL: http://codereview.chromium.org/164469
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2678 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 12:13:50 +00:00
bak@chromium.org
bd5b5e52fc
- Added simple memory reduction behavior for IdleNotification.
...
- This also include a one line change approved by lrh.
http://codereview.chromium.org/164469
Review URL: http://codereview.chromium.org/165448
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 12:03:42 +00:00
christian.plesner.hansen@gmail.com
061834200a
Fixed issue 19212
...
Fixed a bug in json parsing. Refactored compilation code a bit to
make it more obvious what's going on.
Review URL: http://codereview.chromium.org/165446
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 10:25:35 +00:00
bak@chromium.org
7f18bef0d2
Added idle notification to the API.
...
The implementation is still empty.
Review URL: http://codereview.chromium.org/165445
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 09:35:51 +00:00
whesse@chromium.org
d7474a61a8
X64: Add an SHL optimization, fix a floating-point bug, fix xchg rax,r8 and printing of test ?ax, imm in disassembler.
...
Review URL: http://codereview.chromium.org/164399
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 08:00:04 +00:00
whesse@chromium.org
d35c815e94
Move some arrays into functions so they don't get cloned on each new context.
...
Review URL: http://codereview.chromium.org/164396
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 07:36:28 +00:00
christian.plesner.hansen@gmail.com
0b60fe88da
Add a readline() command to d8. This reads a single line, stripping
...
the new-line at the end. This is the other half of what is required to
make the Debian Language Shootout code work correctly:
http://code.google.com/p/v8/issues/detail?id=353
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 07:07:41 +00:00
feng@chromium.org
de8c403f1c
Revert my previous change r2654.
...
It has a similar impact on page cycler performance because now GC is randomly counted in page load time.
http://code.google.com/p/v8/source/detail?r=2654
Review URL: http://codereview.chromium.org/164407
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-12 21:30:13 +00:00
christian.plesner.hansen@gmail.com
896f875d76
Prepare to push to trunk. We are now working on version 1.3.4.
...
Review URL: http://codereview.chromium.org/165383
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-12 14:02:09 +00:00
bak@chromium.org
d7449ddebf
- Reduced the maximum capacity of a semi space from 8MB to 4MB.
...
- Changed the semi space growth policy from doubling to increasing by 50%.
This slows down V8BenchmarkSuite with 1.32% but reduces the memory footprint with 8MB per V8 instance.
Review URL: http://codereview.chromium.org/164397
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2667 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-12 13:54:43 +00:00