Commit Graph

2164 Commits

Author SHA1 Message Date
lrn@chromium.org
e05ea61528 X64: Fix bug in RandomPositiveSmi (doesn't save rsi before calling C-code).
Review URL: http://codereview.chromium.org/160519


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-04 08:23:37 +00:00
lrn@chromium.org
0e11fbcd79 Removed unsafe optimization in RecordWrite.
Optimization was only unsafe if new-space was in the low half of memory and an object could be
located in the top half at an addressed that only differ from a new-space address by the high
bit.

Review URL: http://codereview.chromium.org/159784


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-03 13:17:34 +00:00
lrn@chromium.org
fd8b376989 X64: Reenabled RSet.
Review URL: http://codereview.chromium.org/160453


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-03 11:05:26 +00:00
sgjesse@chromium.org
8c9b30af83 Removed some comments which did not make any sense.
Review URL: http://codereview.chromium.org/159783

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-03 10:59:00 +00:00
whesse@chromium.org
118d5e171b Fix debug printing of pointers, and a keyed store with smi index error, in X64
Review URL: http://codereview.chromium.org/160452

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-03 10:53:45 +00:00
kmillikin@chromium.org
67a61e96c7 Restructure to support recursive invocation of the CFG builder. Add
support for stack-allocated variables when run with multipass.

There is no liveness analysis and they are currently always allocated
to memory.

Review URL: http://codereview.chromium.org/159701

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-03 07:55:48 +00:00
iposva@chromium.org
3d070f1f0c - Fix a style violation which was flagged by gcc: while loop without body
- Restructured the entire function because:
  During the simple style fix I discovered that this whole routine was
  hard to read due to a general lack of comments. While adding comments I
  realized that the function was also skipping entries if there were two
  consecutive entries in the maps file.

Review URL: http://codereview.chromium.org/159659

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-01 06:11:53 +00:00
whesse@chromium.org
78ec956610 Add missing file to last changelist, for NaN Dates.
Review URL: http://codereview.chromium.org/159700

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-31 13:24:40 +00:00
whesse@chromium.org
2679ad1118 Guard local time posix functions from NaN value of invalid dates.
Review URL: http://codereview.chromium.org/160451

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-31 13:17:59 +00:00
kmillikin@chromium.org
e2ae01b6ef Add virtual destructors to address a gcc warning.
TBR=plesner@chromium.org

Review URL: http://codereview.chromium.org/160449

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-31 11:34:47 +00:00
kmillikin@chromium.org
b092d55890 Enable --trace when --multipass is on. Bugfix in bailout condition.
All V8 and (ia32) mozilla tests pass with --multipass on, failures now
count as regressions.

Review URL: http://codereview.chromium.org/159698

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-31 11:27:14 +00:00
mikhail.naganov@gmail.com
33f54fa6e2 X64: enable stack sampling in profiler.
Added necessary code to initialize Top::js_entry_sp value.
Renamed 'test-log-ia32' test to 'test-log-stack-tracer' and enabled it in 64-bit version.

Review URL: http://codereview.chromium.org/160446


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-31 11:07:05 +00:00
kmillikin@chromium.org
3a472fada8 Basic infrastructure for fast two-pass compilation. A CFG is
generated in one-pass from the source AST, code is generated from the
CFG.  Enabled by the flag --multipass and disabled by default.

Rudimentary and currently only supports literal expressions and return
statements.  There are some other known limitations (e.g., missing
support for tracing).

Review URL: http://codereview.chromium.org/159695

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2596 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-31 11:06:17 +00:00
whesse@chromium.org
ddbe148b68 X64: Add fix of issue 392 to X64
Review URL: http://codereview.chromium.org/160393

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-31 08:04:41 +00:00
sgjesse@chromium.org
219df901a2 Prepare push to trunk. We are now working towards version 1.3.2.
Review URL: http://codereview.chromium.org/160391

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-30 14:18:09 +00:00
lrn@chromium.org
67936a7b16 X64: Fix lint problem and add missing stub function.
Review URL: http://codereview.chromium.org/160387


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2588 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-30 12:09:51 +00:00
kmillikin@chromium.org
1a39e07003 Another name change for consistency's sake. NODE_LIST -> AST_NODE_LIST.
Review URL: http://codereview.chromium.org/159633

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-30 12:09:05 +00:00
kmillikin@chromium.org
a48fd5916e Change the overly-general class named Node to the more specific
AstNode in case we ever want to have some other kind of node.

Split the NODE_LIST macro-generating macro so that we can iterate
concrete subclasses of Statement and concrete subclasses of Expression
separately.
Review URL: http://codereview.chromium.org/159632

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-30 11:53:29 +00:00
lrn@chromium.org
dc8ca16931 X64: Added inline keyed load/store and a bunch of other missing functions.
Review URL: http://codereview.chromium.org/160272


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-30 09:18:14 +00:00
sgjesse@chromium.org
cffc051177 Avoid dictionary expansion during bootstrapping.
Allocate the code stubs dictionary and non monomorphic cache dictionary with an initial size which avoids these dictionaries to be expanded during bootstrapping. This gets rid of 9 dictionary expansions during bootstrapping.

Preallocate the dictionary when normalizing an object to a size sufficient for holding the number of properties which is expected to be added to the object. This is used when ceating an object from an object literal boilerplate where multiple properties are known to be added.  This gets rid of 10 dictionary expansions during bootstrapping.

There are now 3 dictionary expansions left during bootstrapping.
Review URL: http://codereview.chromium.org/160382

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-30 09:13:48 +00:00
whesse@chromium.org
027f8d11c7 X64: Change wording of comments.
Review URL: http://codereview.chromium.org/160381

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-30 08:11:25 +00:00
sgjesse@chromium.org
d8563e4d1e Allocate global object as a normalized object.
The global object is now allocated and initialized as a normalized object.
Review URL: http://codereview.chromium.org/159587

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-30 07:33:05 +00:00
whesse@chromium.org
79b52509d3 X64: Fix error in division & modulus, adjust mjsunit test status, fix lint error in objects.h
Review URL: http://codereview.chromium.org/159584

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2581 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-30 07:31:54 +00:00
sgjesse@chromium.org
e13c319f7c Harden message handling in the debugger agent.
This defect have been reported by the Coverity Prevent static analysis tool.
Review URL: http://codereview.chromium.org/160327

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-30 07:02:23 +00:00
christian.plesner.hansen@gmail.com
98425a31f1 Speed up CalledAsConstructor.
Changed CalledAsConstructor to process the raw runtime stack directly,
rather than using a StackFrameIterator.  Using an interator turns out
to be quite expensive and the vast majority of the work done is not
relevant to deciding if we've been called as a constructor.

This speeds up getElementById by ~13%.

Review URL: http://codereview.chromium.org/160325

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-29 12:50:20 +00:00
antonm@chromium.org
0d2c81584b Compile precanned answers for the case of failed interceptor for some combinations.
Review URL: http://codereview.chromium.org/140069

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-29 12:34:21 +00:00
yurys@chromium.org
cd16b5be95 Use JSFunction::IsBuiltin() for checking if a function is a builtin one
Review URL: http://codereview.chromium.org/160323

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-29 11:55:26 +00:00
mikhail.naganov@gmail.com
e97554ed10 Add generic V8 API functions for controlling profiling aspects.
As we'll have several aspects of heap profiling, it is more handy to control them using binary flags than by individual functions. CPU profiling represent just a particular aspect to control, so {Pause,Resume}Profiler and IsProfilerPaused are only left for compatibility.

For now, PROFILER_FLAG_HEAP_STATS and PROFILER_FLAG_JS_CONSTRUCTOR are equivalent, but later will be split.

Review URL: http://codereview.chromium.org/159581

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-29 11:23:36 +00:00
kasperl@chromium.org
84d8e51df4 Change the check for builtin functions to not be based on identity,
which seems shaky in the presence of multiple builtin objects.
Review URL: http://codereview.chromium.org/159583

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2573 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-29 09:51:41 +00:00
sgjesse@chromium.org
69a90ee916 Add missing case in AST printer.
Review URL: http://codereview.chromium.org/159580

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-29 08:46:28 +00:00
mikhail.naganov@gmail.com
9e8216ef22 Introduce first approximation of constructor heap profile for JS objects.
It is activated with '--log-gc' flag.

JS object size is calculated as its size + size of 'properties' and 'elements' arrays, if they are non-empty. This doesn't take maps, strings, heap numbers, and other shared objects into account.

As Soeren suggested, I've moved ZoneSplayTree from jsregexp to zone, and removed now empty jsregexp-inl header file.

Review URL: http://codereview.chromium.org/159504

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-29 08:10:19 +00:00
yurys@chromium.org
cda6146266 Don't step in function.call/apply if the function is builtin one.
Chromium bug: http://code.google.com/p/chromium/issues/detail?id=17886
Review URL: http://codereview.chromium.org/159508

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-29 06:34:30 +00:00
iposva@chromium.org
8a82d61722 - getc returns an int.
Review URL: http://codereview.chromium.org/159538

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 21:10:13 +00:00
iposva@chromium.org
9a5a3fd6a5 - Clamp double values as doubles to get a free NaN check and
to handle infinity properly.

Review URL: http://codereview.chromium.org/159518



git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 18:11:12 +00:00
mikhail.naganov@gmail.com
ee340a52ff X64: Fixes to enable C/C++ functions processing in profiler.
- rewrote Linux version of LogSharedLibraryAddresses to work correctly with 64-bit libs;
 - fixed address length restriction in JS tickprofiler script.

Review URL: http://codereview.chromium.org/160273


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2563 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 15:37:05 +00:00
antonm@chromium.org
4354661a49 Get rid of unnecessary handle management when invoking interceptors.
Review URL: http://codereview.chromium.org/155682

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 14:46:06 +00:00
whesse@chromium.org
1ed7462166 X64: Fix bug that showed up in mjsunit/invalid-lhs.js
Review URL: http://codereview.chromium.org/159506

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 14:11:09 +00:00
whesse@chromium.org
b357dc043e More X64 inline cache implementation.
Review URL: http://codereview.chromium.org/160268

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 13:44:17 +00:00
kasperl@chromium.org
f68b31403c Change custom NaN check to use isnan to fix pixel array
failures on ARM hardware.
Review URL: http://codereview.chromium.org/160269

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 12:50:58 +00:00
kasperl@chromium.org
516d47c73b Fix pixel array support for x64 and make the fast Array functions
that use JSARRAY_HAS_FAST_ELEMENTS_CHECK a bit safer in the presence
of pixel arrays.
Review URL: http://codereview.chromium.org/159500

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2556 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 12:46:08 +00:00
sgjesse@chromium.org
422b02717e Change the updating of the counters for global stub use to be consistent. Now counters are updated when they are sure to count to avoid decrementing them when there is a miss.
Review URL: http://codereview.chromium.org/160265

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 11:42:18 +00:00
kasperl@chromium.org
b2fc0598c1 Fix lint issues. TBR=iposva@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 09:05:05 +00:00
iposva@chromium.org
1ce28eda0b - Expose CanvasPixelArray functionality directly in JavaScript
indexed property accesses.
- The IC stubs have not been updated to handle these directly, but
  at least we do not have to leave the VM to access bytes.

Review URL: http://codereview.chromium.org/159263

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 08:43:51 +00:00
lrn@chromium.org
25eb44253f X64: Fixed bug de-tagging of smis in multiplication code.
Moved some dummy function implementations to from ic-x64.cc to stub-cache-x64.cc (where they belong)

Review URL: http://codereview.chromium.org/159404


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-28 08:22:48 +00:00
whesse@chromium.org
65580ea35e X64: Fix buggy expression in disassembler. Fixes Issue 408: http://code.google.com/p/v8/issues/detail?id=408
Review URL: http://codereview.chromium.org/160174

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-27 18:51:46 +00:00
whesse@chromium.org
72ac6f619a X64: Add inline cache stub for storing to globals.
Review URL: http://codereview.chromium.org/160160

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-27 15:02:35 +00:00
christian.plesner.hansen@gmail.com
668497b26a Handlified some stack trace code
Fixed some failing sputnik tests by handlifying some code that would
otherwise break on gc.

Review URL: http://codereview.chromium.org/160159


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-27 13:26:43 +00:00
christian.plesner.hansen@gmail.com
c1581cd5bd Added Error.captureStackTrace function.
Added utility function for capturing stack traces so that efficient
stack trace collection works for custom errors too, not just built-in
ones.

Review URL: http://codereview.chromium.org/159403


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-27 12:01:32 +00:00
whesse@chromium.org
9b25131b4f X64: Add mov rax,(mem64) to disassembler.
Review URL: http://codereview.chromium.org/159397

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-27 10:39:46 +00:00
whesse@chromium.org
8558fde3a5 Make X64 implementation update Store ic stubs. Remove comment that talks about "below" on the stack meaning closer to the top.
Review URL: http://codereview.chromium.org/159402

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2539 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-27 10:39:21 +00:00
vitalyr@chromium.org
57e8217c10 Stub Cache: speed up load callback accessor by allocating data handle on stack.
Review URL: http://codereview.chromium.org/160041

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-27 09:54:59 +00:00
kasperl@chromium.org
ef0fb2e6fb Prepare to push version 1.3.0 to trunk.
Review URL: http://codereview.chromium.org/160157

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-27 08:27:28 +00:00
iposva@chromium.org
d573e3b39d Landing patch for Timur Iskhodzhanov.
Reviewed at http://codereview.chromium.org/160099

The original MacOSMutex constructor makes data race detectors a little
bit crazy. Also, the new version is simpler and easier to understand.



git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-27 05:31:30 +00:00
whesse@chromium.org
500e10b648 Add inline caching for keyed loads and stores. Remove extra parentheses from some files.
Review URL: http://codereview.chromium.org/159266

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-24 11:22:35 +00:00
yurys@chromium.org
161d38c614 Debugger should not stop in its own code and in code of built-in functions since it may confuse user.Debug break handler checks whether current function is a built-in or a debugger one and just resumes execution if it is.
CallCheckStackGuardState is no longer called in loop in the RegExp code as it hangs if debug break flag is not reset after calling Execution::HandleStackGuardInterrupt.
Review URL: http://codereview.chromium.org/160001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-24 06:14:23 +00:00
whesse@chromium.org
1309d6df08 Fix typo in last change
Review URL: http://codereview.chromium.org/160009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-23 13:05:36 +00:00
whesse@chromium.org
18c6337a2c Fix an error in a keyed lookup stub - HeapNumbers treated as strings.
Review URL: http://codereview.chromium.org/155924

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-23 13:01:17 +00:00
kmillikin@chromium.org
4196711d2e Call the (fatal) V8 out of memory handler if we cannot allocate enough
memory from the OS to deserialize the initial heap snapshot at
startup.

This catches the failure to startup earlier, and avoids dereferencing
the encoding of an allocation failure.

BUG=16359

Review URL: http://codereview.chromium.org/159265

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-23 12:56:45 +00:00
kmillikin@chromium.org
270c0e8b8f Change a few style issues (dead code, unitialized members) flagged by
Coverity Prevent.  All are benign.

Review URL: http://codereview.chromium.org/159264

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-23 12:51:49 +00:00
kmillikin@chromium.org
1ca19c383d Fix ARM compiler crash in short-circuited boolean expressions.
We did not handle the case where the left-hand-side expression was
fully compiled to control flow.  There were also some assertions for
unary and binary expressions that crashed debug builds when the
expression was fully compiled to control flow.

Regression test added.

Review URL: http://codereview.chromium.org/160006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-23 11:40:14 +00:00
whesse@chromium.org
f751483255 Correct sense of test for generic keyed load with a symbol as key.
Review URL: http://codereview.chromium.org/155922

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-22 14:40:04 +00:00
kmillikin@chromium.org
e8ae83eec3 Remove a few occurrences of the CHECK_FAILED macro in the parser.
There's no reason to check if we've failed when (a) we know we have
and (b) we've got a perfectly good NULL just lying around anyway.

Review URL: http://codereview.chromium.org/155920

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-22 12:33:16 +00:00
kmillikin@chromium.org
dc30b11fbc Fix some defects identifies by Coverity Prevent. All are false
positives, but I've restructured the code to be more explicit.

Review URL: http://codereview.chromium.org/159192

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-22 11:29:38 +00:00
kmillikin@chromium.org
1cbe7a240a Fix two deallocation bugs identified by Coverity Prevent.
1. The tables array allocated in the CompilationSubCache constructor
   was never deallocated.  Fixed by adding destructor.

2. The buffer allocated in one of the constructors of the
   NoAllocationStringAllocator was never deallocated.  It seems that
   this class sometimes owns the buffer (if it allocated one itself)
   and sometimes doesn't (if it was passed one).  Simple fix is to
   remove the offending constructor which was never used anyway.

Review URL: http://codereview.chromium.org/155917

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-22 10:23:19 +00:00
ager@chromium.org
2183309385 Introduce a external allocation limit.
If V8 is holding on to a lot of external memory, we attempt to clean
it up even if we do not get an allocation failure.  Since tiny V8
objects can hold on to a lot of external memory, we might run out of
external memory while waiting for a normal allocation failure.
Review URL: http://codereview.chromium.org/155916

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-22 10:01:25 +00:00
whesse@chromium.org
be562ee794 X64: Add StoreField inline cache stub.
Review URL: http://codereview.chromium.org/155915

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-22 09:11:33 +00:00
iposva@chromium.org
a109c08c78 - Remove unneeded include of ucontext.h as it is deprecated on Snow Leopard.
- Avoid calculating shared library addresses if profiling is not enabled.

Review URL: http://codereview.chromium.org/155814

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-21 17:25:07 +00:00
whesse@chromium.org
ff242173c3 Make stub cache hash work on X64 platform. Stub cache now works.
Switch arguments of 32-bit arithmetic instructions so they are consistent
with 64-bit arithmetic instructions (all on X64 platforms).
Review URL: http://codereview.chromium.org/155849

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-21 13:30:46 +00:00
whesse@chromium.org
8ff3dc5280 X64: Implement inline caches for loads
Review URL: http://codereview.chromium.org/159131

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-21 11:06:24 +00:00
whesse@chromium.org
46b8d84659 X64: Fix compiler complaint
Review URL: http://codereview.chromium.org/159079

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2514 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-20 20:17:27 +00:00
whesse@chromium.org
ca6cd9b4b2 X64: Add instructions to disassembler. Skip hanging test-api test.
Review URL: http://codereview.chromium.org/155771

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-20 14:57:09 +00:00
whesse@chromium.org
7f886c8582 X64: Enable more of LoadIC, disable individual stub types.
Review URL: http://codereview.chromium.org/155763

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-20 14:33:59 +00:00
kmillikin@chromium.org
7c8a166b91 Fix another site where a stack-allocated character was treated as a
one-element character array.  This was safe at this site but
potentially confusing.

BUG=17103

Review URL: http://codereview.chromium.org/159072

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-20 12:28:02 +00:00
kmillikin@chromium.org
2126c36279 Change RegExpMacroAssemblerIA32::CaseInsensitiveCompareUC16 so that it
does not use stack-allocated character as a one-element character
array.

The use at this site was actually safe (Ecma262Canonicalize will only
write to the first character of the array), but not obviously so.

BUG=17103

Review URL: http://codereview.chromium.org/159071

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-20 10:54:00 +00:00
mikhail.naganov@gmail.com
ec526df16f Heap profiling: add logging of heap memory stats (capacity, used) under 'log-gc' flag.
Also changed time reporting to system time to be able to get synchronized with other memory (e.g. DOM) size status.

Review URL: http://codereview.chromium.org/155764

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-20 09:38:44 +00:00
ager@chromium.org
ab59ea5a16 I will lint my code before submitting...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 16:34:58 +00:00
ager@chromium.org
6d641a8131 Add missing handle scope in internal field code.
TBR=kasperl@chromium.org
Review URL: http://codereview.chromium.org/155691

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 16:00:42 +00:00
whesse@chromium.org
39c9dd5ab1 X64: Add inline caching to calls of global functions
Review URL: http://codereview.chromium.org/155688

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2503 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 12:58:12 +00:00
whesse@chromium.org
76833936b7 Make Array::kHeaderSize protected, and only use kHeaderSize of its subclasses.
Many X64 bugs have been due to the difference between (unaligned) Array::kHeaderSize and (aligned) FixedArray::kHeaderSize.
Review URL: http://codereview.chromium.org/155687

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 12:12:24 +00:00
kasperl@chromium.org
21f44e8fd2 Make sure we don't crash if NewProxy returns an empty handle (only
happens when out of memory).
Review URL: http://codereview.chromium.org/155685

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 11:16:10 +00:00
antonm@chromium.org
3c6c399381 Introduce faster utilty methods for storing and retrieving native pointers
in internal fields.



git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 10:35:15 +00:00
kasperl@chromium.org
4f2cc4104e Patch by Vitaly Repeshko. Improve performance of internal fields
operations by adding a fast-case check for JS_OBJECT_TYPE in
JSObject::GetHeaderSize().
Review URL: http://codereview.chromium.org/155684

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2497 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 09:16:23 +00:00
whesse@chromium.org
f8e622a620 Added inline caching for calls to a field to X64. Changed a use of Array::kHeaderSize to FixedArray::kHeaderSize on all platforms.
Review URL: http://codereview.chromium.org/149798

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2496 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 08:55:01 +00:00
kasperl@chromium.org
38f5a84701 Avoid more static variables in inline functions.
Review URL: http://codereview.chromium.org/149799

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 08:22:07 +00:00
kasperl@chromium.org
124ef540c0 Patch by Mark Mentovai. Don't put static variables inline.
Original review: http://codereview.chromium.org/149768

TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/155679

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 05:37:09 +00:00
kasperl@chromium.org
94c4760225 Revert r2486, r2487, and r2488 until I get the chance to fix
the performance issue with number dictionaries.

TBR=kmillikin@chromium.org

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-17 04:57:17 +00:00
bak@chromium.org
752a8fbaba Changed the dictionary code to use original hash value when starting linear scan.
This is necessary for hash codes for string where the array index is encoded.

Review URL: http://codereview.chromium.org/149753

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-16 14:59:28 +00:00
bak@chromium.org
78ffa1df4d Added two spaces to make presubmit.py happy.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-16 13:25:45 +00:00
bak@chromium.org
e0047e4331 Changed hash table to use more of the hash value when probing.
Review URL: http://codereview.chromium.org/155350

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-16 12:56:50 +00:00
whesse@chromium.org
263acb4d02 X64: Implement inline cache of monomorphic constant function call. Mark a debugger test on X64 as failing.
Review URL: http://codereview.chromium.org/155631

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-16 12:49:14 +00:00
whesse@chromium.org
a1cf7d6e3d X64: Enable inline caching for calls, with some stubs stubbed out.
Review URL: http://codereview.chromium.org/149674

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2481 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-16 08:38:52 +00:00
yurys@chromium.org
20e4b1dbc5 Reapply http://codereview.chromium.org/149542 now that issue with Mac builder is fixed(http://codereview.chromium.org/155591)
Review URL: http://codereview.chromium.org/149746

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2479 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-16 07:07:51 +00:00
whesse@chromium.org
10605879f6 Disable inline caching on X64 separately for loads, stores, and calls, while they are being implemented and tested one-by-one.
Review URL: http://codereview.chromium.org/149673

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-15 12:30:28 +00:00
yurys@chromium.org
12d5143551 Reverting 2458 to see if it makes Builder Webkit Mac (V8-Latest) happy.
Review URL: http://codereview.chromium.org/149672

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2469 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-15 09:45:06 +00:00
kmillikin@chromium.org
6443cb99f7 Fix issue 345 by avoiding duplicates in the list of escaping labels
from a try...catch...finally statement.

Review URL: http://codereview.chromium.org/149670

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-15 08:57:25 +00:00
antonm@chromium.org
f12bdb27aa Improved version of LookupForRead (tnx to Kasper) + some faster paths.
1) add no GC check;
2) do not use recursion;

Review URL: http://codereview.chromium.org/155141

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-15 08:07:31 +00:00
mikhail.naganov@gmail.com
36b69749a5 Add heap log processing script originally written by Kevin.
Also, add user time into heap sample begin events to make '--log-gc' flag alone sufficient for producing heap logs (previously, samples times were extracted from scavenge events which are only logged with '--log' flag).

Review URL: http://codereview.chromium.org/149611

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-15 07:09:48 +00:00
feng@chromium.org
9b58a0c856 Adjust kPagesPerChunk to 16 instead of 64 on Android.
Renamed some macros to ANDROID.

Review URL: http://codereview.chromium.org/155538

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-14 22:38:06 +00:00
yurys@chromium.org
cc6be014dc Support stepping into getters and setters.
Related Chromium bug:
http://code.google.com/p/chromium/issues/detail?id=16427

Review URL: http://codereview.chromium.org/149542

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-14 16:55:32 +00:00
whesse@chromium.org
894af58c82 Change tests status for x64, make test runner pass --arch flag to Scons, add to x64 disassembler. Copied from http://codereview.chromium.org/155346 so it can be committed.
Review URL: http://codereview.chromium.org/149608

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-14 11:39:45 +00:00
mikhail.naganov@gmail.com
73710e057a Implement shared libraries logging on Mac OS X, added required support in Tick Processor.
Review URL: http://codereview.chromium.org/155437

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-14 05:01:06 +00:00
ager@chromium.org
7a80be473d Firefox and Safari both allow calling regular expression objects as
functions (as an alias for calling the exec method).  For
compatibility make call_regexp the default and remove the flag.

Review URL: http://codereview.chromium.org/155453

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 23:41:17 +00:00
ager@chromium.org
44be312091 Put the work-around for http://crbug.com/16276 into the ARM port as
well.

Review URL: http://codereview.chromium.org/155459

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 23:15:04 +00:00
feng@chromium.org
d52990b2e2 Add a trace_gc_verbose flag.
The flag is only turned on when --trace_gc is one. It prints out used and available bytes in each space. To enable it, ENABLE_LOGGING_AND_PROFILING must be defined.

This is a mini version of --heap_stats, but don't need DEBUG macro to be turned on.

Review URL: http://codereview.chromium.org/149568

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 21:24:54 +00:00
feng@chromium.org
3e4c457d1c Add ENABLE_DEBUGGER_SUPPPORT around 4 functions, set complation cache generation
to 1 for ARM.

Review URL: http://codereview.chromium.org/149290

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2448 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 21:23:21 +00:00
feng@chromium.org
0b70c7e16e Hook up the log facility of Android platform.
Review URL: http://codereview.chromium.org/155443

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2447 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 21:22:50 +00:00
iposva@chromium.org
1ea35a858f - Added missing braces in an if statement as a drive-by-edit.
- Removed executable bits from Xcode project file.

Review URL: http://codereview.chromium.org/155411

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2443 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 15:00:35 +00:00
kasperl@chromium.org
f188ed8183 Prepare to push version 1.2.14 to trunk.
Review URL: http://codereview.chromium.org/149533

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2437 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 13:49:57 +00:00
kasperl@chromium.org
df43ae3993 Revert r2431. I don't think this is it.
Review URL: http://codereview.chromium.org/155419

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 13:36:38 +00:00
kasperl@chromium.org
067b3af8b7 Attempt at work-around for http://crbug.com/16276 by explicitly checking
for global objects in the assembly code for dictionary loads.
Review URL: http://codereview.chromium.org/155418

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2435 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 13:24:32 +00:00
deanm@chromium.org
e9f42cde46 Small cleanup to Utf8::CalculateValue:
- Don't duplicate kMaxXByteChar constants.
  - Don't compare signed and unsigned integers.

Review URL: http://codereview.chromium.org/155414


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 11:17:51 +00:00
antonm@chromium.org
d067f8903a Convert object to fast mode after creation. That enables more optimizations.
Review URL: http://codereview.chromium.org/155405

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 10:10:28 +00:00
kasperl@chromium.org
55a8088bd8 Add support for tracking down leak of the hole value.
Review URL: http://codereview.chromium.org/149522

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2432 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 09:17:04 +00:00
kasperl@chromium.org
e0c01db960 Try to work around http://crbug.com/16276 until we can
find the cause of the problem.
Review URL: http://codereview.chromium.org/149521

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-13 08:31:30 +00:00
ager@chromium.org
55050383e1 Port the function prototype load stub to ARM.
Review URL: http://codereview.chromium.org/155373

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-10 23:26:33 +00:00
ager@chromium.org
00cdc3f1a3 Remove the descriptor stream abstractions.
The abstractions have led to bugs because it looks like descriptor
streams are GC safe but they are not.

I have moved the descriptor stream helper functions to descriptor
arrays and I find most of the code just as readable now as it was
before.
Review URL: http://codereview.chromium.org/149458

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-10 19:25:18 +00:00
yurys@chromium.org
0da86e1250 Fix an issue with debugger 'step in' when calling function has local variables.Corresponding Chromium bug:http://code.google.com/p/chromium/issues/detail?id=15824
Review URL: http://codereview.chromium.org/149326

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-10 09:57:53 +00:00
kasperl@chromium.org
875dbe6584 Re-enable ICs for loads and calls that skips a global object during
lookup through the prototype chain.
Review URL: http://codereview.chromium.org/155344

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-10 09:40:47 +00:00
mikhail.naganov@gmail.com
15754c6f1c Fixed issue 401: os.system() hangs on Mac OS X.
Fixed by falling back to using 'waitpid' instead of 'waitid'.

BUG=http://code.google.com/p/v8/issues/detail?id=401

Review URL: http://codereview.chromium.org/149450

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2424 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-10 08:36:37 +00:00
kmillikin@chromium.org
726c29c0be Skip the write barrier for global property cell writes. The heap
verification code was refactored to avoid verifying that property
cells have correct remembered sets.

Review URL: http://codereview.chromium.org/149392

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 14:34:08 +00:00
whesse@chromium.org
b019600dce X64: Let debugger patch JSReturn with a debug break.
Review URL: http://codereview.chromium.org/155286

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 13:30:27 +00:00
kmillikin@chromium.org
e0ac466589 During a scavenge, instead of sweeping remembered-set bits for global
property cells, sweep the cell values themselves.

Review URL: http://codereview.chromium.org/149387

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 13:28:22 +00:00
kasperl@chromium.org
13acf24a2b Don't have too many holders. Reviewed offline by Kevin Millikin.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 12:23:08 +00:00
kmillikin@chromium.org
525601be88 Fix free list construction for global property cells on x64.
Review URL: http://codereview.chromium.org/155287

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2418 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 12:20:04 +00:00
kmillikin@chromium.org
fd9aab6ee7 Fix too-long line.
TBR=kasperl@chromium.org

Review URL: http://codereview.chromium.org/149386

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2417 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 12:13:51 +00:00
erik.corry@gmail.com
97f319d989 Get peep-hole optimizer working on ARM by not emitting
debug info at places where the debugger can't stop.
This fixes the ARM version after
http://codereview.chromium.org/14170
Reformat debug-backtrace.js test.
Review URL: http://codereview.chromium.org/155285

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 11:59:58 +00:00
lrn@chromium.org
b3e8f5ef49 X64: Fixed more bad smi operations.
Review URL: http://codereview.chromium.org/155281


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 11:46:30 +00:00
kmillikin@chromium.org
266ce3fdb0 Fix x64 build.
Review URL: http://codereview.chromium.org/149385

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 11:46:12 +00:00
kasperl@chromium.org
98f1a228c6 Allow access through the global proxy to use ICs.
Review URL: http://codereview.chromium.org/155283

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 11:17:57 +00:00
kmillikin@chromium.org
d0c35af612 Create a new paged heap space for global property cells. The new
space is similar to map space in that it has fixed-size objects.  A
common superclass for a space with fixed size objects is used for the
map space and cell space.

Allocate all cells in cell space.  Handle it during all GCs.  Modify
the free-list node representation (so that the size is not at a fixed
offset in all cells) to allow two-pointer free-list nodes.  Clean up
some stuff in the MC collector.

Review URL: http://codereview.chromium.org/155211

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 11:13:08 +00:00
lrn@chromium.org
e3bb851efb X64: Fix bug in left-shift.
Also changed a few other places that looked suspicious in the same way.
Added more info to failing test case and rewrote incorrect uses of mjsunit "fail" function.

Review URL: http://codereview.chromium.org/155279


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 08:00:12 +00:00
kasperl@chromium.org
b8eb6189be Prepare to push version 1.2.13 to trunk.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/149381

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 05:44:19 +00:00
lrn@chromium.org
b360ef238d X64: Fix recently introduced bug in movq with 64-bit literal.
Review URL: http://codereview.chromium.org/155223


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 05:43:34 +00:00
ager@chromium.org
68f5664689 Address review comments.
Only jump over 'else' part of a conditional if it is actually
generated.  Update a comment to more correctly reflect what is going
on.

Review URL: http://codereview.chromium.org/155272

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-09 04:22:05 +00:00
iposva@chromium.org
05b7b265cb - Update comments and fix a small glitch in the ARM disassembler.
- Fix the use of OS::ActivationFrameAlignment() when running with
  the simulator.
Review URL: http://codereview.chromium.org/155109

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 22:13:42 +00:00
ager@chromium.org
13bf328e19 Fix crash bug in ARM codegenerator by adding another special case for
generating code after a call to LoadConditionAndSpill.

This crash is hit on www.rightmove.co.uk when using the ARM
codegenerator.
Review URL: http://codereview.chromium.org/149351

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 22:05:06 +00:00
ager@chromium.org
0be6a72cc1 Fix crash in arm conditional expression code generation.
Review URL: http://codereview.chromium.org/155234

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 19:43:22 +00:00
erik.corry@gmail.com
8f73ae0325 * Move almost all roots into an array ready for use by a constant-pool
register on ARM.
* Make some compile-time loops into run-time loops for compactness.
Review URL: http://codereview.chromium.org/149324

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 19:12:58 +00:00
whesse@chromium.org
bf656d2ae1 Fix an X64 problem with builtin fixups. Remove an assert from fixups that is no longer true on all platforms.
Review URL: http://codereview.chromium.org/149332

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2397 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 16:19:13 +00:00
lrn@chromium.org
bef7669209 X64: Fix bug in for-in iteration.
Review URL: http://codereview.chromium.org/155213


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 15:43:31 +00:00
bak@chromium.org
be6dd7a490 Fixed and exposure to the_hole from Runtime_KeyedGetProperty.
Added regression test that fails with previous revisions.

Review URL: http://codereview.chromium.org/155212

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 11:51:43 +00:00
kasperl@chromium.org
9aa9458933 Fix crash that occurs when we're forced to delete a global
property that used to be DontDelete and we still have an IC
that reads from the cell.
Review URL: http://codereview.chromium.org/149322

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 11:32:03 +00:00
whesse@chromium.org
1aad92a9ab X64: Turn of gcc strict-aliasing optimization for X64 release.
Review URL: http://codereview.chromium.org/155208

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 09:46:26 +00:00
lrn@chromium.org
dbdce5e650 X64: Added unimplemented method in codegen-x64.cc.
Six more tests run.

Review URL: http://codereview.chromium.org/149320


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 09:26:51 +00:00
kasperl@chromium.org
d4511a3a93 Fix issue with skipping global object during lookup through
the prototype chain. In case we're skipping a global object,
we have to be careful not to use ICs for the load, because
it's possible to introduce variables on the global object
without a map change.
Review URL: http://codereview.chromium.org/149316

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 07:13:44 +00:00
ager@chromium.org
5c8961704e Fix unsafe use of DescriptorWriter across allocation.
DescriptorWriters hold a raw pointer to the descriptor array and they
are therefore not GC safe.
Review URL: http://codereview.chromium.org/149304

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-08 03:21:27 +00:00
ager@chromium.org
b4c6762b61 Port IsConstructCall optimization to x64 and ARM.
Review URL: http://codereview.chromium.org/149266

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 19:00:24 +00:00
whesse@chromium.org
19e82212f4 Fix issue number 398: replacing a constant function on a clone.
Review URL: http://codereview.chromium.org/149249

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 14:06:08 +00:00
kmillikin@chromium.org
35a1de0f6a Remove the support for jump-table switches from the x64 port as well.
Review URL: http://codereview.chromium.org/126197

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 13:17:22 +00:00
yurys@chromium.org
cba9c183a0 In Chrome several tabs may share the same v8 instance. Each of those tabs can be inspected with its own devtools window. When such devtools window closes we need to clear all breakpoints that belong to it. Notion of breakpoint group enables us to do that.
Storing the breakpoints on the client(in a different process) would be inreliable since 1) it may crash and 2) some 'setbreakpoint' requests may be not processed yet by the time devtools window closes.

Review URL: http://codereview.chromium.org/149197

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 12:48:57 +00:00
lrn@chromium.org
9cecee80f1 X64: Disassembler updated to using REX, extended registers and some X64 opcodes.
Not all opcodes fixed yet (some should be invalid in 64-bit mode, others should be added).

Review URL: http://codereview.chromium.org/155087


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 12:40:15 +00:00
whesse@chromium.org
e9580c61ba X64: Use CmpObjectType macro everywhere, fix problem with sign of instance types.
Review URL: http://codereview.chromium.org/155132

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 12:17:31 +00:00
kasperl@chromium.org
b0f411c298 Fix issue 397 and issue 399.
Review URL: http://codereview.chromium.org/149247

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 11:57:09 +00:00
kmillikin@chromium.org
8e0e670bde Change a few sites where the Handle<T>(NULL) constructor is used so
that they use the static Handle<T>::null() member function instead.

Review URL: http://codereview.chromium.org/155135

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2371 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 11:41:21 +00:00
kmillikin@chromium.org
8e6bf58174 Allow variable proxies for the same global variable to share the same
variable object.

Add a map from names to variables for global scopes just like
non-global scopes.  Variables are added to the map by the parser when
it encounters a declaration in a global scope or else at scope
resolution time by a failed variable lookup from the global scope or
an inner one and with no intervening with statements or possible calls
to eval.
Review URL: http://codereview.chromium.org/149245

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 09:48:54 +00:00
lrn@chromium.org
72235cf06c Changed ?: into if/else to placate compiler.
Review URL: http://codereview.chromium.org/155131


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 09:29:41 +00:00
erik.corry@gmail.com
67fec3265b Fix the order in which ToNumber is called for some Math functions.
Avoid divisions when doing Math.min(0, 0).
https://bugs.webkit.org/show_bug.cgi?id=26978 has been
filed to fix inconsistencies between JSC and V8.
Review URL: http://codereview.chromium.org/149188

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 08:55:55 +00:00
lrn@chromium.org
72de7ab74e Separate native and interpreted regexp by compile time flag, not runtime.
Clean-up of RegExp code.

Review URL: http://codereview.chromium.org/155085


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 08:11:19 +00:00
whesse@chromium.org
1bee2d8a34 X64: Implement sin and cos.
Review URL: http://codereview.chromium.org/149200

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-07 07:53:15 +00:00
whesse@chromium.org
6cf6824c17 X64: Make comparisons work on zero-extended smis.
Review URL: http://codereview.chromium.org/155083

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-06 13:21:39 +00:00
antonm@chromium.org
12c7246cff Use attributes to communicate failed lookup instead of retval.
Review URL: http://codereview.chromium.org/151151

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-06 11:00:53 +00:00
deanm@chromium.org
4c39a8dc5b Remove some unused messages.
Review URL: http://codereview.chromium.org/149194


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-06 10:56:52 +00:00
kasperl@chromium.org
0f9d8908ad Prepare to push version 1.2.12 to trunk.
Review URL: http://codereview.chromium.org/149192

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-06 07:45:39 +00:00
kasperl@chromium.org
0fedb6fcc0 Fix win32 build by moving template function definition.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-06 06:57:32 +00:00
whesse@chromium.org
1370cae14b Lint error fix
Review URL: http://codereview.chromium.org/149189

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-05 15:38:06 +00:00
whesse@chromium.org
203ae17b5d X64: Fix LoadFloatOperands.
Review URL: http://codereview.chromium.org/155073

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-05 15:22:59 +00:00
whesse@chromium.org
0a774c9c18 X64: Use low bits of registers in emit_sse_operand. Enable --stop-at flag.
Review URL: http://codereview.chromium.org/155052

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 13:30:15 +00:00
erik.corry@gmail.com
9dd35ee2f9 ARM improvements to constant div, mod and mul.
* Fast runtime calls for div and mod.
* Fix assembly and disassembly of multiply instructions.
* Strength reduce and inline multiplications to shift-add.
* Strength reduce and inline mod by power of 2.
* Strength reduce mod by other small integers to mul.
* Strength reduce div by 2 and 3.
Review URL: http://codereview.chromium.org/155047

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 12:44:31 +00:00
erik.corry@gmail.com
1a3d633edc Fix thinko in IC code.
Review URL: http://codereview.chromium.org/149175

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 12:43:59 +00:00
kasperl@chromium.org
07bbacc875 Remove unneeded ToString calls. We call ToString if necessary
when the result of calling the replace function is added to the
ReplaceResultBuilder.
Review URL: http://codereview.chromium.org/149179

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 12:08:00 +00:00
lrn@chromium.org
4cccc960a3 Reverted RegExp parser error message change that broke layout test.
Also cleaned up some leftover crud.

Review URL: http://codereview.chromium.org/155048


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 11:09:34 +00:00
whesse@chromium.org
48ceb2cfab X64: Exit frame should use x64 ABI callee-save registers.
Review URL: http://codereview.chromium.org/155045

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 10:13:05 +00:00
kasperl@chromium.org
4a90e2c69b Optimize Date construction and string concatenation with
string objects (not values).
Review URL: http://codereview.chromium.org/149177

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 10:09:59 +00:00
yurys@chromium.org
48a99323a4 We've got complains that sending afterCompile events to debug message handler may have considerable impact on the profiler when inspected script does lots of 'eval's. The proposed solution is to request source of the compiled script lazily instead of sending it in afterCompile event.
Corresponding Chromium bug:
http://code.google.com/p/chromium/issues/detail?id=15913
Review URL: http://codereview.chromium.org/149176

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 10:02:51 +00:00
whesse@chromium.org
d53e5f8d8a X64: Remove optimistic smi operations on non-smis. They cannot be undone on X64.
Review URL: http://codereview.chromium.org/151200

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 09:24:53 +00:00
whesse@chromium.org
2cba313a49 X64: Ignore extra bits in Smi::value()
Review URL: http://codereview.chromium.org/155046

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 09:22:22 +00:00
whesse@chromium.org
a0d07c2941 X64: Fix floating point and integer instructions in assembler.
Review URL: http://codereview.chromium.org/151207

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-07-03 09:16:23 +00:00
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
yurys@chromium.org
6e29fadb72 When inspecting a function with a native getter return result of execution of the getter function in the client context. This is useful for debugging DOM elements.
Review URL: http://codereview.chromium.org/113821

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 15:07:21 +00:00
whesse@chromium.org
80fba5a127 Implementation of a few more assembly instructions on x64
Review URL: http://codereview.chromium.org/113767

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 14:00:30 +00:00
mikhail.naganov@gmail.com
064af4286e Expose IsProfilerPaused function on the public interface.
This is needed for DevTools Profiler because of its asynchronous and multi-client architecture.

Review URL: http://codereview.chromium.org/115761


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 12:34:47 +00:00
mikhail.naganov@gmail.com
30a0a7de43 Split nested namespaces declaration in two lines in accordance with C++ Style Guide.
This issue was raised by Brett Wilson while reviewing my changelist for readability. Craig Silverstein (one of C++ SG maintainers) confirmed that we should declare one namespace per line. Our way of namespaces closing seems not violating style guides (there is no clear agreement on it), so I left it intact.

Review URL: http://codereview.chromium.org/115756


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 10:05:56 +00:00
mikhail.naganov@gmail.com
6d71da11fd Merge in changes from readability review.
All changes from http://codereview.chromium.org/115024, except splitting namespace declarations in two lines (will be done separately for all source files).

Review URL: http://codereview.chromium.org/113763


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 08:39:22 +00:00
mikhail.naganov@gmail.com
9f69c414eb Implement resource-saving ("lazy") mode of Profiler.
This is intended to be used with Chromium. When in resource-saving mode, profiler doesn't consume any resources (sampler and logging is off) until resumed. Then again, when profiler is paused, sampling and logging are turned off.

Tested under Linux and Windows. Also have done preliminary testing with Chromium.

Review URL: http://codereview.chromium.org/113762


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2036 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 08:25:36 +00:00
yurys@chromium.org
530b86ff17 When message handler is set to NULL and there is no debugger listener the debugger is unloaded immediately unless it's entered, in which case it will be unloaded when last instance of EnterDebugger is destroyed.
Without the change the debugger may crash as Debugger::EventActive(v8::Break) called from OnDebugBreak may clear current debugger context. 

Also when compilation cache was enabled debugger could fail on second attach for the same reason(see AfterCompileMessageWhenMessageHandlerIsReset).

BUG=12404
Review URL: http://codereview.chromium.org/115709

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-25 07:51:04 +00:00
lrn@chromium.org
e9f1a09f9d X64: Omitted creating native builtins and using them in test-heap.
This allows test-heap to run successfully.

Review URL: http://codereview.chromium.org/115706


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-22 14:01:06 +00:00
ager@chromium.org
cc619a34ef Remove list copy constructor (for which there was no corresponding
assignment operator) and add an AddAll method to lists instead.
Review URL: http://codereview.chromium.org/115705

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-22 11:52:24 +00:00
kmillikin@chromium.org
6244c02f24 Remove unreachable x64-specific function.
Review URL: http://codereview.chromium.org/113635

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-22 10:31:41 +00:00
whesse@chromium.org
1f7b98689d Add missing file to change 2030. x64/assembler-x64-inl.h was not uploaded.
Review URL: http://codereview.chromium.org/113761

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-22 09:04:06 +00:00
whesse@chromium.org
5f5f33e4fb Implement quadword MOV on x64 assembler, emitting REX prefix.
Review URL: http://codereview.chromium.org/115571

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-22 07:53:28 +00:00
ager@chromium.org
ddd7f7fe21 Do not ignore the result from calls to write(). This avoids a warning
from newer gcc versions.
Review URL: http://codereview.chromium.org/115698

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-22 07:43:41 +00:00
whesse@chromium.org
a1218cfaa4 Typographical fix
Review URL: http://codereview.chromium.org/115699

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-22 07:30:25 +00:00
yurys@chromium.org
d6742c7fae For ScriptCollected events current context may be null. Message.GetEventContext will return an empty handle in such cases.
Review URL: http://codereview.chromium.org/113698

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-21 14:21:14 +00:00
sgjesse@chromium.org
7a10634e90 Disable compilation cache when debugger is active.
Added an option to control whether the compilation cache is enabled. Default value is true.

BUG=343
Review URL: http://codereview.chromium.org/113625

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 20:28:33 +00:00
sgjesse@chromium.org
3e76ba9a78 Propagate information on whether a non function was called as constructor or not.The Arguments object passed to the callback now has IsConstructCall set accordingly.BUG=http://crbug.com/3285
Review URL: http://codereview.chromium.org/113634

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2020 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 19:33:44 +00:00
iposva@chromium.org
f1774010e7 Fix unmotivated change which causes mismatch between function
declaration and definition.

Review URL: http://codereview.chromium.org/113640

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 16:39:26 +00:00
whesse@chromium.org
1ac2603eb7 Add the REX prefix to 64-bit assembly operands. Move some inline functions.
Review URL: http://codereview.chromium.org/115568

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 14:14:44 +00:00
lrn@chromium.org
19d279f815 X64: Move some methods in x64/ to their file and make codegen do int3.
Review URL: http://codereview.chromium.org/115567


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 13:20:02 +00:00
whesse@chromium.org
59fab02e3e Implement constructor and destructor of 64-bit assembler
Review URL: http://codereview.chromium.org/113631

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2014 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 12:17:23 +00:00
kmillikin@chromium.org
01bc6d1056 Fix x64 build.
Review URL: http://codereview.chromium.org/115565

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 11:54:35 +00:00
kmillikin@chromium.org
bcff796134 Size reduction of VirtualFrame objects. Remove the code generator and
macro assembler pointers and all derived state.

Review URL: http://codereview.chromium.org/115564

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 11:14:18 +00:00
mikhail.naganov@gmail.com
4075179fbe Introduce Logger::LogCompiledFunctions that logs current map of compiled code.
The goal is to make possible having --prof flag always enabled in Chromium.  Currently we can't do this because --prof causes compiler and gc to log code creations / moves / deletes which aren't needed until we start profiling.  With LogCompiledFunctions it will be possible not to log anything until we start profiling.  When started, the current map of compiled functions will be logged and compiler / gc logging will be enabled to update current state.  When profling is stopped, logging will be turned off again.

Funny that testing code is actually much longer and complex than function code.

Review URL: http://codereview.chromium.org/112036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 09:04:13 +00:00
lrn@chromium.org
aec2f3d57c Now lints.
Review URL: http://codereview.chromium.org/113628


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 08:59:33 +00:00
lrn@chromium.org
0920be9524 X64: Disabled RSet in 64-bit mode.
Made a few more places use intptr_t instead of int for pointer arithmetic.
Ensure that objects have a declared size that matches heap object alignment.

Review URL: http://codereview.chromium.org/115559


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 08:05:12 +00:00
ager@chromium.org
10b8928e0e Expose the calling context through the API.
In C++ callbacks, we can now get the context of the javascript code
that called the callback.

Review URL: http://codereview.chromium.org/113622

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 07:44:59 +00:00
yurys@chromium.org
897ecefe1e Exposed method for finding global context by traversing context chain to API.
Review URL: http://codereview.chromium.org/112035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 07:28:42 +00:00
kasperl@chromium.org
b8c09e9590 Fix compilation for gcc 4.3+. Patch by Lei Zhang.
Review URL: http://codereview.chromium.org/113621

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-20 06:42:12 +00:00
kmillikin@chromium.org
2ab1dedb03 Increase the size of VirtualFrame members to allow a larger number of
parameters, stack-allocated locals, or expression stack elements.

Review URL: http://codereview.chromium.org/115535

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-19 20:29:23 +00:00
erik.corry@gmail.com
660ddafc5e From joel.stan:
The preprocessor defines check for v5t and v5te.  This patch adds v7 and
v7-a which provide support for -march=armv7 and -mcpu=cortex-a8
respectively.
This is to support my work compiling chromium on arm, see
http://crbug.com/12028
http://codereview.chromium.org/115509


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-19 20:12:50 +00:00
bak@chromium.org
34865c062b Introduced copy constructor for List<T, P> and changed constructor of VirtualFrame to use it.
Review URL: http://codereview.chromium.org/113582

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-19 13:26:02 +00:00
sgjesse@chromium.org
e3464bca9d Fix compilation on MinGW
On MinGW _WIN32_WINNT needs to be 0x501 (Windows XP) instead of 0x500 (Windows 2000) for some TCP/IP API's to be present.

MinGW uses stdint.h whereas Visual C++ does not.
Review URL: http://codereview.chromium.org/113576

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-19 09:59:41 +00:00
whesse@chromium.org
8987c93a12 Remove code that adjusts synced and copied flags in MergeTo.
Review URL: http://codereview.chromium.org/113524

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-19 09:20:57 +00:00
erik.corry@gmail.com
421b501fdb Add 2 asserts in search-replace implementation.
Review URL: http://codereview.chromium.org/115507

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-19 09:11:30 +00:00
lrn@chromium.org
2ff3901cf7 Fix for issue 349: Make initial boundary check for BM text search.
There was a case where the BMH algorithm bailed out exactly at the end of the string, and the BM algorithm that takes over wasn't expecting this.

Review URL: http://codereview.chromium.org/113575


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-19 09:01:03 +00:00
lrn@chromium.org
c27d0f7b4b X64: Fixups in heap-test.cc to make it compile in X64 mode.
Review URL: http://codereview.chromium.org/113574


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-19 08:59:23 +00:00
kmillikin@chromium.org
0dda60a96d Inline some simple member functions of VirtualFrame.
Review URL: http://codereview.chromium.org/113525

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 14:32:43 +00:00
ager@chromium.org
9a4d667694 Fix ARM build.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/115465

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 13:23:54 +00:00
sgjesse@chromium.org
5a82d8e3d4 Remove unused parameter.
Review URL: http://codereview.chromium.org/113523

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1990 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 13:16:48 +00:00
kmillikin@chromium.org
a77d81c59b Fix a failure to correctly set the static type on a frame element at a
backward jump.  The frame entering the backward block is not used, so
the this is mostly just a bookkeeping change.
Review URL: http://codereview.chromium.org/115464

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1989 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 13:16:35 +00:00
sgjesse@chromium.org
94879a93b0 Add a script cache to the debugger
When loaded scripts are requested this cache is filled with all the script objects in the heap. Hereafter its content is kept in sync with the active scripts in the heap through the notifications of new scripts compiled and by using weak handles to get notified when a script is collected.

Through the tracking of collected scripts the debugger event OnScriptCollected have been added to notify a debugger that a script previously returned through the scripts command is no longer in use.

Make the ComputeIntegerHash globally available.

Moved clearing of the mirror cache to when debugger is really left. Previously recursive invocations of the debugger cause the mirror cache to be cleared causing handles to become either stale or reference other objects.
Review URL: http://codereview.chromium.org/115462

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 13:14:37 +00:00
ager@chromium.org
ef85ba46b0 First round of size reduction for JumpTargets. Reduce their size by
two words: there is no reason to keep a pointer to the current code
generator and macro assembler in the JumpTarget.
Review URL: http://codereview.chromium.org/113458

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 12:26:59 +00:00
lrn@chromium.org
13a96b3aa0 X64: Checked and slightly modified Object layouts to be compatible with 64-bit pointers.
Review URL: http://codereview.chromium.org/113522


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 12:13:20 +00:00
bak@chromium.org
81af5beefa Changed FuncNameInferrer and ScopeInfo to support zone allocation.
Yields a 2% speedup when running compiler-benchmark.

Review URL: http://codereview.chromium.org/113519

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 09:41:16 +00:00
kmillikin@chromium.org
20b3a4deaa Allow a few more (multiple-entry) deferred code snippets to take the
fast-merge path by manually giving them an expected entry frame.

Review URL: http://codereview.chromium.org/113518

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 07:57:29 +00:00
kasperl@chromium.org
e67eaac206 Prepare to push version 1.2.4 to trunk.
Review URL: http://codereview.chromium.org/115458

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1982 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-18 05:50:26 +00:00
iposva@chromium.org
5b72959f3e Remove space at end of line.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 23:05:21 +00:00
iposva@chromium.org
b5c6dc35f9 - Fix numeric overflow handling when compiling count operations.
In certain situations the overflow checking corrupted the value
  being calculated.

Review URL: http://codereview.chromium.org/115423

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 22:36:26 +00:00
yurys@chromium.org
6a350c86bf If 'compactFormat' argument is passed in the request the response won't include referenced mirrors in the refs section instead each protocol reference object will contain some details necessary for displaying the referenced object in the graphical debugger when the object is not expanded. That allows to request full information lazily when the object is expanded.
Review URL: http://codereview.chromium.org/115401

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 15:52:37 +00:00
kmillikin@chromium.org
e097183f22 Fix debug builds.
Review URL: http://codereview.chromium.org/113462

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 15:02:03 +00:00
bak@chromium.org
cadd98f860 M src/jump-target.cc
M    src/parser.cc


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 14:58:02 +00:00
kmillikin@chromium.org
566d088ee3 Fix debug build with a cast.
TBR=bak@chromium.org


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1974 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 14:46:59 +00:00
kasperl@chromium.org
d34f51df8d Revert r1969 because of test failures.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 14:40:50 +00:00
kasperl@chromium.org
f9790085ed Revert r1971. Doesn't compile.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 14:39:34 +00:00
kmillikin@chromium.org
3c73ec8ac9 Change the scavenging collector so that promoted objects do not reside
in the old generation while its remembered set is being swept for
pointers into the young generation.  This is done by delaying the
copying of promoted objects from when they are first encountered and
promoted to only when their body is visited.

Review URL: http://codereview.chromium.org/115086

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 13:52:14 +00:00
bak@chromium.org
3cded9c31f Reduced malloc/free operations in the parser.
Review URL: http://codereview.chromium.org/115402

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 13:47:35 +00:00
kmillikin@chromium.org
dc9473d817 Try to preallocate the scratch registers used for inlined keyed loads
to allow fast entry to the deferred code if possible.

Review URL: http://codereview.chromium.org/113457

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 12:43:00 +00:00
ager@chromium.org
33debd1460 Fix build on arm and x64.
Note to self: remember all platforms.
Review URL: http://codereview.chromium.org/115399

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 11:32:03 +00:00
kmillikin@chromium.org
f579685469 Remove the redundant flags is_bound_ and is_linked_ from the
JumpTarget class in favor of using other internal state.

Review URL: http://codereview.chromium.org/113456

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 11:17:29 +00:00
ager@chromium.org
a3f30f5a3a Clean up the Result class. Reduce the size of Result from four words
to one by keeping a stack of active code generators and by using
indirection to handles.

Mainly a cleanup.  No visible performance impact.
Review URL: http://codereview.chromium.org/113455

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1965 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 11:09:51 +00:00
mikhail.naganov@gmail.com
ed72ecb02e Fix accidental %% in log format strings that caused "%x" to appear in log file.
Review URL: http://codereview.chromium.org/113454

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 09:58:40 +00:00
whesse@chromium.org
0eb8d35a6d Polish code of VirtualFrame::MoveMemoryToRegister
Review URL: http://codereview.chromium.org/113451

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 09:38:11 +00:00
sgjesse@chromium.org
5c4118e2a2 Fix spelling errors in comment and rephrased it somewhat.
Review URL: http://codereview.chromium.org/113449

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 09:18:13 +00:00
kmillikin@chromium.org
6e5de93ad3 Bypass an expensive computation of a basic block's entry frame for a
common case of a single forward edge (a fall-through).  This includes
exits from deferred code.

The fall-through frame is used, after removing constants and copies
above the high-water mark.
Review URL: http://codereview.chromium.org/113400

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 08:08:52 +00:00
erik.corry@gmail.com
b66c1bbbf8 Fix compilation on newer gcc by adding () instead of using prescendence.
Review URL: http://codereview.chromium.org/113447

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 07:41:32 +00:00
yurys@chromium.org
acfc50ac12 MirrorSerializer now converts mirrors to plain JS objects. This objects are serialized to json string using JSON.stringify.
Review URL: http://codereview.chromium.org/113399

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 07:35:11 +00:00
sgjesse@chromium.org
77b9c60169 Add a remove method to the hash map.
Extended the hash map test to also use a heavy collision hash function to exercise the remove code.
Review URL: http://codereview.chromium.org/113397

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1956 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 07:09:17 +00:00
kasperl@chromium.org
2d50e31438 Add multiple generations (5) to the script compilation cache
to allow scripts that are used alot to survive a number of GCs
in the compilation cache.
Review URL: http://codereview.chromium.org/113445

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-15 06:45:50 +00:00
whesse@chromium.org
4a12504f89 Improve algorithm for detaching and attaching a virtual frame to the code
generator.  Inline copying of a register file.
Review URL: http://codereview.chromium.org/113402

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 16:06:04 +00:00
ager@chromium.org
57da353113 Consistently use CompilationZoneScope instead of ZoneScope to ensure
that the FrameElement constants list gets cleared.
Review URL: http://codereview.chromium.org/115352

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 13:17:28 +00:00
ager@chromium.org
2a96ec599b Fix x64 build.
Review URL: http://codereview.chromium.org/115351

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1952 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 12:26:59 +00:00
ager@chromium.org
af59c3d68f Reapply revision 1949. Stupid error.
Add virtual destructor to jump targets to make compiler happy.
Review URL: http://codereview.chromium.org/113396

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 12:18:25 +00:00
ager@chromium.org
c9eda02def Revert revision 1949.
Review URL: http://codereview.chromium.org/115350

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1950 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 11:55:18 +00:00
ager@chromium.org
f4778b007f Reduce the memory used by frame elements from two words to one by
encoding the values in one word and by using an indirection table for
handles.

This reduces compilation time by roughly 10% and we should be able to make the slow case equality checking of frame elements faster as well.
Review URL: http://codereview.chromium.org/115347

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 11:43:09 +00:00
bak@chromium.org
9e02f380f0 Removed the delete calls to ZoneObjects.
Review URL: http://codereview.chromium.org/115348

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1948 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 11:36:10 +00:00
bak@chromium.org
c70ec7a3d2 - Make VirtualFrame and JumpTarget zone allocated.
- Compacted the VirtualFrame representation.
-> Improved the compiler speed with 10%

Review URL: http://codereview.chromium.org/115345

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 11:03:55 +00:00
kmillikin@chromium.org
f48a6bf30f Add more detailed timers of the various compilation passes. The
aggregate compilation time timer is the same as it was before.

Review URL: http://codereview.chromium.org/115344

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 10:29:48 +00:00
kmillikin@chromium.org
4bc0e7cf8c Reapply r1900, r1897, r1895 with a fix.
When a paged space shrinks by an even multiple of the chunk size,
ensure that the cached last page in the space is updated.

Review URL: http://codereview.chromium.org/113267

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 08:55:34 +00:00
kmillikin@chromium.org
ebbaeb3655 Initial bypass of JumpTarget::ComputeEntryFrame for deferred code
entry labels where it is statically safe.

Review URL: http://codereview.chromium.org/115296

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 07:38:44 +00:00
kasperl@chromium.org
edf51c0fa9 Optimize the scope creation code by lazily allocating the hash maps
for dynamic variables (only do it for the scopes that need them).
Review URL: http://codereview.chromium.org/113393

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 07:12:58 +00:00
yurys@chromium.org
750a8391c2 Add parameter that allows to request data for scripts by their ids. It's going to be used e.g. to request script sources by their ids.
Review URL: http://codereview.chromium.org/113335

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-14 06:39:47 +00:00
iposva@chromium.org
8a78b96e5f Pointer difference is int and not long on Mac OS X.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1939 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 16:39:31 +00:00
iposva@chromium.org
90ccd181ae - Fix build break on Mac OS X by using the proper formatting for pointers
by working around slightly "wrong" definition of uintptr_t on Mac OS X.
  Verified that this works on both ia32 and x64 on Linux and Mac OS X.

Review URL: http://codereview.chromium.org/115252

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 16:37:39 +00:00
kasperl@chromium.org
70110bc17b Avoid linear search for non-locals in the scope code
when resolving variables inside with and eval scopes.
Review URL: http://codereview.chromium.org/114024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 16:27:40 +00:00
deanm@chromium.org
6d319c7229 x64: Stub out more unimplemented functions, we now link shell.
Review URL: http://codereview.chromium.org/113339


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 13:50:18 +00:00
deanm@chromium.org
4cd00fbc64 Adjust for differences in the arm signal structures between glibc versions.
Review URL: http://codereview.chromium.org/113332


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 13:44:25 +00:00
kasperl@chromium.org
43cddf412d Optimize the lexical scanner by selective inlining, and
by dealing with whitespace as part of the token scanning
instead of as a separate step before it.
Review URL: http://codereview.chromium.org/113336

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 13:40:02 +00:00
lrn@chromium.org
ae8e20ba83 X64: Added dummy definitions of needed functions.
All functions added in assembler-x64.cc. They should be distributed to where they belong when they are implemented.

Review URL: http://codereview.chromium.org/113334


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 12:50:33 +00:00
erik.corry@gmail.com
4a120eccdc Fix asterisk spacing.
Review URL: http://codereview.chromium.org/113333

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 12:34:35 +00:00
whesse@chromium.org
1ae8a7da3d Fix bug 344: always keep attributes of existing properties.
Review URL: http://codereview.chromium.org/113197

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 10:46:28 +00:00
kmillikin@chromium.org
60c42717f3 Refactor JumpTarget::Combine.
Review URL: http://codereview.chromium.org/113329

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 10:29:49 +00:00
sgjesse@chromium.org
ada3d37219 Added support to backtrace from botton of stack to debugger protocol.
Fixed backtrace in D8 debugger and added gdb like syntax 'bt n' and 'bt -n' in addition to the already existing 'bt from to'.
Review URL: http://codereview.chromium.org/99342

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 08:54:50 +00:00
kmillikin@chromium.org
83f2c1968f Streamline JumpTarget::ComputeEntryFrame by removing the separate loop
that sets the static type on elements in the entry frame.  Instead set
the static type as early as possible when computing elements.

Because the elements are shared with the reaching frames, this has the
side effect of sometimes changing the static type of reaching frame
elements.  They will be changed anyway in VirtualFrame::PrepareMergeTo
immediately after, so this is safe.

Review URL: http://codereview.chromium.org/113258

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 07:21:37 +00:00
iposva@chromium.org
87ebf98724 Split the RUNTIME_FUNCTION_LIST_ALWAYS macro into two as this macro is
very large for Visual Studio's
intellisense operation thus causing it to crash.

Fixes bug http://code.google.com/p/chromium/issues/detail?id=11837

Bug=11837

Patch submitted by: ananta@chromium.org

Review URL: http://codereview.chromium.org/115287

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 05:46:51 +00:00
iposva@chromium.org
75a82a6fab Tiny change to make code match the comment.
Review URL: http://codereview.chromium.org/101017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-13 05:38:38 +00:00
iposva@chromium.org
6c39aefd4f Fix for issue 339:
- Move GetHiddenProperties functionality from object.cc to handle.cc to
  be more robust in the presence of GC in the middle of the function.

Review URL: http://codereview.chromium.org/115267

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 22:07:10 +00:00
erik.corry@gmail.com
ade7d1abd6 Fix incorrect assert on ARM that assumed that coprocessor id was always zero. This
is hit in debug mode on non-EABI non-simulator ARM platforms.  Thanks to
richarjo@gmail.com for reporting.
Review URL: http://codereview.chromium.org/113299

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 21:35:43 +00:00
erik.corry@gmail.com
79fbaf7962 Fix fp problems in runtime code on ARM EABI by 8-byte aligning
the stack on exit to C.
Review URL: http://codereview.chromium.org/115256

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 20:11:01 +00:00
iposva@chromium.org
8d091dc2d1 - Fix build break due to warning about control reaching end of non-void
function.

Review URL: http://codereview.chromium.org/115245

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 17:17:23 +00:00
lrn@chromium.org
2b6988f2dd X64: Added stubs for unimplemented disassembler functions.
Review URL: http://codereview.chromium.org/113261


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 13:09:02 +00:00
ager@chromium.org
00addb277a Revert r1900, r1897 and r1895 which are all gc changes. The changes
to the page iterator leads to occasional crashes in tests.
Review URL: http://codereview.chromium.org/113262

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 13:02:15 +00:00
kmillikin@chromium.org
18f69a7171 Fix for issue 341. In the stub for instanceof, we could try to read
an object's map before we were sure it was a heap object.
Review URL: http://codereview.chromium.org/115236

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 11:40:14 +00:00
lrn@chromium.org
142fe3431a X64: General fixes - added inline definitions and changed some places to intptr_t.
Review URL: http://codereview.chromium.org/113199


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 10:33:40 +00:00
erik.corry@gmail.com
2b7616dc63 Don't go into runtime system for the allocation of floating point
numbers on ARM.
Review URL: http://codereview.chromium.org/115233

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 10:14:45 +00:00
yurys@chromium.org
052d63f5bd Script context information is included in before/afterCompile events.
Review URL: http://codereview.chromium.org/115128

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-12 09:08:01 +00:00
ager@chromium.org
bde19c7365 Prepare to push version 1.2.3 to trunk.
Review URL: http://codereview.chromium.org/113210

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-11 18:45:49 +00:00
kmillikin@chromium.org
fc6834c5ea Modify JumpTarget::ComputeEntryFrame to mark copied elements
immediately when putting a copy in the entry frame, rather than as
part of a separate pass after fully constructing the entry fraem.

Review URL: http://codereview.chromium.org/113198

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-11 15:02:46 +00:00
kmillikin@chromium.org
bcab3697f6 Simplify JumpTarget::ComputeEntryFrame. Eliminate a separate pass
over the frame elements to find registers used (before allocating
undetermined elements) and another pass to set the frame's register
indices (after allocating all elements).
Review URL: http://codereview.chromium.org/114018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-11 13:57:19 +00:00
kmillikin@chromium.org
5fab2d08f2 A register allocation bugfix.
The function that prepares a virtual frame slot for writing (in order
to preserve the copy-on-write semantics of aliased frame elements) can
allocate registers, which may spill one from the frame.  If we're
unlucky, the spilled register can be the source register for the frame
element write.  In that case, ensure we do the write from memory.

Review URL: http://codereview.chromium.org/115125

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-08 17:48:19 +00:00
erik.corry@gmail.com
a3b2c7cf55 Fix intermittent crashes caused by unexpected GCs in
HasLocalProperty (bug introduced in r1882 et al.)
Review URL: http://codereview.chromium.org/115106

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-08 12:39:37 +00:00
mikhail.naganov@gmail.com
ebdf1d1e5b Return immediately from GetLogLines if logging to memory isn't enabled.
Review URL: http://codereview.chromium.org/115123

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-08 10:06:38 +00:00
kmillikin@chromium.org
d6a506c66e Change the structure of the scavenge collector's loop. Move
scavenging of objects pointed to by weak handles earlier.  Rename
"mark" => "front" and "top" => "rear" to make it clearer which end is
which.
Review URL: http://codereview.chromium.org/113097

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 12:36:18 +00:00
kasperl@chromium.org
1a3a106d4b Allocate proxy before the script to allow heap verification
to check that all scripts have a proxy in the wrapper field.
Review URL: http://codereview.chromium.org/115081

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 12:25:46 +00:00
lrn@chromium.org
5cc1bf6c28 X64: Serialization fixed to use intptr_t/Address where needed.
Review URL: http://codereview.chromium.org/115080


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 11:50:09 +00:00
kmillikin@chromium.org
3299f63c0d Before a scavenge collection in debug builds with ENABLE_SLOW_ASSERTS,
we verify that there are no pointers to new space from the code space.
Add the old data space to this verification.

Review URL: http://codereview.chromium.org/113095

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 10:43:33 +00:00
whesse@chromium.org
3dc6701516 Fix lint
Review URL: http://codereview.chromium.org/115076

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 10:31:14 +00:00
kmillikin@chromium.org
bd3019f2b6 Changed the PageIterator class so that it only returns pages existing
at construction time.  If allocation during iteration causes a paged
space to expand, the iterator will not return the new pages.

This makes it more closely match the HeapObjectIterator behavior, and
it removes a possible source of bugs (if the allocation top was in the
last page in the space, the old iterator would stop only when it
reached the end of the space, potentially returning invalid pages from
a freshly expanded space).

Review URL: http://codereview.chromium.org/115074

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 10:19:38 +00:00
lrn@chromium.org
883b2826b9 X64: Changed TickSample to hold pointer-sized values for registers.
Review URL: http://codereview.chromium.org/113094


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 09:34:16 +00:00
lrn@chromium.org
8d57bc5ac4 X64: Changed 0x%x formats in log.cc to 0x%p and omitted reinterpretting pointers.
Review URL: http://codereview.chromium.org/114010


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 09:27:42 +00:00
mikhail.naganov@gmail.com
3e82fce446 Restore stack backtrace tests removed in revision 1785.
To re-enable tests, instead of compiled code patching, inlined code is used.
Inlined code is only installed in test.

Review URL: http://codereview.chromium.org/108015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 09:24:43 +00:00
lrn@chromium.org
cba7c023f0 Changed size of pointers stored as numbers to intptr_t in spaces.h.
Review URL: http://codereview.chromium.org/115073


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 08:50:22 +00:00
ager@chromium.org
7adff828a0 Port change (r1837) that allows call-as-function handlers to be called
through new to ARM.  

Added simple test case of the current behavior.

For consistency, changed a number of occurences of explicit moves to
pc to use Jump instead.
Review URL: http://codereview.chromium.org/115014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 07:18:33 +00:00
erik.corry@gmail.com
9ab31a82c3 The ARM assembler tests don't install the standard JS natives. When
setting up push and pop we shouldn't make too many assumptions about
the structure of classes like 'Array'.
Review URL: http://codereview.chromium.org/113068

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-07 00:10:01 +00:00
davemoore@chromium.org
9336f58fa2 Make check in GetExternalString a runtime check instead of ASSERT.
This will allow us to remove the separate call to IsExternal() from our
chrome client code, speeding up the combination.

Review URL: http://codereview.chromium.org/113035

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 18:30:37 +00:00
erik.corry@gmail.com
5cf3897f3d Fix debug mode :-/
Review URL: http://codereview.chromium.org/115025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 13:34:06 +00:00
whesse@chromium.org
d550fdbb3f Add x64 header files to make the build compile
Review URL: http://codereview.chromium.org/115023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 13:27:35 +00:00
erik.corry@gmail.com
0719c599ad Missing file from last change. TBR=kasperl
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 13:19:55 +00:00
lrn@chromium.org
374dea34ef X64: Fixed conversion between tread_id (int) and void*.
Thread id's are always int size values (generated from an int counter).

Review URL: http://codereview.chromium.org/113030


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 13:11:56 +00:00
erik.corry@gmail.com
275a27d6bd Fix Chromium bug 1717 by emulating JSCs somewhat strange hidden
prototypes on some built in types.
Review URL: http://codereview.chromium.org/109004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 12:54:57 +00:00
whesse@chromium.org
1a5c6cfaca Make assembler-x64.h and assembler-x64-inl.h compile
Review URL: http://codereview.chromium.org/115021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 12:08:50 +00:00
deanm@chromium.org
0f64915781 Use the correct V8_HOST_ARCH macro, it is IA32 and not X86.
Review URL: http://codereview.chromium.org/115022


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 11:40:44 +00:00
deanm@chromium.org
5f4322f77f Have the profiler load the correct registers on x64.
This is still not correct, since internally they are kept as an int.
Use our new V8_HOST_ARCH macros for detecting the host processor.

Review URL: http://codereview.chromium.org/109025


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 11:19:50 +00:00
sgjesse@chromium.org
b32d7d2e67 Added context information to scripts.
Added a simple initial version of a context mirror object which just holds the user data from the context, and does not preserve handle identity.

A script object now holds a reference to the custom data from the context it was compiled in. This data is included in the debugger protocol for scripts.

Changed the serialization for the scripts command to use the mirror objects instaed of custom serialization. This included passing options from the debugger request to the serializer for including the full source of scripts in the response.
Review URL: http://codereview.chromium.org/111001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 08:52:48 +00:00
lrn@chromium.org
f1e1b39eba X64: Changed hash computations to only use lower 32 bits of pointers.
Review URL: http://codereview.chromium.org/115017


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 08:42:36 +00:00
lrn@chromium.org
0e76f83bfc X64: Made hash computation in serializer accept 64-bit pointers.
Also changed api Wrap function to only wrap suitably small pointers as Smis.
Added Smi validity check and factory meethod for intptr_t.

Review URL: http://codereview.chromium.org/113023


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 07:53:08 +00:00
lrn@chromium.org
525b43d653 X64 adaption: Changed a constant from kBitsPerPointer to kBitsPerInt.
Still stays within the size of Smi and works with a uint32_t bitfield.
Bitfield might need to be extended to handle a larger base.

Review URL: http://codereview.chromium.org/109020


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-06 06:53:49 +00:00
yurys@chromium.org
beb5161b84 Add function inferred name to FunctionMirror and its json representation.
Review URL: http://codereview.chromium.org/109026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 18:12:03 +00:00
mikhail.naganov@gmail.com
bf63b8f173 Introduce internal Log class that handles writing log messages, enable logging to memory buffer.
This will enable reading profiler log in Chrome. The current implementation of memory buffer is trivial (fixed size buffer, no memory recycling) but enough to start end-to-end DevTools Profiler implementation. Later it will be enhanced.

Review URL: http://codereview.chromium.org/108011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 15:57:47 +00:00
deanm@chromium.org
e3762851a1 Stub out a small portion of the x64 assembler.
Review URL: http://codereview.chromium.org/108014


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 14:39:05 +00:00
kasperl@chromium.org
ae8a56caab Make sure to report out-of-memory situations when the
heap returns RetryAfterGC even when forced to always
allocate. 
Review URL: http://codereview.chromium.org/109023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 14:38:33 +00:00
deanm@chromium.org
4b26e7e5af Add a temporary hack to FmtElm to truncate 64-bit pointers to 32-bits.
We will have to do some more work to get the code to handle pointers correctly.

Also clean up the constructors, and reduce the long lines.

Review URL: http://codereview.chromium.org/109021


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 14:28:02 +00:00
deanm@chromium.org
3fef1866cc Change some pointer alignment checks in irregexp to use intptr_t.
Review URL: http://codereview.chromium.org/109022


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 14:23:41 +00:00
deanm@chromium.org
cdbdb969ec Add a x64 stub of frames-x64.h so we have StackHandlerConstants.
This is just a stripped down version of ia32, and will need to change.

Review URL: http://codereview.chromium.org/108010


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 12:26:29 +00:00
deanm@chromium.org
2b56660a8b Introduce two separate classes of processor detection:
- TARGET, the architecture we will generate code for.
  This is brought it from the build system.
- HOST, the architecture our C++ compiler is building for.
  This is detected automatically based on compiler defines.

This adds macros for 32 or 64 bit, and cleans up some
include conditionals, etc.

Review URL: http://codereview.chromium.org/99355


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 12:06:20 +00:00
kmillikin@chromium.org
c68db5a389 Fix lint failure.
TBR=ager@chromium.org

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1862 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 10:25:55 +00:00
deanm@chromium.org
b432613622 Use our own macros for 64-bit constants.
Review URL: http://codereview.chromium.org/109017


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 10:21:28 +00:00
ager@chromium.org
5a4e24fe0f Revert workaround for http://crbug.com/9746.
Review URL: http://codereview.chromium.org/109015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 10:15:05 +00:00
lrn@chromium.org
3fa2a67ffb Changed definition of INT64_C and UINT64_C to use the one in stdint.h.
Since Chromium build system appears to define __STDC_CONSTANT_MACROS, we might as well use the macro definitions from stdint.h in all cases.

Review URL: http://codereview.chromium.org/109016


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 09:50:29 +00:00
sgjesse@chromium.org
3cdb194c56 Add the ability to set embedder data on created contexts from the API.
Expose the active context where a break event occoured through the debug message handler.
Review URL: http://codereview.chromium.org/109013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 09:38:45 +00:00
kmillikin@chromium.org
74472a1bab Some cleanup of the mark-sweep/compact collector following the symbol
table debacle.

Review URL: http://codereview.chromium.org/109012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 09:26:06 +00:00
ager@chromium.org
4973c84241 Prepare to push version 1.2.2 to trunk.
Review URL: http://codereview.chromium.org/109005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 07:08:56 +00:00
kmillikin@chromium.org
abfee85871 Clean up comment.
TBR=iposva@chromium.org
Review URL: http://codereview.chromium.org/108003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 05:17:39 +00:00
kmillikin@chromium.org
3af69aed22 Improved, safer handling of the symbol table. The symbols themselves
are not treated as roots, but all their subparts are.
Review URL: http://codereview.chromium.org/108002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-05 05:13:09 +00:00
erik.corry@gmail.com
282bc7a7b4 Reverty 1842 (see http://code.google.com/p/chromium/issues/detail?id=1717 )
Review URL: http://codereview.chromium.org/99346

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 19:35:46 +00:00
deanm@chromium.org
4a4f95bddd Fix a guard style inconsistency in regexp-stack.h.
Two spaces before the endif guard comment.

Review URL: http://codereview.chromium.org/99363


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 19:31:36 +00:00
kmillikin@chromium.org
e01f3a9ee8 More special handling of the symbol table during garbage collection.
Mark all objects reachable from the symbols except the symbols
themselves as live (and reachable from strong roots).  This ensures
that if the symbol itself remains alive for any reason, and if it was
a sliced string or cons string backed by an external string, then the
external string will be strongly reachable and therefore not get a
weak reference callback.

Review URL: http://codereview.chromium.org/100344

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 18:47:50 +00:00
deanm@chromium.org
eb906555fc Cleanup include guards:
- Fix some typos / guards that didn't match the filename.
- Fix some style inconsistencies.
- Add guards to files that were missing them.
- Add the directory name to the guard.

Review URL: http://codereview.chromium.org/99343


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 13:36:43 +00:00
whesse@chromium.org
aa5f53101f Include 64-bit pointer and constant types in include/v8.h.
Make some definitions in globals.h 64-bit safe
Review URL: http://codereview.chromium.org/100336

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 13:29:29 +00:00
lrn@chromium.org
d423dea519 Changed some int casts to intptr_t.
Removed a drop in an ocean of compile errors in x64 mode.

Review URL: http://codereview.chromium.org/100337


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 13:11:38 +00:00
erik.corry@gmail.com
8a15c49974 Fix http://code.google.com/p/chromium/issues/detail?id=1717
undeletable functions on some prototypes.
Review URL: http://codereview.chromium.org/100335

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 12:34:20 +00:00
lrn@chromium.org
32686a11f0 Added empty files in the x64 directory.
Added initially empty files for x64 development.

Review URL: http://codereview.chromium.org/100327


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-04 07:16:10 +00:00
feng@chromium.org
ecd705813f A simple fix of issue http://code.google.com/p/chromium/issues/detail?id=3285
NPN_Construct allows a NPObject to be called as a construct. For example, the
test case

var s = new app.Packages.java.lang.Integer(5);

app.Packages.java.lang.Integer is a NPObject, and it implements NPN_Construct.

This fix allows a JSObject created by an API function be called as a construct
if it can be called
as a function. This is done by generating the same code for
var s = new app.Packages.java.lang.Integer(5); as
var s = app.Packages.java.lang.Integer(5);

and the caller handles both case correctly. A more sophiscated fix is to one
extra JSConstructCall
frame and allow CallAsConstructor in Builtin::HandleApiCallAsFunction.

This change itself shouldn't affect the semantic of normal case such as:

var a = {};
var s = new a();

A TypeError exception will be thrown in CALL_NON_FUNCTION (runtime.js).

Another part of fix is in the binding code, V8NPObject, which makes
NPN_InvokeDefault or NPN_Construct
call depending on which function is available. 
Review URL: http://codereview.chromium.org/100243

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-01 19:01:19 +00:00
whesse@chromium.org
1ddaea61be Stop inlining of list reallocation in virtual frames.
Review URL: http://codereview.chromium.org/100253

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-01 14:37:28 +00:00
erik.corry@gmail.com
7fa09c0aca Add change accidentally omitted from last changelist.
Review URL: http://codereview.chromium.org/100252

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-01 12:20:31 +00:00
erik.corry@gmail.com
ad23017469 When strings can change from an ASCII representation to a
UC16 representation we need to be careful about flat strings.
Flat strings can be sliced or cons strings that have a flat
string under them, so when we ask a flat cons or a slice whether
it is ASCII or not we should ask the underlying string about
its representation.  This should fix
http://code.google.com/p/chromium/issues/detail?id=10971
Review URL: http://codereview.chromium.org/100249

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-01 11:16:29 +00:00
lrn@chromium.org
83d1d02df7 Made sort on non-arrays also affect elements on the prototype, for JSC compatability.
Made sort on non-objects with inherited elements JSC compatible.

Review URL: http://codereview.chromium.org/99272


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-05-01 10:06:55 +00:00
sgjesse@chromium.org
a470847226 Added better version information
The current version is now held in src/version.cc in a number of defines which needs to be modified when changing version.

The following defines make up the version information:

  MAJOR_VERSION
  MINOR_VERSION
  BUILD_NUMBER
  PATCH_LEVEL
  CANDIDATE_VERSION

The first four are numbers and the fifth is a boolean. Besides these five the define

  SONAME

can be used to set a specific soname when building the a shared library (see below). This will most likely be used on stable branches where binary compatibility is ensured between different versions. This define is a string.

This version information is now read by the SCons build to support setting the soname for a Linux shared library. This requires passing the option soname=on to the SCons build.

When soname=on is specified the soname for the shared library can be set in two different ways. Either it will be the full versioned library name (e.g. libv8-1.2.2.so) or a specific soname defined in src/version.cc. Whenever a shared library is build with an soname the filename of the library will hold the full version name (e.g. libv8-1.2.2.so).

I did not update the xcode project with the new files.

BUG=151
Review URL: http://codereview.chromium.org/100104

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-30 09:29:15 +00:00
whesse@chromium.org
714e525b40 Improve register allocation of left shift operation. Add tests
for all shift operations.
Review URL: http://codereview.chromium.org/101016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-30 09:21:50 +00:00
asargent@chromium.org
ec3beee2bf Make Object::GetIdentityHash() never return 0.
This is convenient when using identity hashes in data structures that
want to reserve 0 as a sentinel value, such as WebKit's WTF::HashMap.

Review URL: http://codereview.chromium.org/100147

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1821 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-29 21:44:13 +00:00
lrn@chromium.org
ea56336518 Create build structure for X64.
Possible to attempt to build for X64.
Build will be unsuccessful, since all x64 source files are
missing and pointers are reinterpreted as integers everywhere.

Review URL: http://codereview.chromium.org/99186


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-29 13:11:48 +00:00
sgjesse@chromium.org
2beedf1181 Create a transition API for the debug message handler.
Kept the previous message handler API to avoid breaking clients depending on it.

The new message handler API uses a new name ending with 2.
Review URL: http://codereview.chromium.org/100158

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1816 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-29 12:54:07 +00:00
erik.corry@gmail.com
9a9e09ee73 Unbreak IA32 generated code coverage.
Review URL: http://codereview.chromium.org/100156

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-04-29 11:04:28 +00:00