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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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