Commit Graph

124 Commits

Author SHA1 Message Date
kmillikin@chromium.org
f0ba671344 Move the per-ast-node statement position to only statement node types.
It was not currently being used for expressions or declarations and
always had the default initial value.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 12:01:05 +00:00
whesse@chromium.org
412a146825 X64: Ensure that unary subtraction returns a zero-extended smi, if it returns a smi.
Review URL: http://codereview.chromium.org/195101

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 12:40:15 +00:00
lrn@chromium.org
91ecc77e5f X64: Abstract indexing by a smi to the macro assembler.
Review URL: http://codereview.chromium.org/196118


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-15 11:35:23 +00:00
whesse@chromium.org
4c59284fcc Fix lint error
Review URL: http://codereview.chromium.org/200096

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-11 14:11:33 +00:00
sgjesse@chromium.org
3dd74076d1 Control profiling/debugger support from build script.
The SCons build now has the options profilingsupport and debuggersupport for controlling the setting of the defines ENABLE_LOGGIGN_AND_PROFILING and ENABLE_DEBUGGER_SUPPORT. By default both are set to true.

The changes to the XCode project have not been tested.
Review URL: http://codereview.chromium.org/195061

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-11 12:26:15 +00:00
lrn@chromium.org
158dcbc39d X64: Extract all smi operations into MacroAssembler macros.
First step in changing Smi representation.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-10 12:55:27 +00:00
lrn@chromium.org
8f60f1a46f Win64 - Allow returning two values from a runtime function.
(Not yet fully functional)

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-08 11:52:05 +00:00
whesse@chromium.org
2edebc2c9c Remove special CheckEquals function for intptr_t on X64 platform.
Review URL: http://codereview.chromium.org/190004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-08 08:49:54 +00:00
sgjesse@chromium.org
2192a315a4 Second step in allocating objects in generated code on ARM.
Objects which require an additional fixed array to be allocated now have this allocated in generated code as well. Added allocation flags to the macro assembler new space allocation routines.

Changed the ia32 and x64 macro assemblers to take allocation flags to the allocation routines instead of boolean flag.
Review URL: http://codereview.chromium.org/201015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-07 09:44:29 +00:00
lrn@chromium.org
de33b1d03d X64: Added missing optimization of unary negate.
Review URL: http://codereview.chromium.org/174214


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-02 07:49:53 +00:00
whesse@chromium.org
0f20431c36 X64: Use sahf instruction only on processors that support it.
Review URL: http://codereview.chromium.org/183028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 11:32:20 +00:00
whesse@chromium.org
970874ad62 X64: Obey WIN64 ABI more exactly, in WIN64 build.
Review URL: http://codereview.chromium.org/182027

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-01 10:40:00 +00:00
erik.corry@gmail.com
369214c159 Use a root array register for constant loads and stack guards on x64.
This only wins us around 1% in performance, but it makes the code more
compact.  We don't currently have a way to represent in the virtual
frame that a slot contains a value from the root array.  Adding this
would probably make the code more compact.
Review URL: http://codereview.chromium.org/174639

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-31 08:57:36 +00:00
sgjesse@chromium.org
94c0539052 Add allocation support to x64 macro assembler.
Factored out the allocation in new space from assembler code into the macro assembler for x64 as was recently done for ia32.

Added set property svn:eol-style to native for all x64 files.
Review URL: http://codereview.chromium.org/173568

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-28 06:18:36 +00:00
ager@chromium.org
7331301703 Port apply with arguments optimization to x64.
Review URL: http://codereview.chromium.org/173566

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 14:58:50 +00:00
whesse@chromium.org
48d1e49262 Use stack frame marker constants to mark arguments adaptor frame.
Review URL: http://codereview.chromium.org/174522

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2770 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-27 07:44:37 +00:00
whesse@chromium.org
046b4020f7 X64: Small changes to let WIN64 platform compile.
Review URL: http://codereview.chromium.org/174394

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-26 06:29:53 +00:00
ager@chromium.org
4cd3d7afe8 Revert change 2745 because of assertion failures in debug mode.
TBR=yurys@chromium.org
Review URL: http://codereview.chromium.org/173268

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-24 16:08:44 +00:00
whesse@chromium.org
1dfac258a3 Change some integer types to make the x64 Win32 platform happier.
Review URL: http://codereview.chromium.org/173115

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2743 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-24 11:56:29 +00:00
ager@chromium.org
0efbd40baf Add support for forceful termination of JavaScript execution.
The termination is achieved by throwing an exception that is uncatchable by JavaScript exception handlers.
Review URL: http://codereview.chromium.org/174056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 15:14:11 +00:00
lrn@chromium.org
fdf31f7f5e X64: Implement debugger hooks.
Debugger is now fully functional.
Fix difference in emitting statement positions to match ia32.

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


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-19 10:18:30 +00:00
whesse@chromium.org
5b8d422524 Remove one of the GCs performed by the --gc-greedy flag. The GC performed by CEntryStub before the first call to C, when --gc-greedy is set, caused a bug in calling API callbacks.
Review URL: http://codereview.chromium.org/171104

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-18 10:52:14 +00:00
ager@chromium.org
1656dd639a Fix regression caused by the generation of a shift stub during
snapshot creation in a better way.

Encode whether or not the stub should use sse3 instructions in the
minor key of the stub.  The stubs generated during snapshot creation
will have sse3 disabled, but they will not be found when sse3 is
enabled.  Therefore they will only affect the code generated as part
of the snapshot.
Review URL: http://codereview.chromium.org/172086

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-18 09:47:45 +00:00
whesse@chromium.org
a82bd0507c X64: Remove compound smi+overflow test using cmov.
Review URL: http://codereview.chromium.org/165525

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-17 09:07:40 +00:00
whesse@chromium.org
ab041ee4ed X64: Do not use an AllocateWithoutSpill register if it is invalid. Abandoned in favor of approach in http://codereview.chromium.org/165525/show (Issue 165526)
Review URL: http://codereview.chromium.org/164480

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-17 08:02:07 +00:00
whesse@chromium.org
d7474a61a8 X64: Add an SHL optimization, fix a floating-point bug, fix xchg rax,r8 and printing of test ?ax, imm in disassembler.
Review URL: http://codereview.chromium.org/164399

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-13 08:00:04 +00:00
whesse@chromium.org
2596299f1e X64: Remove optimization of SHR by constant, due to unfixed bug.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-11 15:30:09 +00:00
whesse@chromium.org
6a8a7d580e X64: Implement remaining constant smi optimizations. Enable mozilla tests that now pass.
Review URL: http://codereview.chromium.org/164317

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-11 12:49:27 +00:00
whesse@chromium.org
9024b946e7 X64: Add special inlining for subtracting a constant smi.
Review URL: http://codereview.chromium.org/164252

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-10 14:35:20 +00:00
whesse@chromium.org
e73bfe98a4 Implement inline constructors for X64. Fix ia32 inline constructors a little. Fix a bug of a non-constant length between a call and its fixup.
Review URL: http://codereview.chromium.org/164144

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2652 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-07 12:52:32 +00:00
lrn@chromium.org
6ad8b09efb X64: Implement fast charCodeAt.
Review URL: http://codereview.chromium.org/164135


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2648 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-07 11:16:26 +00:00
whesse@chromium.org
384a6f299e X64: Implement inline trigonometric operations.
Review URL: http://codereview.chromium.org/164056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2638 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-06 14:42:10 +00:00
whesse@chromium.org
7bd88e829f X64: Optimize MOD operator by a constant power of 2.
Review URL: http://codereview.chromium.org/164054

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-06 11:51:23 +00:00
lrn@chromium.org
6f21761ea8 X64: Fix bug in boolean conversion of empty string.
Review URL: http://codereview.chromium.org/165043


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-06 10:22:38 +00:00
kmillikin@chromium.org
23fbd8fe3f Add support to the CFG builder for non-short-circuited binary
expressions.  Add compilation support in fast mode (optimized for
compilation time and code size).

This breaks one debugger test each on ARM and IA32 (expectedly).
Review URL: http://codereview.chromium.org/160584

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-05 12:52:31 +00:00
whesse@chromium.org
f2faaa5c34 X64: Add missing pop when calling handler with Out-of-memory exception.
Review URL: http://codereview.chromium.org/160520

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2618 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-08-04 13:46:58 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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