lrn@chromium.org
17362b27ea
Changed RegExp parser to use a recursive data structure instead of stack-based recursion.
...
Shouldn't run out of stack space while parsing deeply nested regexps.
Might be a little faster.
Review URL: http://codereview.chromium.org/149069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 08:18:35 +00:00
bak@chromium.org
3cb5fc56d2
M ic-arm.cc
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 08:00:51 +00:00
bak@chromium.org
99bea86c7a
Missing file from last change
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 06:58:56 +00:00
bak@chromium.org
6bc979e879
Improved code for megamorphic stub on ia32.
...
Review URL: http://codereview.chromium.org/150225
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 06:34:59 +00:00
iposva@chromium.org
c15df35204
- Cache on backtracking stack in the irregexp interpreter for future use.
...
Review URL: http://codereview.chromium.org/149131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 19:46:28 +00:00
christian.plesner.hansen@gmail.com
1e3bd893d3
Fixed test failures caused by enabling stack traces by default
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 15:30:03 +00:00
ager@chromium.org
465aadc8b6
Port %ClassOf() optimization to X64 and ARM.
...
Review URL: http://codereview.chromium.org/150226
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 14:17:10 +00:00
christian.plesner.hansen@gmail.com
89b77643e9
Enable capture of the top of the stack on error instantiation.
...
Performance impact on v8 benchmarks seems limited. Will be backed out
if chrome performance regresses.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 12:26:31 +00:00
whesse@chromium.org
da1327e088
X64: Align start of remembered set to a 4-byte boundary
...
Review URL: http://codereview.chromium.org/151198
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 11:49:39 +00:00
bak@chromium.org
35f86b0a61
Template instantiations for Windows build.
...
Review URL: http://codereview.chromium.org/150221
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 10:59:34 +00:00
kasperl@chromium.org
22231d4703
Fix crash when calling non-function globals.
...
Review URL: http://codereview.chromium.org/151199
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 10:51:46 +00:00
bak@chromium.org
70f67d6ec5
Reverted change to ASSERT is void Dictionary<Shape, Key>::SetEntry.
...
Review URL: http://codereview.chromium.org/150212
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 08:07:56 +00:00
whesse@chromium.org
1058f300b1
X64: Move remembered set to a safe location on x64 platform.
...
Review URL: http://codereview.chromium.org/151148
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 07:48:05 +00:00
whesse@chromium.org
2ddf3301da
X64: Implement InstanceofStub. Prohibit zero-size code objects.
...
Review URL: http://codereview.chromium.org/151142
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 07:09:49 +00:00
bak@chromium.org
9aa0f380a6
Fixed arm/mac errors and presubmitting 2324.
...
Review URL: http://codereview.chromium.org/151193
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 06:50:43 +00:00
kasperl@chromium.org
1e88965d04
Prepare to push version 1.2.11 to trunk.
...
Review URL: http://codereview.chromium.org/150209
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 06:31:57 +00:00
ager@chromium.org
b95dbc3fdd
Make global variable initialization consistent with Firefox and Safari
...
behavior. Only force the introduction of a variable directly on the
global object if there is an explicit initial value in a variable
declaration.
BUG=http://crbug.com/12548
Review URL: http://codereview.chromium.org/151191
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-02 06:28:37 +00:00
ager@chromium.org
e75a173ff7
Revert r2324 until we can fix build and test errors.
...
TBR=bak@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 16:49:54 +00:00
bak@chromium.org
5cbb209425
Removed virtual behavior from Dictionaries.
...
Review URL: http://codereview.chromium.org/150168
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 15:38:25 +00:00
feng@chromium.org
9518261f2b
Fix the snapshotter when ENABLE_DEBUGGER_SUPPORT is off.
...
Review URL: http://codereview.chromium.org/151136
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 15:36:28 +00:00
antonm@chromium.org
05ccaa41ef
Ignore interceptors with no getters when doing any kind of read.
...
Review URL: http://codereview.chromium.org/150164
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 15:06:46 +00:00
kasperl@chromium.org
35137dd8f9
Always scavenge when doing GCs.
...
Review URL: http://codereview.chromium.org/151149
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 13:20:09 +00:00
whesse@chromium.org
e7e3f03504
X64: Add Math.random, fix UnarySubStub
...
Review URL: http://codereview.chromium.org/151077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 11:59:10 +00:00
kasperl@chromium.org
6cfc5f1ef9
Treat the builtins object like other global objects (with
...
cells in old space for properties) and avoid allocating tons
of unused properties in new space when creating new contexts.
Review URL: http://codereview.chromium.org/151146
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 11:44:37 +00:00
erik.corry@gmail.com
70331f67f9
ARM: Don't always go into the runtime system just because a
...
mul gave zero.
Review URL: http://codereview.chromium.org/151144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 11:32:08 +00:00
sgjesse@chromium.org
25405ddd9c
Handle JavaScript accessors on the global object.
...
With the new representation of the global object adding JavaScript accessors for a property after global inline caches was created for that property did not work property as the inline caches did not take the JavaScript accessor information (fixed array with two elements) that could be present in a global object property cell into account.
This is now fixed by changing the map for a global object when a JavaScript accessor is defined on it.
BUG=394
TEST=test\mjsunit\regress\regress-394.js
Review URL: http://codereview.chromium.org/150162
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 11:20:33 +00:00
mikhail.naganov@gmail.com
10489497c5
Fix presubmit error.
...
TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/150158
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 09:11:33 +00:00
mikhail.naganov@gmail.com
8318f5e5f1
Reimplement profiler sampler on Mac OS X to get it working under Chromium.
...
Previous implementation of sampler for OS X was copied from the Linux one. But BSD (OS X) and Linux has a very important difference in signal handling. LinuxThreads doesn't support the notion of process-directed signals. So, the SIGPROF signal was directed to the thread that installed the handler---the V8 thread. But on BSD, signal handling is implemented according to POSIX spec, where process-directed signal is to be handled by an arbitrary selected thread. By a coincidence, in V8's sample shell and in Chromium's test shell, V8's thread was picked almost every time, so sampling seemed working. But not in case of Chromium.
So, I've changed the implementation of profiler sampler to use the same scheme as on Windows---a dedicated thread with high priority is used to periodically pause and sample V8's thread.
Review URL: http://codereview.chromium.org/147150
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-01 08:46:59 +00:00
iposva@chromium.org
65e71082d5
- Avoid allocating an overly large stack frame in the irregexp
...
interpreter.
Review URL: http://codereview.chromium.org/151119
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 22:36:35 +00:00
erik.corry@gmail.com
3652b8212f
Add missing cases. Thanks to polarjs for bug 393.
...
Review URL: http://codereview.chromium.org/151112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 20:57:44 +00:00
feng@chromium.org
3bf1af0916
Fix the redness on Flexo.
...
/auto/JavaScriptV8/flexo/linux64/v8/src/x64/stub-cache-x64.cc:0: One or more unexpected \r (^M) found;better to use only a \n [whitespace/newline] [1]
Review URL: http://codereview.chromium.org/150121
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 19:02:59 +00:00
erik.corry@gmail.com
5d5cb0bfa8
Young space should be same size on snapshot builder and snapshot users
...
because this gets backed into the generated code.
Review URL: http://codereview.chromium.org/151083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 17:34:41 +00:00
erik.corry@gmail.com
ea3b18919e
We have to be sure to generate a relocatable instruction when
...
handling external references before a heap serialization.
Review URL: http://codereview.chromium.org/151080
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 16:35:42 +00:00
sgjesse@chromium.org
20165a648e
Fixed X64 compilation.
...
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/150103
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 14:58:33 +00:00
sgjesse@chromium.org
92bb897081
Tweaks to global object inline cache code.
...
Remove the check for deleted properties in the global load inline cache if the property is known to be read only.
Propegate the in loop flag for the global call inline cache.
Changed the propagation of the code flags in the call stub compiler to compute these the same way for all types of call stubs and assert that the flags for the generated code is the same as those used for the cache lookup.
Addressed a few comments from previous review in test-api.cc.
Review URL: http://codereview.chromium.org/150101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 14:07:29 +00:00
erik.corry@gmail.com
cea9476cf0
More changes to make the simulator run code that is for the ARM5 snapshot.
...
Review URL: http://codereview.chromium.org/150100
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 13:38:40 +00:00
antonm@chromium.org
9110beb772
Don't do a second lookup as we have it already.
...
Review URL: http://codereview.chromium.org/149007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 12:29:45 +00:00
whesse@chromium.org
3d065ccebe
X64: Make lazy arguments objects work
...
Review URL: http://codereview.chromium.org/151075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 12:16:47 +00:00
whesse@chromium.org
137f61b85a
X64: Implement unary subtraction, ObjectPair. 350 tests still fail.
...
Review URL: http://codereview.chromium.org/150093
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 12:11:21 +00:00
lrn@chromium.org
df135415ea
X64: Fix bad value in stack layout constants.
...
Remove references to Array:kHeaderSize.
Review URL: http://codereview.chromium.org/150098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 11:09:57 +00:00
christian.plesner.hansen@gmail.com
118a2ccc8e
When Error.collectStackTraces is set to true all new instances of
...
Error, ReferenceError, etc. are given a stack property that gives a
stack trace. Here's an example stack trace:
ReferenceError: FAIL is not defined
at Constraint.execute (deltablue.js:527)
at Constraint.recalculate (deltablue.js:426)
at Planner.addPropagate (deltablue.js:703)
at Constraint.satisfy (deltablue.js:186)
at Planner.incrementalAdd (deltablue.js:593)
at Constraint.addConstraint (deltablue.js:164)
at Constraint.BinaryConstraint (deltablue.js:348)
at Constraint.EqualityConstraint (deltablue.js:517)
at chainTest (deltablue.js:809)
at deltaBlue (deltablue.js:881)
at deltablue.js:888
If Error.prepareStackTrace holds a function this function is used to
format the stack trace, for instance allowing code generators to
customize the way stack traces are reported to make them easier to
process.
Next step: performance measurements to see if it is feasible to turn
this on by default.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 11:08:37 +00:00
sgjesse@chromium.org
a54a4ada5c
Changed the global object representation.The global object is now always in dictionary (slow) mode with each of its properties stored in a cell object. A cell object has one field containing the actual value for the property. Inline caches for access to global properties which uses direct to the cell are now created for load, store and call to properties of the global object. When properties of the global object are deleted the cell for that property is kept with an indcation of that the property is deleted.Added counters to track the use of the global property inline caches.Added additional information on IC's in the disassembler.
...
Review URL: http://codereview.chromium.org/151019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-30 10:05:36 +00:00
feng@chromium.org
9f252dad52
Workaround a gcc 4.4 bug.
...
Gcc generates wrong vtable entries for certain code pattern. The change in heap.cc has detailed explanation.
Review URL: http://codereview.chromium.org/147022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 21:15:03 +00:00
iposva@chromium.org
f9dc709c72
- Add a "#error Unsupported target architecture." where needed. A chain of
...
platform dependent ifdefs is useless if it does not include an error like
this. You will end up searching for the failure in all the wrong places.
Review URL: http://codereview.chromium.org/150026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 17:07:30 +00:00
whesse@chromium.org
a7c7d67d3a
X64: Remove temporary compiler and assembler tests, now that shell runs.
...
Review URL: http://codereview.chromium.org/151022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 15:04:24 +00:00
erik.corry@gmail.com
da61eb8b1e
Fix build on x64 after compare stub change.
...
Review URL: http://codereview.chromium.org/150022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 14:23:33 +00:00
erik.corry@gmail.com
c9e004a808
Add a compare stub on ARM.
...
Review URL: http://codereview.chromium.org/151003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2295 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 13:52:13 +00:00
bak@chromium.org
829146e2ea
Replaced DateFromTime and isNaN with macro calls in date code.
...
Review URL: http://codereview.chromium.org/150021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 12:41:18 +00:00
kasperl@chromium.org
f1ffd50257
Optimize %ClassOf() on IA-32 and use it instead of the
...
custom %HasXXXClass() calls.
Review URL: http://codereview.chromium.org/151018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 10:45:16 +00:00
erik.corry@gmail.com
4a30e3f58e
* Add missing imul instruction on Intel.
...
* Fix incorrect signedness in disassembly of umull/mull on ARM.
* Fix incorrect register order in disassembly of umull/mull.
* Fix incorrect assembly of umull on ARM.
* Remove retroactively obsoleted restriction on choice of
registers in mul instructions on ARM.
Review URL: http://codereview.chromium.org/150002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 09:32:06 +00:00
kasperl@chromium.org
a1622491af
Optimize %IsConstructCall() on IA-32.
...
Review URL: http://codereview.chromium.org/150018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 08:14:06 +00:00
ager@chromium.org
14d126d300
Prepare push of version 1.2.10 to trunk.
...
Review URL: http://codereview.chromium.org/151015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 08:12:02 +00:00
whesse@chromium.org
49474f0408
X64: Fix error in running handlers, disable TakeValue optimization for count operators.
...
Review URL: http://codereview.chromium.org/150007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 08:11:35 +00:00
whesse@chromium.org
29bcccb4e0
X64 Implementation: Implement Generate_Function(Call,Apply)
...
Review URL: http://codereview.chromium.org/147205
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 08:04:39 +00:00
bak@chromium.org
b9995e035c
Changed HashTable::EnsureCapacity to gurantee at least 50% of the entries are free (up from 25%).
...
This reduces the mount of probing in large hash tables.
Review URL: http://codereview.chromium.org/150017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 07:19:17 +00:00
kasperl@chromium.org
3ae01ab8ef
Fix issue 392 by disabling the TakeValue optimization for
...
access to the arguments object.
Review URL: http://codereview.chromium.org/150016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-29 06:20:52 +00:00
whesse@chromium.org
e99f056a43
X64 implementation: Store to lookup slots
...
Review URL: http://codereview.chromium.org/147203
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-26 13:52:05 +00:00
bak@chromium.org
252514ca23
- Inlined the code for make simple cons strings.
...
- Simplify generated code for Runtime_** functions.
Review URL: http://codereview.chromium.org/149068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-26 13:09:50 +00:00
whesse@chromium.org
0746d93014
X64 Implementation: Correct type, add VisitCallEval
...
Review URL: http://codereview.chromium.org/149066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-26 11:35:42 +00:00
whesse@chromium.org
1ad12de4ba
X64 Implementation: Implement floating-point compare
...
Review URL: http://codereview.chromium.org/147201
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-26 11:01:13 +00:00
lrn@chromium.org
a51771ddae
X64: Break and continue.
...
Review URL: http://codereview.chromium.org/147198
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-26 10:59:04 +00:00
whesse@chromium.org
b64f6b9287
X64 implementation: Add arguments object to context when needed.
...
Review URL: http://codereview.chromium.org/149063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-26 08:38:48 +00:00
lrn@chromium.org
5b5f528a4f
X64: Added support for "with" and "switch".
...
Review URL: http://codereview.chromium.org/147197
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-26 08:29:01 +00:00
lrn@chromium.org
f131788739
X64: Added for-in
...
Review URL: http://codereview.chromium.org/149005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-26 07:41:19 +00:00
whesse@chromium.org
8608e1bb4f
X64 Implementation: Correct error with initializer blocks
...
Review URL: http://codereview.chromium.org/149008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-26 07:27:06 +00:00
ager@chromium.org
681ab6e30c
Reintroduce recording of source position that was lost on ia32 for
...
some reason.
Review URL: http://codereview.chromium.org/147147
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-25 12:20:15 +00:00
whesse@chromium.org
d7e86fc341
X64 implementation: Add some inline runtime functions.
...
Review URL: http://codereview.chromium.org/149004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-25 12:06:30 +00:00
lrn@chromium.org
fa03347706
X64: Count operations (increment, decrement)
...
Review URL: http://codereview.chromium.org/149002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-25 11:48:27 +00:00
ager@chromium.org
a5331d6426
Fix instance type check in apply optimization.
...
We accidentally compared a map address with an instance type. This
fix additionally avoids an upper bounds check that is not needed.
Review URL: http://codereview.chromium.org/149003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-25 11:35:03 +00:00
erik.corry@gmail.com
617fa455a6
* Fix compile errors on Android.
...
Review URL: http://codereview.chromium.org/149001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-25 10:51:34 +00:00
whesse@chromium.org
14397182f6
X64 implementation: VisitLoop and StackCheck
...
Review URL: http://codereview.chromium.org/147143
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-25 10:39:28 +00:00
ager@chromium.org
e3fa53edef
Make sure that message reporting works when the builtin string and
...
array functions are overwritten.
Review URL: http://codereview.chromium.org/147142
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-25 10:27:36 +00:00
whesse@chromium.org
08d098e082
X64 implementation: VisitUnaryOperation, configure dtoa for X64 platform.
...
Review URL: http://codereview.chromium.org/147141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-25 10:15:50 +00:00
antonm@chromium.org
09df6ed2ae
Do not use common INFINITY name as it might be overriden by some other include file. Let's use
...
project specific name.
Review URL: http://codereview.chromium.org/146096
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 17:25:46 +00:00
whesse@chromium.org
4c2a378842
X64 implementation: GenerateAdaptor builtin.
...
Review URL: http://codereview.chromium.org/146085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 15:02:46 +00:00
whesse@chromium.org
cc271fe751
X64 implementation: Start compiling native functions.
...
Review URL: http://codereview.chromium.org/146083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 13:48:09 +00:00
whesse@chromium.org
a367522a1a
X64 implementation: comparison operations.
...
Review URL: http://codereview.chromium.org/146082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 13:46:07 +00:00
antonm@chromium.org
ecfd1f1017
Attempt to reduce performance penalty for logging and profiling
...
Review URL: http://codereview.chromium.org/125141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 13:09:34 +00:00
lrn@chromium.org
76ac8bc73b
Removed static type inference and add a dynamic test for string addition.
...
The complexity of static type inference never really paid off, and as an
analysis it didn't fit well with codegen frame propagation.
Review URL: http://codereview.chromium.org/146077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 12:46:00 +00:00
lrn@chromium.org
1f5a905302
X64: Implemented LikelySmiBinaryOperation
...
Review URL: http://codereview.chromium.org/146081
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 12:12:17 +00:00
antonm@chromium.org
0402951844
A helper function to speed up creation of V8 wrappers for DOM Nodes.
...
Review URL: http://codereview.chromium.org/141044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 11:52:52 +00:00
ager@chromium.org
1a12862c9a
Revert attempt to optimize away the allocation of a temporary.
...
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/147076
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 08:56:55 +00:00
ager@chromium.org
5b4bacdd69
x64 code generation for construct calls, declaring global variables
...
and for runtime calls.
We could not handle functions with no explicit return statement. I
added support for that as well. The place was hard to find because
code was left out from the codegenerator with no TODO comment. We
need to make sure to comment if we leave out code when porting
something. :-)
Review URL: http://codereview.chromium.org/146029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 08:28:42 +00:00
kasperl@chromium.org
f66ea38c0b
Allocate arguments object on-demand instead of at function entry.
...
This allows Function.prototype.apply to not allocate the objects
and copy the arguments directly from the stack.
Review URL: http://codereview.chromium.org/147075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-24 08:01:38 +00:00
lrn@chromium.org
69764a5d2a
X64: Addition binary operation.
...
Review URL: http://codereview.chromium.org/146022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-23 11:26:05 +00:00
whesse@chromium.org
e61d1c7380
X64 implementation: Read compiler tests from test.js.
...
Review URL: http://codereview.chromium.org/146024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-23 11:11:38 +00:00
yurys@chromium.org
0feda5a2e1
Introduce an argument that allows to include some data neccessary for displaying collapsed scope variables values in graphical debugger.
...
When request has 'inlineRefs' option simple type values will be written in the response directly. Variables of other types in addition to 'ref' property containing the value handle will contain some type information.
Review URL: http://codereview.chromium.org/140061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-23 09:53:18 +00:00
whesse@chromium.org
c19fde4f1c
X64 implementation: Change argument to relocator to take a 64-bit delta. Change maximum relocation info encoding length.
...
Review URL: http://codereview.chromium.org/146021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-23 09:50:51 +00:00
ager@chromium.org
1b6738e2c2
Prepare to push V8 version 1.2.9 to trunk.
...
Review URL: http://codereview.chromium.org/146017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-23 07:16:22 +00:00
ager@chromium.org
768dc546d2
Remove unused variable from keyed stores to fix 64-bit release mode.
...
The variable is used for the inlined version of stores which has not
yet been implemented.
Review URL: http://codereview.chromium.org/146016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-23 06:24:37 +00:00
ager@chromium.org
094d17ffeb
x64: Generate code for loading from, storing to and calling properties.
...
Review URL: http://codereview.chromium.org/141056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-23 06:12:14 +00:00
ager@chromium.org
ad970953f8
Implement code generation for conditional expressions and regexp
...
literals. Regexp literals will not really work before we can
bootstrap, but the right code is being called with the right
arguments.
Finish implementation of object literals. We can now call through the
StoreIC_Miss stub into the runtime system to do stores.
Restore comment that I accidentally removed in my last commit.
Review URL: http://codereview.chromium.org/140068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 19:25:41 +00:00
erik.corry@gmail.com
a874dcdd5d
Fix non-Intel regexp that needed the number of registers in the
...
regexp implementation before the regexp had been compiled and the
register count calculated.
Review URL: http://codereview.chromium.org/141047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 18:37:57 +00:00
ager@chromium.org
7b3c9af918
Fix lint issue.
...
TBR=bak@chromium.org
Review URL: http://codereview.chromium.org/140066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 15:19:47 +00:00
ager@chromium.org
8de05cef85
Enable code generation for array literals.
...
Introduce macro assembler support for pushing heap-object handles and
for comparing a register to a heap-object handle.
Cleanup: Remove some code that was needlessly commented out. Added
TODO's for code that was commented out (where we do not hit an
UNIMPLEMENTED).
Review URL: http://codereview.chromium.org/140060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 15:14:20 +00:00
whesse@chromium.org
dcd25643bd
X64 implementation: Correct kTargetAddrToReturnAddrDist value for x64.
...
Review URL: http://codereview.chromium.org/140063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 14:46:33 +00:00
bak@chromium.org
ab3d1e1a43
Added descriptor lookup cache to eliminate some search overhead.
...
Reduced the KeyedLookupCache length to 64.
Review URL: http://codereview.chromium.org/141046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 14:29:35 +00:00
whesse@chromium.org
1ae3423af8
X64 implementation: Emit correct merge code for virtual frames at CFG merges.
...
Review URL: http://codereview.chromium.org/141043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 14:22:39 +00:00
yurys@chromium.org
d432b5e0e2
Sending scope types and object refs costs nothing but would save us request that should be send to retrieve scopes informations for each frame in 'backtrace' response.
...
Review URL: http://codereview.chromium.org/131107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 13:14:47 +00:00
lrn@chromium.org
2dd9717c4b
Fix bug in static type inference for loops.
...
Review URL: http://codereview.chromium.org/140058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 12:36:01 +00:00
erik.corry@gmail.com
2b71d0a83e
Fix regexp bug reported on iit.edu.
...
Review URL: http://codereview.chromium.org/141042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 12:29:27 +00:00
yurys@chromium.org
46165adb9a
After compile event should be sent even if there is a provisional breakpoint out of its lines range.
...
Review URL: http://codereview.chromium.org/141041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 11:56:36 +00:00
sgjesse@chromium.org
3ce873c351
Refactor the handling of generations in the compilation cache.
...
Add generations to the compilation cache for eval and regexp. The number of generations for these are set to two.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/140056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 11:12:51 +00:00
ager@chromium.org
59cd4dc572
X64: Enable lazy compilation and add code generation for simple object
...
literals.
Review URL: http://codereview.chromium.org/141040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 10:54:11 +00:00
whesse@chromium.org
83ad579ac5
X64 implementation: Add high_bit() and low_bits() to register methods.
...
Review URL: http://codereview.chromium.org/141032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 08:17:44 +00:00
bak@chromium.org
c078783c36
Implemented a ContextSlotCache for compiled code.
...
Review URL: http://codereview.chromium.org/141038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 08:09:57 +00:00
whesse@chromium.org
4f6a4a8339
X64 implementation: if-then-else
...
Review URL: http://codereview.chromium.org/141030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 08:08:47 +00:00
whesse@chromium.org
74ddab9d94
Fix issue 386, a bug in JSObject::ReplaceSlowProperty with constant transitions.
...
Review URL: http://codereview.chromium.org/141031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 07:41:15 +00:00
mikhail.naganov@gmail.com
44936ad32d
Eliminate double offsetting of line numbers in profiler.
...
I didn't noticed that in r1481 GetScriptLineNumber was changed to perform line numbers offsetting by itself.
Review URL: http://codereview.chromium.org/131102
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-22 07:22:09 +00:00
erik.corry@gmail.com
e2a01ed4fb
Fix regexp bug reported by Ian where [6-9] would match any digit.
...
Review URL: http://codereview.chromium.org/140021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-20 17:57:09 +00:00
whesse@chromium.org
5831cc70e8
X64 implementation: Local vars, nested function calls, assignment statements
...
Review URL: http://codereview.chromium.org/131050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-19 10:16:52 +00:00
whesse@chromium.org
8ad2edb6b5
Clarify precedence of operations involving bitwise and(&) in x64/assembler.
...
Review URL: http://codereview.chromium.org/131099
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-19 09:12:20 +00:00
kasperl@chromium.org
5f5fbd4e4a
Allow functions to have custom construct stubs that are called
...
when the function is instantiated.
Review URL: http://codereview.chromium.org/132063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-19 07:36:16 +00:00
bak@chromium.org
7dab62ee96
Changed allocation to allow large objects to be allocated in new space.
...
This avoids back-to-back mark-sweep collections.
Review URL: http://codereview.chromium.org/136001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-18 14:06:36 +00:00
sgjesse@chromium.org
531a6db569
Fixed exception in debugger scripts request.
...
When collecting the result for a scripts request check that scripts compiled through eval actually have a script for the function they where eval'ed in before adding that informaiton to the response.
BUG=http://crbug.com/14388
TEST=none
Review URL: http://codereview.chromium.org/135001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-18 14:04:04 +00:00
whesse@chromium.org
da49c0f8a2
X64 implementation: Add function literals and function calls.
...
Review URL: http://codereview.chromium.org/131029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-18 11:46:38 +00:00
mikhail.naganov@gmail.com
a1a962f65e
Implemented processing of compressed log files.
...
- fixed address delta calculation;
- code creations are also compressed to be in sync with other events;
- factored out a base class from TickProcessor to reuse code in DevTools profiler.
Review URL: http://codereview.chromium.org/125256
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-18 07:59:13 +00:00
erik.corry@gmail.com
5f77401b0c
Inline mod for integer powers of 2.
...
Review URL: http://codereview.chromium.org/126293
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-18 07:33:44 +00:00
kasperl@chromium.org
cbda639253
Speculative fix for computing Math.pow(2, -1074) on win32 where
...
the overloaded pow(double, int) function from math.h produces the
wrong answer.
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/131022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-18 05:47:31 +00:00
iposva@chromium.org
529c3a0a9f
Make some small Mac-specific modifications to V8 to make it work on MacOS X 10.4
...
rather than just 10.5 and up.
1: Set the right compile flags and predefines to get backward compatible Unix
system calls.
2: Explicitly weak import the functions in execinfo.h and check at runtime to
see if that library loaded before calling backtrace().
Original change submitted by maf@google.com and reviewed at http://codereview.chromium.org/126241 .
Review URL: http://codereview.chromium.org/132002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-18 00:22:52 +00:00
erik.corry@gmail.com
bc1aa93449
Don't strength reduce divisions by 1 or 2 as they can often be
...
handled by an optimistic inline idiv.
Review URL: http://codereview.chromium.org/125258
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-17 19:26:01 +00:00
kasperl@chromium.org
ac19e4b29b
Update Mozilla test expectations to better match the new handling
...
of tests that time out.
Review URL: http://codereview.chromium.org/126274
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-17 13:57:44 +00:00
sgjesse@chromium.org
f36c8574c9
Fix unload debugger.
...
Add a missing handle scope when clearing the debug message handler.
BUG=none
TEST=cctest/test-debug/DebuggerUnload
Review URL: http://codereview.chromium.org/126271
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-17 13:14:51 +00:00
whesse@chromium.org
310fd67aea
X64 Implementation: Make codegen load literals and assign to local variables.
...
Review URL: http://codereview.chromium.org/126198
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-17 12:16:59 +00:00
lrn@chromium.org
e9b13d9c39
X64: Implementation of a bunch of stubs, and some new opcodes.
...
Review URL: http://codereview.chromium.org/125185
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-17 11:50:33 +00:00
ager@chromium.org
a7c970c529
Avoid needless creation of handles in regexp runtime routines and use
...
the stack instead.
Review URL: http://codereview.chromium.org/126268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-17 11:44:25 +00:00
kasperl@chromium.org
40213b131f
Optimize special cases of Math.pow().
...
Review URL: http://codereview.chromium.org/125245
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-17 11:06:32 +00:00
ager@chromium.org
885259ffab
Inline fast case of the method that ensures that an array has a
...
certain size.
Review URL: http://codereview.chromium.org/126265
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-17 10:55:58 +00:00
bak@chromium.org
1155ba8e8e
Reimplemented the KeyedLookupCache to speed up access.
...
Review URL: http://codereview.chromium.org/126262
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-17 06:07:49 +00:00
bak@chromium.org
977ad65073
- Changed fast case for computing object size based on usage histogram.
...
- Added fast case to String.prototype.split (Mads's idea).
- Made minor other optimizations in String.prototype.split.
Review URL: http://codereview.chromium.org/126201
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 13:31:31 +00:00
kasperl@chromium.org
01216a069b
Add fast negative checks for symbol equality: If we're comparing
...
two symbols, they're only equal if the objects are identical.
Review URL: http://codereview.chromium.org/125184
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 12:54:07 +00:00
erik.corry@gmail.com
52dfeca5f2
Fix profiling for shared libraries on Linux loaded at negative addresses
...
(Android does this). Fix logging for executable mappings that have no
file associated. Be more consistent with use of uintptr_t.
Review URL: http://codereview.chromium.org/125183
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 12:52:02 +00:00
sgjesse@chromium.org
78a8cdfbe8
Added utility scripts for running oprofile in tools/oprofile.
...
To profile running the JavaScript file test.js using the V8 release mode shell (assuming it is build passing prof=oprofile to the SCons build). The following commands can be used:
$ tools/oprofile/start
$ tools/oprofile/run test.js
$ tools/oprofile/report | less
$ tools/oprofile/annotate | less
$ tools/oprofile/shutdown
Here is a summary of the commands.
For all the commands taking an executable the executable is expected to be a binary using V8. If no executable is specified the release mode V8 shell is assumed.
By default the --session-dir=/tmp/oprofv8 is passed to all oprofile commands. This walue can be changed by setting environment variable OPROFILE_SESSION_DIR.
When using the defaulf executable (V8 shell in release mode) it is assumed to be located in ../.. relative from the oprofile utility scripts. This default location can be overridden using the V8_SHELL_DIR environment variable.
start
-----
Start the oprofiling daemon.
run [executable] [parameters]
-----------------------------
Profile a V8 executable. Running this will reset oprofile samples, run the command and do an oprofile dump to flush samples and write ELF binaries for the generated code. The parameters are passed to the executable together with the --oprofile option.
report [executable] [parameters]
--------------------------------
Print the report for a profile run. The parameters are passed to opreport. E.g report --callgraph.
annotate [executable] [parameters]
----------------------------------
Print annotated assembly for a profile run. The parameters are passed to opannotate. E.g annotate -threshold 1.
reset
-----
Reset oprofile samples.
dump
----
Flush oprofile samples and write ELF binaries for the generated code.
shutdown
--------
Shutdown oprofile daemon.
Added a warning which is printed if option --oprofile is passed to a V8 which has not been compiled with oprofile support.
Review URL: http://codereview.chromium.org/125181
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 12:08:59 +00:00
mikhail.naganov@gmail.com
02b7894f95
Fix issue 380.
...
Don't infer name for a function if a result of its call is assigned to a variable / property. E.g., in this case:
a = function() { ... } ();
the function must remain anonymous because 'a' doesn't receive a function reference, but instead a result of its call.
BUG=http://code.google.com/p/v8/issues/detail?id=380
TEST=cctest/test-func-name-inference/Issue380
Review URL: http://codereview.chromium.org/126195
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 11:47:00 +00:00
antonm@chromium.org
c34c406dae
Review URL: http://codereview.chromium.org/126158
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 10:06:24 +00:00
kmillikin@chromium.org
73fe551048
Remove the unused support for jump-table switch statements.
...
Review URL: http://codereview.chromium.org/126193
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 09:50:37 +00:00
erik.corry@gmail.com
824140bde0
Avoid going into runtime system for round-towards-zero operations on ARM.
...
Review URL: http://codereview.chromium.org/126192
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 09:49:29 +00:00
ager@chromium.org
5c7572985b
Prepare to push V8 version 1.2.8 to trunk.
...
Review URL: http://codereview.chromium.org/125177
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 09:33:17 +00:00
kasperl@chromium.org
991ec9a777
Make sure to invoke valueOf methods on both operands of & and >> -- even
...
when the left operand lets us shortcut the computation.
Review URL: http://codereview.chromium.org/125176
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 08:29:31 +00:00
whesse@chromium.org
7358e1980c
X64 implementation: Test Compiler::Compile by compiling and running a function.
...
Review URL: http://codereview.chromium.org/126191
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 08:25:08 +00:00
whesse@chromium.org
fb03c8414f
X64 platform: Add more register allocator functions.
...
Review URL: http://codereview.chromium.org/125131
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 08:24:42 +00:00
kasperl@chromium.org
2acf2ed80e
Improve DST offset computation performance.
...
Review URL: http://codereview.chromium.org/126188
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 06:52:04 +00:00
bak@chromium.org
03356a0e60
Implemented fast case for NumberToString where the result is a single character string.
...
Review URL: http://codereview.chromium.org/126189
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-16 06:44:09 +00:00
sgjesse@chromium.org
97482a43bf
Fix disassembly output from oprofile.
...
Only send the inscructions part of a code object to oprofile when reporting dynamically generated code. Before the code object header was also reported to oprofile as code which caused strange disassembly output when using opannotate.
Review URL: http://codereview.chromium.org/125126
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 16:33:28 +00:00
mikhail.naganov@gmail.com
91241273cb
Fixed pointer vs. va_list overloading problem occuring in gcc 3.3 (used for ARM build).
...
It seems that when calling a method that has two overloaded versions like this:
f(char* format, ...)
f(char* format, va_list args)
with a second pointer argument: f("format", pointer), the second version is picked up.
I've found a description of a similar issue here: http://bugs.gentoo.org/63112
So, to resolve this ambiguity, I've named such LogMessageBuilder's Append functions differently.
Review URL: http://codereview.chromium.org/125125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 15:49:03 +00:00
ager@chromium.org
00107efb02
Use the correct version of CallRuntime in the arm code generator.
...
This fixes assertion failures in debug mode tests.
Review URL: http://codereview.chromium.org/126128
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 14:27:57 +00:00
kasperl@chromium.org
7f27314644
Fix stack alignment issue with the new fast Math.random() code
...
under Mac OS.
Review URL: http://codereview.chromium.org/125123
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 13:17:09 +00:00
ager@chromium.org
c1d0401b3d
Two small fixes for the Math.sin and Math.cos optimizations.
...
Review URL: http://codereview.chromium.org/125122
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 12:55:48 +00:00
ager@chromium.org
225a6a82b0
Optimize Math.sin and Math.cos by avoiding runtime calls.
...
Review URL: http://codereview.chromium.org/125121
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 12:06:48 +00:00
erik.corry@gmail.com
0fcf27bcb1
Make young space smaller on ARM.
...
Review URL: http://codereview.chromium.org/126121
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 11:44:04 +00:00
erik.corry@gmail.com
e44d30e284
Optimize constant divisions by powers of 2.
...
Review URL: http://codereview.chromium.org/126116
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 10:27:52 +00:00
kasperl@chromium.org
f36f5f2331
Optimize the slow case implementations of bit operations by
...
avoiding excessive ToNumber calls and by dealing with NaNs
in BIT_AND and SAR.
Review URL: http://codereview.chromium.org/125118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 09:49:17 +00:00
mikhail.naganov@gmail.com
3a3a6924a1
Involve more log compression techniques.
...
Code addresses are now written as an offset from the previous address for ticks, code move and delete events. Employed backreference and RLE compression for code move and delete events. This gives additional 30% log size reduction for benchmarks run w/o snapshot.
Overall compression results (compared with the revision of V8 having no compression):
- V8: 70% size reduction for benchmarks run w/o snapshot (for reference, gzip gives 87%)
- Chromium: 65% size reduction for public html version of benchmarks (v4) (for reference, gzip gives 90%)
The one obvious opportunity for improving compression results in Chromium is to compress URLs of scripts.
Review URL: http://codereview.chromium.org/125114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 09:37:50 +00:00
kasperl@chromium.org
4cc3fe04a1
Avoid sign issues with the fast case code for Math.floor().
...
Review URL: http://codereview.chromium.org/126115
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 08:27:38 +00:00
kasperl@chromium.org
a20757d7dc
Fix x64 build.
...
Review URL: http://codereview.chromium.org/126114
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 08:25:08 +00:00
kasperl@chromium.org
ce7cdbd799
Change the implementation of Math.random to use George
...
Marsaglia's multiply-with-carry instead of mixing the
bits obtained from calling the system random() twice.
This seems to be a bit faster and gives a better
distribution than the system random() in particular on
Windows.
Review URL: http://codereview.chromium.org/126113
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 08:04:47 +00:00
ager@chromium.org
5cbcd53f8a
Fix memory leak in regexp macro assembler. If the buffer has been
...
expanded the macro assembler owns the buffer and needs to dispose it
in the destructor.
Review URL: http://codereview.chromium.org/126111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-15 06:27:33 +00:00
kmillikin@chromium.org
6ed860b7d6
Remove branching and binding with two arguments from the JumpTarget
...
class. Manually manage off-frame results at the two sites where they
were used.
Review URL: http://codereview.chromium.org/125048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-12 14:43:27 +00:00
lrn@chromium.org
8be7fd052e
X64: Call runtime function from JS stack frame.
...
Review URL: http://codereview.chromium.org/125049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-12 13:14:35 +00:00
lrn@chromium.org
d4cc50e165
X64: Remove restriction on using r12 as index register.
...
Review URL: http://codereview.chromium.org/126045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-12 12:29:01 +00:00
whesse@chromium.org
e2fdac39a4
Implement more of x64 register allocator.
...
Review URL: http://codereview.chromium.org/126043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-12 11:25:15 +00:00
kmillikin@chromium.org
b318835cdc
First round of JumpTarget simplification. Remove dead functions (jumps,
...
branches, and bind with more than two arguments). Remove unneeded
variable (the "watermark" on virtual frames).
Review URL: http://codereview.chromium.org/125045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-12 11:25:13 +00:00
ager@chromium.org
f706cfa30c
Fix debugger after inlined keyed store change.
...
Make sure that the IC is always hit when debugging and make sure to
restore the fast case when leaving the debugger.
Review URL: http://codereview.chromium.org/125044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-12 11:24:13 +00:00
bak@chromium.org
492705657a
Changed the expansion of new space to depend on how much has survived scavenge.
...
This replaces the fixed expansion policy based on number of scavenges.
Increased the max new space size to 8MB (only reserved space).
Increased the defalt new space size to 512KB.
Review URL: http://codereview.chromium.org/125046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-12 11:11:04 +00:00
sgjesse@chromium.org
63dced1331
Move the default return handling to please some versions of gcc.
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/125043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-12 10:25:05 +00:00
sgjesse@chromium.org
882614391f
Add scope chain information to the debugger.
...
For each frame it is now possible to request information on the scope chain. Each scope in the chain can have one of the types local, global, with and closure. For scopes of type global and with the mirror for the actual global or with object is available. For scopes of type local and closure a plain JavaScript object with the materialized content of the scope is created and its mirror is returned. Depending on the level of possible optimization the content of the materialized local and closure scopes might only contain the names which are actually used.
To iterate the scope chain an iterator ScopeIterator have been added which can provide the type of each scope for each part of the chain. This iterator creates an artificial local scope whenever that is present as the context chain does not include the local scope.
To avoid caching the mirror objects for the materialized the local and closure scopes transient mirrors have been added. They have negative handles and cannot be retrieved by subsequent lookup calls. Their content is part of a single response.
For debugging purposes an additional runtime function DebugPrintScopes is been added.
Added commands 'scopes' and 'scope' to the developer shell and fixed the dir command.
BUG=none
TEST=test/mjsunit/debug-scopes.js
Review URL: http://codereview.chromium.org/123021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-12 10:03:25 +00:00
mikhail.naganov@gmail.com
8c16bc13bc
Implement tick events compression in a log file.
...
Two techniques are involved:
- compress repeated line ends (common stack beginnings) by using back references;
- do RLE compression of repeated tick events.
This gives only 5% size reduction on benchmarks run, but this is because tick events are only comprise 10% of file size. Under Chromium winnings are bigger because long repeated samples of idleness are now compressed into a single line.
Tickprocessor will be updated in the next patch.
Review URL: http://codereview.chromium.org/123012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-11 14:08:34 +00:00
whesse@chromium.org
f1fcab31c2
X64 implementation starts using virtual frame and register allocators.
...
Review URL: http://codereview.chromium.org/123018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-11 13:51:46 +00:00
lrn@chromium.org
d39df3809c
X64: Create test JS-function and call it.
...
Review URL: http://codereview.chromium.org/123017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-11 13:17:46 +00:00
ager@chromium.org
a8507cb43d
Inline keyed stores if the code is in a loop and the key is likely to
...
be a smi.
The inlined version works for stores to JSArrays where the key is a
smi that is within bounds of the array and the value is either
constant or a smi so we can skip the write-barrier.
Review URL: http://codereview.chromium.org/122035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2144 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-11 13:17:26 +00:00
lrn@chromium.org
e797b865aa
X64: Adds zone scope before creating codegenerator for testing.
...
Review URL: http://codereview.chromium.org/122033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-11 11:21:10 +00:00
lrn@chromium.org
525b72a4d5
X64: Implemented InvokeFunction
...
Review URL: http://codereview.chromium.org/122030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-11 10:46:28 +00:00
whesse@chromium.org
594a30ef73
Add x64 implementation test support for assembler and code generator.
...
Review URL: http://codereview.chromium.org/123014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-11 10:03:51 +00:00
erik.corry@gmail.com
cf07b3141c
Fix fp code for mixed-endian ARM.
...
Review URL: http://codereview.chromium.org/119420
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 16:32:15 +00:00
whesse@chromium.org
2de98f8e55
Add statistics operations and long calls and jumps to x64 macro assembler.
...
Remove unimplemented instructions from x64 assembler. Add operand-size
suffixes to add, sub, inc, dec, and cmp.
Review URL: http://codereview.chromium.org/118380
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2139 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 15:53:46 +00:00
whesse@chromium.org
85720fc05e
Make JSObjects with both indexed interceptors and indexed accessors work safely.
...
Review URL: http://codereview.chromium.org/118499
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 15:33:31 +00:00
kmillikin@chromium.org
2d7d89d831
Get rid of the notion of "parameter pointer" that no longer exists in
...
the implementation but still lives on in comments and identifier
names.
Where it was used, it has been changed to "caller's stack pointer".
Review URL: http://codereview.chromium.org/118500
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 15:08:25 +00:00
kasperl@chromium.org
cbd31001ef
Re-land patch r2110.
...
TBR=antonm@chromium.org
Review URL: http://codereview.chromium.org/118501
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 14:45:46 +00:00
kmillikin@chromium.org
35b5aab3c7
Fix a bug when shifting left by zero. Ensure that the left operand is
...
writable (non-aliased) so it can be used for the result in the slow
case.
Review URL: http://codereview.chromium.org/118496
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 12:41:57 +00:00
whesse@chromium.org
bedff67b6e
Make Array.sort safely generic on JSObject types. Fix bug 346 http://code.google.com/p/v8/issues/detail?id=346
...
Review URL: http://codereview.chromium.org/119357
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 11:42:22 +00:00
erik.corry@gmail.com
8bd85d8c82
Add instanceof stub for ARM.
...
Review URL: http://codereview.chromium.org/119353
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 11:42:13 +00:00
erik.corry@gmail.com
b7d48f5807
A bunch of changes to speed up math on ARM.
...
* Identify heap numbers that contain non-Smi int32s and do bit
ops on them without calling the fp hardware or emulation.
* Identify results that are non-Smi int32s and write them into
heap numbers without calling the fp hardware or emulation.
* Do unary minus on heap numbers without going into the runtime
system.
* On add, sub and mul if we have both Smi and heapnumber inputs
to the same operation then convert the Smi to a double and do
the op without going into runtime system. This also applies
if we have two Smi inputs but the result is not Smi.
Review URL: http://codereview.chromium.org/119241
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 10:20:37 +00:00
lrn@chromium.org
13e548af1d
X64: Implement CEntryStub and JSEntryTrampoline.
...
Still some supporting functions missing.
Review URL: http://codereview.chromium.org/114085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 09:48:15 +00:00
kmillikin@chromium.org
94a122296d
Cleanup of ARM exception handlers. Remove the unused code and
...
parameter pointer slots. Change it so that the handler address no
longer points into the middle of the handler.
Review URL: http://codereview.chromium.org/119414
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 09:00:07 +00:00
kmillikin@chromium.org
f6aa7ce3ee
Change the IA32 stack handler layout so that the handler address does
...
not point into the middle of the handler. Also remove top-of-stack
caching from MacroAssembler::PushTryHandler.
Review URL: http://codereview.chromium.org/119358
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-10 08:01:30 +00:00
erik.corry@gmail.com
6b2a49ff83
* Modify simulator and ARM code generator to avoid swi
...
instructions. The intention is that the snapshots generated
by the simulator should be usable on the hardware. Instead of
swi instructions we generate a branch to a swi instruction that
is not part of the snapshot. The call/jump is patched up in
the same way as other external references when the snapshot
is deserialized. This only works for EABI targets: on old ABI
targets we still emit some instructions not supported by the
simulator (fp coprocessor instructions).
Review URL: http://codereview.chromium.org/119036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-09 09:26:53 +00:00
kmillikin@chromium.org
4a96feeef3
Change IA32's CodeGenerator::GenerateFastCharCodeAt to eagerly
...
allocate and spill registers, so that the register reference counts
and virtual frame are unchanged in the main body.
This eliminates a few sites of magic branching or binding of
JumpTarget with arguments.
Review URL: http://codereview.chromium.org/119302
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-09 07:44:09 +00:00
sgjesse@chromium.org
dc9670bcb4
Change locationFromPosition() and locationFromLine() to use a binary search to locate line numbers from position numbers. Modify test debug-sourceinfo.js to include more tests, including error conditions.
...
Patch by Matt Hanselman, see http://codereview.chromium.org/118371 .
BUG=213
TEST=test/mjsunit/debug-sourceinfo.js
Review URL: http://codereview.chromium.org/118425
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-09 07:03:21 +00:00
sgjesse@chromium.org
dc68e0f9bd
Activate the debugger in the developer shell earlier.
...
This will support breaking in debugger statements in JavaScript files read from the command line.
Review URL: http://codereview.chromium.org/113998
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-09 06:53:15 +00:00
kmillikin@chromium.org
0bfd850a26
Simplify the IA32 exception handler block by removing the unused code
...
pointer and parameter pointer slots.
Review URL: http://codereview.chromium.org/118383
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-08 14:39:50 +00:00
mikhail.naganov@gmail.com
d7cccf6b8d
Add log compression ability.
...
This is a trivial per-row compression:
- short aliases are introduced for events and code creation tags;
- in tick events, offsets are used instead of absolute addresses;
- removed 'code-allocation' event, as it seems not used.
The first two options are depend on the new flag: 'compress-log', which is off by default.
On benchmarks run w/o snapshot, this gives 45% log size reduction.
Review URL: http://codereview.chromium.org/119304
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-08 13:39:48 +00:00
ager@chromium.org
e665c09177
Prepare push of V8 version 1.2.7 to trunk. Now working on version 1.2.8.
...
Review URL: http://codereview.chromium.org/118378
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-08 11:03:04 +00:00
sgjesse@chromium.org
d498361c5f
Add more debugging information to scripts compiled through eval.
...
Scripts now have a compilation type which can be host, eval or JSON. Host scripts are compiled through the API, eval scripts are compiled through call to evan and JSON scripts are compiled as a result of calling JSON.parse.
For scripts scripts compiled through eval the JavaScript function in top of the stack and the pc offset into the code is stored in the script object. This makes it possible to calculate the source position of the eval call later when requested. This information can be obtained through the script mirror object and is part of the script mirror JSON serialization for the debugger protocol.
Moved the enumeration ScripType into class Script and remamed to Type. The new compilation type enumeration is also inside the class Script.
This information is now shown when using the scripts command in he developer shell debugger.
Review URL: http://codereview.chromium.org/119108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-08 10:47:49 +00:00
ager@chromium.org
24d22b567a
Introduce an API to force the deletion of a property ignoring
...
interceptors and dont-delete attributes.
Minor change to the behavior of eval: throw exception when calling
eval in a context for which the global has been detached. This
matches the behavior of both Firefox and Safari post navigation in the
browser.
Review URL: http://codereview.chromium.org/118374
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-08 09:46:09 +00:00
kasperl@chromium.org
9e35fb6582
Lower the number of generations in the script compilation
...
cache to 5 (down from 8). Generations 5, 6, and 7 are
rarely hit in real browsing sessions (~2% in the best case)
so it seems better to lower the size to avoid carrying around
too many compiled scripts in the cache.
Review URL: http://codereview.chromium.org/119301
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-08 08:03:58 +00:00
whesse@chromium.org
64bd87b8a8
Change handle creation to use Object*, to comply with strict aliasing rules.
...
Review URL: http://codereview.chromium.org/119177
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-08 07:16:04 +00:00
kmillikin@chromium.org
42c7dc755c
Fix x64 build.
...
TBR=whesse@chromium.org ,lrn@chromium.org
Review URL: http://codereview.chromium.org/118310
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-05 17:14:06 +00:00
kmillikin@chromium.org
bd82b972fc
Simplify the processing of deferred code in the code generator. Our
...
deferred code snippets are highly stylized. They always make a call
to a stub or the runtime and then return. This change takes advantage
of that.
Creating a deferred code object now captures a snapshot of the
registers in the virtual frame. The registers are automatically saved
on entry to the deferred code and restored on exit.
The clients of deferred code must ensure that there is no change to
the registers in the virtual frame (eg, by allocating which can cause
spilling) or to the stack pointer. That is currently the case.
As a separate change, I will add either code to verify this constraint
or else code to forbid any frame effect.
The deferred code itself does not use the virtual frame or register
allocator (or even the code generator). It is raw macro assembler
code.
Review URL: http://codereview.chromium.org/118226
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-05 14:16:32 +00:00
antonm@chromium.org
1e55c82115
Revert r2110 as it introduces performance regressions.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-05 13:42:29 +00:00
antonm@chromium.org
b2f0dc3542
Don't do local lookup on global object as those (currently) are not JITed anyway.
...
Review URL: http://codereview.chromium.org/119048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-05 10:50:36 +00:00
kasperl@chromium.org
dfbc850ebc
Revert revision 2108. This brings back the changes
...
submitted in revisions 2093, 2094, 2099, and 2106.
There's no evidence that supports that these changes
should be the cause of the unexplained performance
regressions on the intl2 and DHTML page cyclers.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-05 08:07:15 +00:00
kasperl@chromium.org
84c09c6de4
Experimental revert of revisions 2093, 2094, 2099, and
...
2106 to try to isolate a performance regression on the
page cyclers.
I'll roll the changes back in if this doesn't fix the
regression.
TBR=antonm@chromium.org
Review URL: http://codereview.chromium.org/118302
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-05 06:57:30 +00:00
kasperl@chromium.org
be11c4e979
Patch by Craig Schlenter. See http://codereview.chromium.org/118153
...
Change stack alignment on linux to 16 bytes to keep gcc 4.4 happy.
This fixes the mksnapshot segfault without requiring -fno-tree-vectorize
which just avoided the problem by not generating code with movdqa.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-05 06:20:30 +00:00
antonm@chromium.org
0a0ede0716
Fix the issue with layout tests.
...
The problem was I incorrectly treated NULL result as failure to fetch
a property with a getter. However, if getter returns zero, it is
manifested as NULL pointer (see added test case).
Good news: that gives another boost as before this CL if getter returned
0, I did another slow lookup.
Review URL: http://codereview.chromium.org/119172
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-04 19:19:53 +00:00
kmillikin@chromium.org
f7bb967678
Clean up the AST pretty printer by adding some missing newlines and
...
indentation.
Review URL: http://codereview.chromium.org/118234
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-04 12:01:55 +00:00
lrn@chromium.org
b918e64dc3
X64: JSEntry Stub
...
Review URL: http://codereview.chromium.org/118115
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-04 11:54:14 +00:00
whesse@chromium.org
32ce7956ac
Fix formatting of one line.
...
Review URL: http://codereview.chromium.org/119171
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-04 11:20:03 +00:00
whesse@chromium.org
2852f8d5e2
Declare register names as static constants rather than external globals.
...
Review URL: http://codereview.chromium.org/119082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-04 11:09:17 +00:00
antonm@chromium.org
250081d671
Store lookup index in ARM stubs as well (see r2093 and 2094 for more info).
...
Review URL: http://codereview.chromium.org/118163
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-03 16:09:43 +00:00
whesse@chromium.org
34de62698c
Add multiplication and division to x64 assembler. Add emit_modrm() function.
...
Review URL: http://codereview.chromium.org/119078
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-03 13:30:31 +00:00
kmillikin@chromium.org
84ef2d3ace
Refactor IA32 shift operations to simplify moving the right operand
...
into the ecx register and to ensure that there is no frame effect
between the first entry to the deferred code and binding its exit.
Review URL: http://codereview.chromium.org/118157
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-03 12:20:56 +00:00
antonm@chromium.org
2e49a1c03d
Follow up to r2093: forgotten files and changes.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-03 12:04:53 +00:00
antonm@chromium.org
06fdc01543
In case of holder with fast properties that allows to fetch the property
...
immediately if holder has this property or saves binary search on holder if
property doesn't belong to holder. Of course, in the cases when named getter
returns nothing.
That gives ~20% for dom benchmark/Document Object String Get, speeds up overall
dom_perf (not dramatically) and overall score for peacekeeper. Strange, but DOM
part of peacekeepr runs somewhat slower.
Review URL: http://codereview.chromium.org/118118
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-03 11:25:34 +00:00
lrn@chromium.org
5e83c2cc9c
X64: Added implementations of Set(..., Immediate) to macro assembler.
...
Removed duplicates comments in assembler-x64.cc.
Review URL: http://codereview.chromium.org/119035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-03 10:30:50 +00:00
kmillikin@chromium.org
a41b41bf98
As a simplification, manually inline the function
...
DeferredInlineBinaryOperation::GenerateInlineCode and remove its
definition. It was only called from one site and was the only
deferred code object that was split that way into fast-case inline and
slow-case stub.
Review URL: http://codereview.chromium.org/119037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-02 20:11:26 +00:00
whesse@chromium.org
ea0644506d
Add miscellaneous operations to x64 assembler.
...
Review URL: http://codereview.chromium.org/113997
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-02 13:40:52 +00:00
whesse@chromium.org
8c78e673ad
Add shift operations to x64 assembler.
...
Review URL: http://codereview.chromium.org/118107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-02 11:43:26 +00:00
kmillikin@chromium.org
c70a511b70
Factor out the code for emitting the IA32 binary operations div and
...
mod so they do not share code with the other binary operations. They
now preallocate their fixed registers (eax and edx). There is now no
frame effect between entries to the deferred call to the stub.
Review URL: http://codereview.chromium.org/118110
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-02 11:18:41 +00:00
mikhail.naganov@gmail.com
0fcedde224
Fix determining of JS lower stack bottom used in profiler's JS stack tracer to work with Chromium.
...
My assumption that log initialization happens somewhere near the stack's bottom is true for V8's sample shell but isn't true for Chromium, causing many otherwise valid stack addresses to be thrown out. The solution proposed is to save stack pointer value for the outermost JS function in ThreadLocalTop similar to c_entry_fp.
Implemented only for IA-32. Currently I'm not dealing with profiling on ARM and x86-64 anyway.
Review URL: http://codereview.chromium.org/112082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-02 09:33:17 +00:00
lrn@chromium.org
734f1fd135
X64: Added jmp and call and nop(n) to X64 assembler.
...
Review URL: http://codereview.chromium.org/115920
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-06-02 07:21:05 +00:00
ager@chromium.org
ce988f32cc
Add a couple of parenthesis to improve readability and please certain
...
GCC version.
BUG=364
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/118016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-29 19:17:48 +00:00
whesse@chromium.org
1bb3976a14
Change RelocInfo to write 64-bit data field on x64 architecture.
...
Review URL: http://codereview.chromium.org/115860
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-29 12:14:54 +00:00
sgjesse@chromium.org
2eebe59957
Prepare for push to trunk. We are now working on 1.2.7.
...
Review URL: http://codereview.chromium.org/113994
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-29 10:52:00 +00:00
mikhail.naganov@gmail.com
6ad05a9ebd
fix embedded vector copy constructor and assignment.
...
Thanks to Tobias Kaes, an issue with default copy constructor and assignment operator is found and fixed.
BUG=http://code.google.com/p/v8/issues/detail?id=358
Review URL: http://codereview.chromium.org/113992
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-29 09:00:39 +00:00
whesse@chromium.org
b4a219774a
Add test, neg, and not instructions to x64 assembler
...
Review URL: http://codereview.chromium.org/112066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-29 08:56:31 +00:00
sgjesse@chromium.org
e1787e78d6
Removed unused variable to fix Linux build.
...
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/115917
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-29 08:50:05 +00:00
sgjesse@chromium.org
a019501be2
Change the handling of the debug break stack guard. The debug break is no longer ignored when hit inside "system" JavaScript. The reason for this is twofold:
...
* Running "system" JavaScript with the debug break flag active leads to slow running code while waiting for the break in non "system" JavaScript (one exception to this it is to try to avoid breaks in the clear mirror cache JavaScript code called when leaving the debugger).
* If this happens while processing RegExp running in native code an infinite loop is created as the stack guard handler for RegExp does not move execution forward
Fixed a GC bug in the interrupt handling for RegExp running in native code.
Added test of debug break while in debug message handler callback and debug break while executing a RegExp.
Review URL: http://codereview.chromium.org/115262
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-29 08:42:02 +00:00
mikhail.naganov@gmail.com
10cd3ad48c
Two simple profiler changes: 1) log sampling rate, 2) check current state before pausing & resuming.
...
Review URL: http://codereview.chromium.org/113961
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-29 06:56:23 +00:00
mikhail.naganov@gmail.com
795ba99117
Handle filling up of memory buffer to make log processing in DevTools Profiler easier.
...
When profiler's memory buffer is filled up, profiling is stopped and it is ensured that the last record in the buffer is "profiler,\"pause\"" thus making the end of profiling session explicit. Otherwise DevTools Profiler would need to guess whether the current profiling session has been stopped.
Tested with Chromium.
Review URL: http://codereview.chromium.org/115859
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-28 13:56:32 +00:00
sgjesse@chromium.org
8ed81aca8a
Improve debugger property lookup.
...
before performing debugger property lookup make sure the current context is set to the context active before the debugger was entered.
Make the use of the LookupResult GC safe in debugger property lookup.
Review URL: http://codereview.chromium.org/115855
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-28 11:30:54 +00:00
whesse@chromium.org
ac5eabddee
Add more arithmetic to x64 assembler.
...
Review URL: http://codereview.chromium.org/115857
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-28 10:06:48 +00:00
whesse@chromium.org
76d5e4e06d
Add immediate operands and arithmetic operations to the x64 assembler.
...
Review URL: http://codereview.chromium.org/115816
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-28 09:18:17 +00:00
mikhail.naganov@gmail.com
58aa022d6c
Tiny fix: initialize TickSample::frames_count with 0.
...
I suggest that the lack of initialization causes issue 358 to happen. In Profiler::Disengage an empty TickSample is inserted in order to wake up the Profiler thread. Issue reporter claims that crash happens in LogTickEvent function. My guess is that frames_couint receives a wild value.
Review URL: http://codereview.chromium.org/113939
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-28 07:45:17 +00:00
mikhail.naganov@gmail.com
e48095b87c
Implement a dynamically growing memory log buffer with an upper limit.
...
The goal of this change is to allow longer profiling sessions and preserve memory when profiler isn't started. The buffer starts with 64K and grows until it reaches the upper limit, which is currently set to 50MB --- according to my evaluations, this is enough for at least 20 minutes of GMail profiling. As we're planning to introduce compression for the profiler log, this time boundary will be significantly increased soon.
To make possible unit testing of the new component, I've factored out Logger's utility classes into a separate source file: log-utils.h/cc. Log and LogMessageBuilder are moved there from log.cc without any semantical changes.
Review URL: http://codereview.chromium.org/115814
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-28 07:08:09 +00:00
sgjesse@chromium.org
4014f6428d
Don't process debug requests if the debug event is script collected.
...
Review URL: http://codereview.chromium.org/113900
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-27 20:57:01 +00:00
kmillikin@chromium.org
3d15415414
Simplify deferred code by removing some unneeded or redundant stuff.
...
Review URL: http://codereview.chromium.org/113895
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-27 15:13:00 +00:00
lrn@chromium.org
2e37ebe1ed
Added stack overflow check for RegExp analysis phase.
...
A very long regexp graph can overflow the stack with recursive calls.
Review URL: http://codereview.chromium.org/113894
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-27 11:23:26 +00:00
whesse@chromium.org
88635e401e
Implement memory operands for instructions in the x64 assembler.
...
Review URL: http://codereview.chromium.org/113841
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-27 08:15:31 +00:00
kmillikin@chromium.org
9c829fafe9
Change the register allocator so that it no longer tracks references
...
to the platform-specific reserved registers. They are always in use
for their intended purpose, cannot appear in the virtual frame, and
can be freely used without allocation in the code generator.
Review URL: http://codereview.chromium.org/113837
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-27 07:53:47 +00:00
lrn@chromium.org
945245393c
Fix for issue 351 - lastIndexOf.
...
Review URL: http://codereview.chromium.org/113838
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-26 15:42:06 +00:00
whesse@chromium.org
960a1d36c2
Add implementation of control flow and label binding to x64 assembler.
...
Review URL: http://codereview.chromium.org/113832
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-26 12:32:09 +00:00
erik.corry@gmail.com
d1915ea45c
Remove spurious 'const' that upsets some versions of gcc.
...
Review URL: http://codereview.chromium.org/115770
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-26 10:46:40 +00:00
erik.corry@gmail.com
a196a9c0d9
Never use the freelists when always compacting.
...
Review URL: http://codereview.chromium.org/113825
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-26 09:17:50 +00:00
iposva@chromium.org
112864a83a
- Record cache hit rates at different levels in the compilation cache
...
for scripts.
Review URL: http://codereview.chromium.org/115592
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-26 08:10:04 +00:00
whesse@chromium.org
3bd462f2eb
Add a unit test for V8's 64-bit assembler.
...
Review URL: http://codereview.chromium.org/115707
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-26 07:58:36 +00:00
kasperl@chromium.org
5095d7eb65
Prepare to push version 1.2.5 to trunk.
...
TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/113829
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-26 05:22:48 +00:00
davemoore@chromium.org
62caa393b0
Changed the flags that indicate the status of running vs dead
...
This allows us to optimized the EnsureInitialized() function
so it doesn't require a function call when we're running
Review URL: http://codereview.chromium.org/113121
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 19:39:52 +00:00
erik.corry@gmail.com
dc154a9878
Fix 64-bit after in-loop patch.
...
Review URL: http://codereview.chromium.org/115764
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 18:57:25 +00:00
erik.corry@gmail.com
01f7c87f22
This patch much improves our tracking of whether function is
...
called from within a loop or not. In the past we lost the
information if a call site went megamorphic before a lazily
compiled callee was called for the first time. Now we track
that correctly (this is an issue that affects richards).
We still don't manage to track the in-loop state through a
constructor call, since constructor calls use LoadICs instead
of CallICs. This issue affects delta-blue. So in this patch
we assume that lazy compilations that don't happen through a
CallIC happen from inside a loop. I have an idea to fix this
but this patch is big enough already.
With our improved tracking of in-loop state I have switched
off the inlining of in-object loads for code that is not in
a loop. This benefits compile speed. One issue is that
eagerly compiled code now doesn't get the in-object loads
inlined. We need to eagerly compile less code to fix this.
Review URL: http://codereview.chromium.org/115744
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 18:29:02 +00:00
iposva@chromium.org
34218e5540
- Introduce histograms collecting data about the number of set remembered set
...
bits in a page.
Review URL: http://codereview.chromium.org/113819
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 16:33:00 +00:00