ager@chromium.org
a9d252749f
Fix thinko in arm transcendental cache probing introduced just before
...
committing.
Review URL: http://codereview.chromium.org/2764009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 12:26:41 +00:00
ager@chromium.org
add41fe16f
Allow users to specify a scons build cache directory.
...
Review URL: http://codereview.chromium.org/2745014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 11:19:27 +00:00
ager@chromium.org
c3514589b8
Add missing files accidentally left out on last commit.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 10:25:34 +00:00
ager@chromium.org
89ffd6c2f2
Implement transcendental cache probing in generated code on ARM.
...
Fixed hash code computation on ia32 and x64 to match the runtime
system (change arithmetic shift right to logical shift right).
Review URL: http://codereview.chromium.org/2731007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 10:18:44 +00:00
ricow@chromium.org
407aaa9823
Only perform code flusing test if we actually do code flushing.
...
Puts a check into the code flushing test to only perform this if the
flush_code flag is set to true.
Review URL: http://codereview.chromium.org/2734006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 08:52:36 +00:00
ricow@chromium.org
7b956716f7
Put code flushing behind flag - defaults to false.
...
Since we have an issue with code flusing on the trybots preventing us
from pushing to chromium, a new flag for enabling code flushing,
--flush_code, is introduced with this change (defaulting to false).
Review URL: http://codereview.chromium.org/2734005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-11 07:06:51 +00:00
whesse@chromium.org
ab65809a62
Use static type information in ConstantIntBinaryOperation on x64.
...
Review URL: http://codereview.chromium.org/2754004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-10 14:37:49 +00:00
sgjesse@chromium.org
e045ca6898
Better handling of stepping out of a function
...
With the change in r4820 all return statements are now breakable like any statement, so stepping will stop before the return statement actually returning from a function. With this change the position when breaking in the function return (after executing the return statement) will be the actual end of the function. At this point the return value is available as it saved to the stack by the debug break at return handling. Added information on the actual value returned from the function to the debugger.
Review URL: http://codereview.chromium.org/2783002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-10 09:02:16 +00:00
kaznacheev@chromium.org
1dec9199ca
Add logic from KeyedLoadIC generic stub to KeyedCallIC megamorphic stub.
...
This should make access faster for arrays of functions.
Review URL: http://codereview.chromium.org/2754003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-10 05:06:39 +00:00
whesse@chromium.org
e1e4d985f9
Use static type information on x64 in LikelySmiBinaryOperation.
...
Refactor check for smi operands, using type information, on ia32 and x64.
Review URL: http://codereview.chromium.org/2771001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-09 11:15:54 +00:00
vegorov@chromium.org
7f0645a20a
Prepare push to trunk. We are now working on version 2.2.17.
...
Review URL: http://codereview.chromium.org/2757004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-09 09:27:54 +00:00
sgjesse@chromium.org
4446355c26
ARM: Fix bug in r4820 related to code for additional break positions.
...
These issues where unly revealed in debug mode
Review URL: http://codereview.chromium.org/2733006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-09 07:40:35 +00:00
mikhail.naganov@gmail.com
e5bdf01d1e
Factor out StringsStorage from CpuProfilesCollection.
...
Review URL: http://codereview.chromium.org/2769001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-09 07:00:33 +00:00
sgjesse@chromium.org
8227208d34
x64: Fix code to return from debug break slot
...
On x64 the return from debug break slot did not pop off the return address.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2731002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 12:50:42 +00:00
whesse@chromium.org
b93382d9ff
Add test_b(Operand, imm8) to ia32 disassembler.
...
Review URL: http://codereview.chromium.org/2765001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4822 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 12:44:24 +00:00
sgjesse@chromium.org
baf100fc48
Add parenthesis around '&&' within '||'
...
Warning by some gcc versions. Adding the parenthesis made the condition correct.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2725003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 12:20:24 +00:00
sgjesse@chromium.org
634fb9152c
More precise break points and stepping when debugging
...
Added support for more precise break points when debugging and stepping. To achieve that additional nop instructions are inserted where breaking would otherwise be impossible. The number of nop instructions inserted are sufficient to make place for patching with a call to a debug break code stub. On Intel that is 5 nop's for 32-bit and 13 for 64-bit. Om ARM 3 nop instructions (12 bytes) are required.
In order to avoid inserting nop's in to many places a simple ast checker have been added to check whether there are breakable code in a statement or expression. If it is possible to break in an expression no additional break enabeling code is inserted.
Added break locations to the true and false part of a conditional expression.
Added stepping tests to cover more constructs.
These changes are only in the full compiler.
Changed the default value for the option --debugger in teh d8 shell from true to false. The reason for this is that with --debugger turned on the full compiler will be used for all code in when running d8, which can be unexpeceted.
Review URL: http://codereview.chromium.org/2693002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4820 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 12:04:49 +00:00
mikhail.naganov@gmail.com
a217c50ab2
Move token-related constants from CodeEntry to TokenEnumerator.
...
Review URL: http://codereview.chromium.org/2745002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 11:27:00 +00:00
sgjesse@chromium.org
aaaebbe50f
Fix building without debugger suport.
...
Review URL: http://codereview.chromium.org/2733003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 11:23:48 +00:00
ricow@chromium.org
e0bbcf1e6e
Fix bug in mjsunit/const-eval-init causing objects to be initialized to undefined.
...
In mjsunit/const-eval-init - testInitSlowCaseExtension a range of objects are initialized to undefined instead of a value because the variable i is within quotes (i.e., the source becommes "a1 = i" instead of "a1 = 1".
This should have no impact on the test, I just stumbled over this on
an unrelated matter.
Review URL: http://codereview.chromium.org/2758002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 11:20:36 +00:00
sgjesse@chromium.org
c7ab2b6aa3
Remove the SetExternalStringDiposeCallback API
...
Changed the disposal of external string resources to call a virtual Dispose method on the resource. The default inplementation of Dispose deletes the object and will capture the delete operator matching the new operator used to allocate the object.
Review URL: http://codereview.chromium.org/2658008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 09:35:47 +00:00
ager@chromium.org
6dc72b690c
Add an overloaded PreCompile method that takes a Handle<String>.
...
Code review URL: http://codereview.chromium.org/2633004/show
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-08 06:20:49 +00:00
ricow@chromium.org
316092c364
Flushing of code from functions that we expect not to use again.
...
This adds an additional step to full gc, removing code from functions
that are no longer in the compilation cache. The code is replaced with
a lazy compile version enabling us to recompile the function in case
we do actually need it again.
Review URL: http://codereview.chromium.org/2632003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 15:39:10 +00:00
whesse@chromium.org
3c42d18a44
Revert change 4812 due to performance problems. This was a change in string addition on ia32.
...
Review URL: http://codereview.chromium.org/2706001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 13:16:05 +00:00
whesse@chromium.org
dd278e634e
Improve generated code for string encoding tests on ia32.
...
Review URL: http://codereview.chromium.org/2673001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 12:15:10 +00:00
vegorov@chromium.org
68b8a50843
Count Mark-Compact/Mark-Sweep collections only after compaction decision was made
...
Review URL: http://codereview.chromium.org/2665001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 11:31:44 +00:00
lrn@chromium.org
8ff9083747
Prepare push to trunk. We are now working on version 2.2.16.
...
Review URL: http://codereview.chromium.org/2640007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 11:02:43 +00:00
vegorov@chromium.org
1d932dcc6e
Add regression tests for issues 728, 732
...
TBR=lrn@chromium.org
Review URL: http://codereview.chromium.org/2698004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 10:54:42 +00:00
vegorov@chromium.org
53923e9233
Revert r4782. Fix issues 728, 732.
...
Review URL: http://codereview.chromium.org/2701003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 09:36:30 +00:00
sgjesse@chromium.org
09acdc8446
Add an API to control the disposal of external string resources
...
A new callback have been added which - if set - will be called to dispose of external string resources passed from the embedder to the V8 engine.
Review URL: http://codereview.chromium.org/2645004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 08:49:07 +00:00
kaznacheev@chromium.org
ff61618c4b
Extend CallIC to support non-constant names.
...
This speeds up constructs like this:
var zz='replace'; '123'[zz]('3','4');
Review URL: http://codereview.chromium.org/2280007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 08:27:32 +00:00
ager@chromium.org
a40569e5a0
Port fast eval calls to x64 and ARM. For global variables that can
...
only be shadowed by eval-introduced variables we usually do not need
to do a context lookup in the runtime system.
Review URL: http://codereview.chromium.org/2672001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-07 07:12:00 +00:00
vitalyr@chromium.org
8689b3bcea
Direct load of global function prototype.
...
As most of call IC code is tied to a context anyway we can save a few dependent loads by having a direct reference to an initial map of a global function.
Review URL: http://codereview.chromium.org/2239009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 16:20:34 +00:00
sandholm@chromium.org
c9b1bf7eaa
Fix issue in previous test optimization
...
Review URL: http://codereview.chromium.org/2653002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4801 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 13:43:41 +00:00
sandholm@chromium.org
6e7d663eed
Simplify criteria for doing an optimized test call
...
Review URL: http://codereview.chromium.org/2662002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 13:37:28 +00:00
sandholm@chromium.org
52f52ae99f
Simplify regexp test call when the regexp starts and ends with '.*'.
...
Review URL: http://codereview.chromium.org/2645002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 11:58:40 +00:00
ricow@chromium.org
8a4d49b65a
Rename ThreadManager::IterateThreads to ThreadManager::IterateArchivedThreads
...
The IterateThreads method only iterates archived threads. If all
threads are to be iterated an additional iteration of the current active
stack is also needed.
Review URL: http://codereview.chromium.org/2655002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 11:57:01 +00:00
antonm@chromium.org
12f6306420
First phase of migration to new named property query callbacks.
...
Eventually named property query callbacks will return attributes
(as an integer) or an empty handle if property is not intercepted.
To gradually migrate to this new API, USE_NEW_QUERY_CALLBACK
macro would control if old or new style API is used.
So the migration plan is:
1) introduce new API which should be explictily enabled;
2) switch to new API defining USE_NEW_QUERY_CALLBACK before
include of <v8.h> (that would require changes to client code as well)
3) remove old API from v8
4) remove #define USE_NEW_QUERY_CALLBACK from clients.
Review URL: http://codereview.chromium.org/2576003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 11:49:44 +00:00
lrn@chromium.org
d3d295efa7
Add optimized version of memcpy on ia32.
...
Only used in one place right now.
Still room for tweaking.
Review URL: http://codereview.chromium.org/2582001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 11:30:55 +00:00
whesse@chromium.org
0fc3dca698
Add test_b(Operand, immediate) to ia32 assembler, and use it where possible. Improve comparison to a constant one-character string. Use CmpInstanceType in more places on ia32. Add IsObjectJSObjectType and IsInstanceJSObjectType to ia32 macro assembler, using a single branch for a range test.
...
Review URL: http://codereview.chromium.org/2586001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 10:46:04 +00:00
ager@chromium.org
723bed3105
Optimize calls to evals. Most of the time there is no reason to
...
perform a context lookup in the runtime system for the 'eval'
function. Instead load the 'eval' function from the global context in
generated code if it is not shadowed.
Will port to other platforms as a separate change.
Review URL: http://codereview.chromium.org/2666001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 10:19:19 +00:00
dimich@chromium.org
ed90d5648b
Remove unused tpedef.
...
Review URL: http://codereview.chromium.org/2560002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-04 07:53:40 +00:00
vitalyr@chromium.org
6c74d30f83
Fix double to integer conversions in runtime string indexing.
...
Review URL: http://codereview.chromium.org/2577001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-03 11:31:19 +00:00
vitalyr@chromium.org
3ec0b86495
Make StringCharCodeAt runtime function do what it name implies and not
...
just indexed string access.
The difference is that String.prototype.charCodeAt accepts any number
as an index, whereas string[] only accepts array indices.
Review URL: http://codereview.chromium.org/2467006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-03 09:32:07 +00:00
whesse@chromium.org
ebc21fc958
Change keyed load IC interface on x64 to pass arguments in registers.
...
Review URL: http://codereview.chromium.org/2470001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 14:37:47 +00:00
lrn@chromium.org
c3b4097f28
Fix bug in test case that made it fail to compile in non-debug mode.
...
Using ASSERT_EQ instead of CHECK_EQ means that a variable becomes unused.
Review URL: http://codereview.chromium.org/2475003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 11:05:06 +00:00
erik.corry@gmail.com
9fc31e1fed
Fix last-minute thinko that I snuck into the last change.
...
It busted crypto-decrypt.
Review URL: http://codereview.chromium.org/2434005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 10:47:50 +00:00
erik.corry@gmail.com
b600905133
ARM: Track Smis on top 4 stack positions and Smi loop variables.
...
Improve code generation for known smis and suspected Smis.
Review URL: http://codereview.chromium.org/2452002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 09:37:02 +00:00
lrn@chromium.org
5b7e77acea
Fix bug that could cause a string to be incorrectly tagged as an array index.
...
We should only mark a string as an array index if we can store the entire value
of the number in the hash field. We sometimes failed to reject larger numbers.
Fixes http://code.google.com/p/v8/issues/detail?id=728
Review URL: http://codereview.chromium.org/2452007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 09:31:01 +00:00
ager@chromium.org
f340073e5e
Add missing initialization of a couple of variables which makes
...
some compilers complaint when compiling with -Werror.
Review URL: http://codereview.chromium.org/2492001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4780 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-02 08:58:44 +00:00