- 20 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6355009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6420 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6378004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Jan, 2011 1 commit
-
-
kmillikin@chromium.org authored
Instead of spilling and then immediately restoring eax to resolve memory to memory moves, the gap move resolver now tracks registers that are known to be free and uses one if available. If not it spills but restores lazily when the spilled value is needed or at the end of the algorithm. Instead of using esi for resolving cycles and assuming it is free to overwrite because it can be rematerialized, the gap move resolver now resolves cycles using swaps, possibly using a free register as above. The algorithm is also changed to be simpler: a recursive depth-first traversal of the move dependence graph. It uses a list of moves to be performed (because it mutates the moves themselves), but does not use any auxiliary structure other than the control stack. It does not build up a separate list of scheduled moves to be interpreted by the code generate, but emits code on the fly. Review URL: http://codereview.chromium.org/6263005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Jan, 2011 1 commit
-
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/6326003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
This change introduces LTemplateInstruction which is a specialized version of LInstruction and takes one template parameter to indicate whether the instruction produces a result operand. All instruction that do not have a result inherit from LTemplateInstruction<0>. Instructions that have a result operand from LTemplateInstruction<1> All the Define* function only operate on instructions with a result. For this to work I also refactored the places where we do LInstruction* result = new Lxyy into Lxyz* result = new Lxyz Review URL: http://codereview.chromium.org/6219001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Jan, 2011 1 commit
-
-
sgjesse@chromium.org authored
If the instance of is performed against what is beliwed to be a constant global function inline the instance of check and have the call to the instanceof stub in deferred code. The inlined check will be patched by the instanceof stub when called from deferred code. This is indicated by the lithium instruction LInstanceOfKnownGlobal. To help the patching the delta from the return address to the patch site is placed just below the return address in the edi slot of the pushad/popad ares. This is safe because the edi register (which is pushed last) is a temporary for the lithium instruction. As the instanceof stub can call other JavaScript an additional marking for saving all double registers have been added. Also tweaked the instanceof stub to produce true/false objects instead of 0/1 for the case with deferred code. Review URL: http://codereview.chromium.org/5990005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Jan, 2011 1 commit
-
-
fschneider@chromium.org authored
DefineSameAsAny is never used and currently does exactly the same as DefineSameAsFirst. Review URL: http://codereview.chromium.org/6025014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jan, 2011 1 commit
-
-
vegorov@chromium.org authored
Review URL: http://codereview.chromium.org/6065010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Dec, 2010 1 commit
-
-
vegorov@chromium.org authored
SplitBetween (formely known as Split with 3 arguments) should select split position from [start, end] instead of [start, end[. This should also improve allocation quality (remove certain redundant move patterns). Also some minor renaming and refactoring to make register allocator code more readable. BUG=v8:962 TEST=test/mjsunit/regress/regress-962.js Review URL: http://codereview.chromium.org/5720001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Dec, 2010 3 commits
-
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-