- 21 Jul, 2010 2 commits
-
-
whesse@chromium.org authored
Remove VirtualFrame::CallStoreIC(void) and CallCommonStoreIC from virtual-frame-x64.cc. Make implementations of CallStoreIC(key, is_contextual) and CallKeyedStoreIC() the same on x64 and ia32. Make ia32 and x64 implementations more alike by moving some functions and changing comments. Review URL: http://codereview.chromium.org/3060002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/3050008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Jul, 2010 1 commit
-
-
lrn@chromium.org authored
It avoids the overflow check on the increment. Review URL: http://codereview.chromium.org/2835030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jun, 2010 1 commit
-
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/2815028 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Jun, 2010 1 commit
-
-
kaznacheev@chromium.org authored
Also edited ic-ia32.cc for clarity and better formatting. Review URL: http://codereview.chromium.org/2853003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 May, 2010 1 commit
-
-
vitalyr@chromium.org authored
These string methods can be composed from two basic blocks: charCodeAt and fromCharCode, both of which have fast cases for certain types of inputs. In this patch these two blocks are refactored to allow generating the fast cases without having to jump around the slow cases. In the slow cases since they can now be invoked both from inline runtime functions and from IC stubs we either have to save/restore state of the current frame or enter/leave a new internal frame. This is handled by new RuntimeCallHelper interface. Its implementation for virtual frame is based on FrameRegisterState class extracted from DeferredCode class. Review URL: http://codereview.chromium.org/2087009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 May, 2010 1 commit
-
-
whesse@chromium.org authored
Change keyed store IC interface on x64 to take value, key, and receiver in registers rather than on the stack. Review URL: http://codereview.chromium.org/2111011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 May, 2010 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/2103007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 May, 2010 1 commit
-
-
erik.corry@gmail.com authored
of having a list of virtual frame pointers in the jump target we have one virtual frame, which is the frame that all have to merge to to branch to that frame. The virtual frame in the JumpTarget is inside the JumpTarget, rather than being an allocated object that is pointed to. Unfortunately this means that the JumpTarget class has to be able to see the size of a VirtualFrame object to compile, which in turn lead to a major reorganization of related .h files. The actual change of functionality in this change is intended to be minimal (we now assert that the virtual frames match when using JumpTarget instead of just assuming that they do). Review URL: http://codereview.chromium.org/1961004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Apr, 2010 1 commit
-
-
whesse@chromium.org authored
Cut-and-paste port from ia32 to x64: Delay load of trivial left operand of binary operation until after right operand loaded. Review URL: http://codereview.chromium.org/1736023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Apr, 2010 1 commit
-
-
antonm@chromium.org authored
Review URL: http://codereview.chromium.org/1623004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Mar, 2010 2 commits
-
-
erik.corry@gmail.com authored
The heavy version is for x86 and x64. The light version is for ARM and MIPS. Remove the elements_ array from the virtual frame in the light version. More simplifications to come, followed by light register allocation. Review URL: http://codereview.chromium.org/1164002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Since we add more type (StringType, PrimitiveType) the name NumberInfo does not make sense anymore. Review URL: http://codereview.chromium.org/1207006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Mar, 2010 1 commit
-
-
fschneider@chromium.org authored
This change fixes an assert we hit when we recognized a fast smi loop with a parameter as the loop variable. BUG=650 Review URL: http://codereview.chromium.org/1138003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Mar, 2010 1 commit
-
-
fschneider@chromium.org authored
This change fixes a bug with the arguments object that occurred with r4087 and r4088. The fix is not marking the arguments variable as trivial since it can have side effects. Review URL: http://codereview.chromium.org/851002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Mar, 2010 2 commits
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/805005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/816003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Mar, 2010 1 commit
-
-
erik.corry@gmail.com authored
Makes NumberInfo into a real class. Fix bug where NumberInfo was lost in ToRegister. Allow 17 bits in safe Smis instead of 16. Review URL: http://codereview.chromium.org/668151 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Feb, 2010 2 commits
-
-
fschneider@chromium.org authored
Move a constructor to the platform-independent -inl.h file. Review URL: http://codereview.chromium.org/660175 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3975 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Introducing a virtual-frame-inl.h file containing some platform-independent virtual frame function which are small enough to be inlined. Removed unnecessary #include of virtual-frame.h from register-allocator-inl.h and added the necessary explicit includes in a number of files. Review URL: http://codereview.chromium.org/660104 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Feb, 2010 1 commit
-
-
fschneider@chromium.org authored
Each frame element gets a new attribute with number type information. A frame element can be: - smi - heap number - number (i.e. either of the above) - or something else. The type information is propagated along with all virtual frame operations. Results popped from the frame carry the number information with them. Two optimizations in the code generator make use of the new information: - GenericBinaryOpSyub omits map checks if input operands are numbers. - Boolean conversion for numbers: Emit inline code for converting a number (smi or heap number) to boolean. Do not emit call to ToBoolean stub in this case. Review URL: http://codereview.chromium.org/545007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Feb, 2010 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/596036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Feb, 2010 1 commit
-
-
http://codereview.chromium.org/561049serya@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Jan, 2010 1 commit
-
-
kmillikin@chromium.org authored
code generator. Review URL: http://codereview.chromium.org/542105 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3636 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Dec, 2009 1 commit
-
-
fschneider@chromium.org authored
If a function contains more than a certain number of locals (IA32: 9, X64: 6, ARM: 4) a loop for initializing the locals with 'undefined' is more compact. For less locals we unroll that loop by emitting a sequence of push instructions. Review URL: http://codereview.chromium.org/515012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Oct, 2009 1 commit
-
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/196139 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 31 Aug, 2009 1 commit
-
-
erik.corry@gmail.com authored
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
-
- 25 Jun, 2009 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/147141 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jun, 2009 2 commits
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/146082 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
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
-
- 22 Jun, 2009 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/141030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Jun, 2009 1 commit
-
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/123018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Jun, 2009 1 commit
-
-
kmillikin@chromium.org authored
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
-
- 27 May, 2009 1 commit
-
-
kmillikin@chromium.org authored
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
-
- 25 May, 2009 1 commit
-
-
mikhail.naganov@gmail.com authored
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
-
- 20 May, 2009 1 commit
-
-
kmillikin@chromium.org authored
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
-
- 19 May, 2009 1 commit
-
-
kmillikin@chromium.org authored
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
-
- 18 May, 2009 1 commit
-
-
kmillikin@chromium.org authored
Review URL: http://codereview.chromium.org/113525 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 May, 2009 1 commit
-
-
ager@chromium.org authored
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
-
- 14 May, 2009 1 commit
-
-
whesse@chromium.org authored
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
-