kasperl@chromium.org
e94a5f909e
When aborting optimization attempts for a function, make sure
...
to clear any eager optimizing hints in the compilation cache.
Review URL: http://codereview.chromium.org/6681031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-14 11:26:19 +00:00
whesse@chromium.org
f6e1b82fd4
Fix a problem where Object.getOwnPropertyDescriptor and related functions unintentionally called toString on the values of an object's properties. Fixes issue 1233.
...
Review URL: http://codereview.chromium.org/6677017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 13:57:20 +00:00
whesse@chromium.org
55815b5fd5
X64: Load more values from the root array, rather than from immediate 64-bit constants.
...
Review URL: http://codereview.chromium.org/6676025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 13:33:39 +00:00
antonm@chromium.org
7b6e295021
Faster invocation for most of API calls.
...
For most of API calls we generate better stub which is faster than invocation
via builtin, so use IC instead of direct call in Hydrogen.
Review URL: http://codereview.chromium.org/6672026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 13:25:01 +00:00
karlklose@chromium.org
8df50f2622
ARM: Implement inline conversion of heap numbers to int32 values for bitoperations.
...
For bit operations, values are truncated and converted to the range -2^31 through 2^31 - 1. This patch provides inlined handling of this conversion for all heap numbers.
Before, we were calling runtime for every heap number that did not fit into a signed int32.
Review URL: http://codereview.chromium.org/6658034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 12:12:44 +00:00
ricow@chromium.org
442cb7c21a
Fix compile failure with GCC 4.5.0 (issue 1244)
...
GCC apparently assumes that given that we do a static cast in the next
line the value must actually be in StrictModeFlag enum range (even
though this is actually what we are asserting)
Review URL: http://codereview.chromium.org/6670031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 11:02:27 +00:00
danno@chromium.org
4beeee3eb3
Fix x64 array length operations in Crankshaft
...
x64-bit array length loads and bounds checks should be 32-bits
Review URL: http://codereview.chromium.org/6676009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 10:30:33 +00:00
ricow@chromium.org
c00631b86e
Fix presubmit by deleting regress-1240 not deleted by last patch.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 09:08:52 +00:00
ricow@chromium.org
f2730d2ab8
Revert revision 7143, this causes a number of webkit tests to fail.
...
This includes a security test. Reverting to investigate further.
Review URL: http://codereview.chromium.org/6673019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 09:02:54 +00:00
ricow@chromium.org
fa9e57e326
Change __defineGetter__ and __defineSetter__ to respect non-configurable.
...
This makes us compatible with firefox. Earlier on we were somehow
compatible with safari - which will allow defining a getter even when
an existing getter is present and non-configurable. We would, however,
in addition to overwriting the getter also change configurable to
true. The approach used by firefox seems much more sound, i.e., why
should it be possible to use __defineGetter__ or __defineSetter__ to
overwrite a non-configurable getter or setter respectively.
I will file a bug on the webkit bugtracker.
Review URL: http://codereview.chromium.org/6658037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 08:05:59 +00:00
vitalyr@chromium.org
c17aeb55bb
Use pthread_kill on solaris.
...
Landing patch by Ryan Dahl.
TBR=vegorov@chromium.org
Original review: http://codereview.chromium.org/6667030/
Review URL: http://codereview.chromium.org/6667031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 07:41:45 +00:00
vitalyr@chromium.org
d3caca74ca
Sample correct registers on solaris.
...
Landing patch by Ryan Dahl.
TBR=vegorov@chromium.org
Original review: http://codereview.chromium.org/6676019/
Review URL: http://codereview.chromium.org/6665023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 07:34:55 +00:00
vitalyr@chromium.org
7b5b511d1a
Update platform-solaris to support runtime profiling.
...
Landing patch by Ryan Dahl.
TBR=vegorov@chromium.org
Original review: http://codereview.chromium.org/6674002/
Review URL: http://codereview.chromium.org/6667025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-11 01:43:44 +00:00
mikhail.naganov@gmail.com
e0829eee10
Fix bit field for GlobalHandles::Node State in MSVC.
...
TBR=vitalyr@chromium.org
BUG=1243
TEST=none
Review URL: http://codereview.chromium.org/6658040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 17:29:37 +00:00
whesse@chromium.org
b7d7aa8ad2
Fix error in sin-cos.js test introduced in r7129.
...
Review URL: http://codereview.chromium.org/6659034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 14:04:18 +00:00
sgjesse@chromium.org
bc9ddf20bb
ARM: Port r7089 to ARM
...
Ensure that there is always enough bytes between consequtive calls in optimized code to write a call instruction at the return points without overlapping.
Add a call to deoptimize all functions after running tests with --stress-opt. This will catch some issues with functions which cannot be forcefully deoptimized. Some of the tests failed on ARM with that change without the rest of the changes in this change.
Review URL: http://codereview.chromium.org/6661022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 13:58:20 +00:00
mikhail.naganov@gmail.com
1d45870320
Fix for win32 after r7125. For some reason introducing a bit field into GlobalHandles::Node causes a trouble.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 13:45:35 +00:00
whesse@chromium.org
7175dc09ef
Crankshaft: Fix error in range analysis of compare operations.
...
Review URL: http://codereview.chromium.org/6658035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 13:34:56 +00:00
whesse@chromium.org
fc8f77e398
X64 Crankshaft: Fix error in computation of sine and cosine.
...
Review URL: http://codereview.chromium.org/6646047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 13:34:23 +00:00
fschneider@chromium.org
48832819b7
Normalize statistics about compilation time and allocation size.
...
Now we print compilation time and zone allocation per KB of compiled
source code to better compare with previous revisions.
Review URL: http://codereview.chromium.org/6646015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 13:26:51 +00:00
mikhail.naganov@gmail.com
a7bfc32829
Fix x64 build after r7125
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 12:58:57 +00:00
mikhail.naganov@gmail.com
ada15030e4
A follow-up to r7125: fix a couple of remaining comments.
...
Review URL: http://codereview.chromium.org/6626043/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 12:22:59 +00:00
mikhail.naganov@gmail.com
dee9c00267
Add an interface for an embedder to provide information about native
...
objects retained by object groups and global handles.
This information is then used during heap snapshot generation
to provide a more complete memory picture.
This patch will be needed to fix https://bugs.webkit.org/show_bug.cgi?id=53659 .
Review URL: http://codereview.chromium.org/6626043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 12:05:31 +00:00
mikhail.naganov@gmail.com
943e4f8340
Remove `sfi' abbreviations (a follow-up to r6902).
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6646022/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 12:00:27 +00:00
mikhail.naganov@gmail.com
6eb8c9e5a0
Revert r7119..r7121
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 11:55:03 +00:00
fschneider@chromium.org
241e4d364e
Initialize zone lists in the register allocator with more reasonable initial capacities.
...
Also replace fixed length zone lists with embedded vectors for the fixed live ranges.
Review URL: http://codereview.chromium.org/6660023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 11:54:55 +00:00
mikhail.naganov@gmail.com
ae38aedae4
lint
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 11:49:17 +00:00
mikhail.naganov@gmail.com
47a5723704
comment
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 11:49:07 +00:00
mikhail.naganov@gmail.com
c6d2bb18aa
renamed
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 11:48:56 +00:00
lrn@chromium.org
d57a8b0a07
X64: Change kSmiConstantRegister to r12.
...
We never use the smi register in places where it matters that r12 as
a base register needs an extra SIB byte. Might as well free up the
unencumbered r15 register instead.
Review URL: http://codereview.chromium.org/6647015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 10:14:24 +00:00
danno@chromium.org
34c399d205
Prepare push to trunk. Now working on version 3.2.2.
...
Review URL: http://codereview.chromium.org/6659030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 09:43:58 +00:00
danno@chromium.org
7b29810d97
Add bailout to x64 pixel array lithium instructions.
...
Stops segfaults in tests while tracking down the problem.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/6647024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 17:14:12 +00:00
vegorov@chromium.org
83616da7f5
Rebuild scope chain from serialized scope info before parsing lazily.
...
We used to rebuild it in Scope::Analyze but this might lead to mismatch between scopes seen by parser during the first and the second parse of the function.
BUG=v8:1230
Review URL: http://codereview.chromium.org/6646017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 16:57:03 +00:00
whesse@chromium.org
5dcd32beda
X64 Crankshaft: Add inline one-element cache for Instanceof.
...
Review URL: http://codereview.chromium.org/6621071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 15:57:47 +00:00
fschneider@chromium.org
012db51660
Reuse backing store of two zone lists by using Rewind(0) instead of Clear().
...
Review URL: http://codereview.chromium.org/6647019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 15:50:24 +00:00
whesse@chromium.org
ca20d718b3
X64 Crankshaft: Fix unrestored context register in Math.power.
...
Review URL: http://codereview.chromium.org/6649020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 15:27:07 +00:00
danno@chromium.org
9cca7d2733
Combine typed and pixel arrays.
...
Worth mentioning:
- Specialized versions of pixel array and store/loads inside the generic stubs have been removed, since to have parity for all external arrays, 8 different versions would have to be inlined/checked.
- There's a new constant in v8.h for external arrays with pixel array elements.
Review URL: http://codereview.chromium.org/6546036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 15:01:16 +00:00
kmillikin@chromium.org
a05a492254
Remove class HSubgraph.
...
Review URL: http://codereview.chromium.org/6647018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 12:37:56 +00:00
kmillikin@chromium.org
d31594feae
Refactor construction of switch statements to avoid subgraphs.
...
Refactor construction of switch statements so it doesn't use class
HSubgraph.
There are also a few improvements. We do not use an auxiliary list of
comparisons because they're embedded as a linked list in the graph
under construction. We share a common break block for all breaks from
the same switch. We do not insert empty blocks unless necessary to
maintain edge-split form.
There is also a bug fix. The entry to a clause body is a potential
join and must have a join ID set, otherwise deoptimization within the
body can go to an unpredictable place in the unoptimized code.
Review URL: http://codereview.chromium.org/6650021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 12:06:54 +00:00
sgjesse@chromium.org
23777e1b41
Remove deserializer assert checking object size allocated in large object space
...
The change r7079 could allocate a few small code objects in large object space. Therefore the assert is no longer valid.
Review URL: http://codereview.chromium.org/6647017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 11:50:03 +00:00
sgjesse@chromium.org
061fa8be11
Add the possibility for a code stub to be non-movable
...
Non-moveable code-stube are allocated in large object space. They are only required on ARM where the different C-entry stubs are required to never move.
This gets rid of pre-computing these stubs and hope that they never move. Also for crankshaft the C-entry stub which saved doubles is not generated in the snapshot so it ends up being generated at runtime and potentially move.
Review URL: http://codereview.chromium.org/6626072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 10:38:19 +00:00
ricow@chromium.org
df7bbc2386
Remove unneccesary JumpTableEntry pointer from lithium-codegen-x64.cc
...
Review URL: http://codereview.chromium.org/6648028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 10:29:14 +00:00
ricow@chromium.org
7783cc48fd
Fix memory leaks on x64
...
This change uses ZoneObject as base class for our jumptable entry. In
addition this change refactors the JumpTableEntry a bit.
Review URL: http://codereview.chromium.org/6647012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-09 10:02:47 +00:00
fschneider@chromium.org
4d2c3ee82d
Avoid allocation of temporary zone lists when inserting representation changes.
...
Instead of allocating fresh temporary lists for every instruction, reuse
the same instance and reset it between instructions.
This reduces the amount of zone memory used for inserting the HChange
instructions roughly by half.
Review URL: http://codereview.chromium.org/6628079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-08 15:08:36 +00:00
sgjesse@chromium.org
5a768f0769
Fix release build
...
Disassemble is not available in release build
Review URL: http://codereview.chromium.org/6635043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-08 15:00:08 +00:00
ricow@chromium.org
da9fe0f961
Remove GetProvidedParametersCount from JavaScriptFrame, it simply calls ComputeParametersCount.
...
Review URL: http://codereview.chromium.org/6635042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-08 14:18:28 +00:00
lrn@chromium.org
a8b41a0edd
Fix bug in X64 RegExpExec stub.
...
Used incorrect register for referencing RegExp data, so it always failed
to match the fast case.
When modifiying the object layout, it was possible to make it crash instead.
BUG=v8:1236
TEST=test/mjsunit/regress/regress-1236.js
Review URL: http://codereview.chromium.org/6635041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-08 14:15:25 +00:00
lrn@chromium.org
0c74af3d0f
Fix Issue 1234.
...
Ensure that there is always enough bytes between consequtive calls in
unoptimized code to write a call instruction at the return points
without overlapping.
This handles the case where two return points were only four bytes
apart (because the latter call was to a register).
BUG=v8:1234
Review URL: http://codereview.chromium.org/6624091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-08 11:21:38 +00:00
sgjesse@chromium.org
c3f9e1dee2
Ensure the result is used for the remaining calls to SetElement
...
Now mark SetElement as must use result
The debugger runs inside its own context so there should be no setters hit. Which is the reason for the live-edit code asserting non-empty handles.
Review URL: http://codereview.chromium.org/6621042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-08 11:14:25 +00:00
fschneider@chromium.org
4b912c6af3
Fix assertion failure introduced by my previous change.
...
Review URL: http://codereview.chromium.org/6621068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-08 10:49:01 +00:00